机器学习--模型融合

stacking 和 blending

blending:

数据集分为train和test,对于model_i,对train做fold=5的CV,其中四份做训练数据,另外一份作为val数据,得出模型model_i_j,然后对val预测生成向量v_i_j,对test数据预测生成向量t_i_j,使用同样的方法五次,把所有的train都预测完,将5份向量concat对应生成t_i和v_i。

每个模型都能生成这样的两组向量,一个是训练集的,一个是测试集的(测试集在同一个模型预测多次后取平均),有多少个模型就能生成多少维的向量。

然后在顶层的模型,比如LR或则线性模型对v向量进行训练,生成的模型对t向量进行预测。

stacking:

将数据划分为train,test,然后将train划分为不相交的两部分train1和train2,使用不同的模型对train1训练,对train2和test进行预测,生成两个1维的向量,有多少个模型就生成多少维的向量。

第二层使用前面模型对train2生成的向量和label作为新的训练集,使用LR或者其他模型训练一个新的模型来预测test生成的向量。

 

你可能感兴趣的:(机器学习--模型融合)