I am studying the ensemble machine learning and when I read some articles online, I encountered 2 questions.

**1.**

In this [article](https://www.kdnuggets.com/2017/02/stacking-models-imropved-predictions.html), it mentions

> 
> Instead, model 2 may have a better overall performance on all the data
>  points, but it has worse performance on the very set of points where
>  model 1 is better. The idea is to combine these two models where they
>  perform the best. This is why creating out-of-sample predictions have
>  a higher chance of capturing distinct regions where each model
>  performs the best.
> 
> 
> 

[![enter image description here](https://i.stack.imgur.com/eGfXW.png)](https://i.stack.imgur.com/eGfXW.png)

But I still cannot get the point, why not train all training data can avoid the problem?

**2.**

From this [article](http://supunsetunga.blogspot.com/2016/06/stacking-in-machine-learning.html), in the prediction section, it mentions

> 
> Simply, for a given input data point, all we need to do is to pass it
>  through the M base-learners and get M number of predictions, and send
>  those M predictions through the meta-learner as inputs
> 
> 
> 

But in the training process, we use k -fold train data to train M base-learner, so should I also train M base-learner based on all train data for the input to predict?