什么是STACK?
它是机器学习常用集成方法三大类别之一,在各大kaggle表现优异,广受欢迎。基本思想是:不同模型发挥本身的优势,在他们学习的基础之上,进行融合。
原理?
- 数据集划分为train(train_a+train_b)=[train_a+train_b, label_a+label_b]和test=[test, test_label]
- 第一轮:每个模型在train_a=[train_a, label_a]中学习,对train_b预测得到new_train_b,同理得到new_train_a,得到new_train=[new_train_a+new_train_b, label_a+label_b]。每个模型对test进行预测,得到new_test=[new_test, test_label]。当有N个模型,则有N列不同的new_train数据和new_test数据。
- 第二轮:训练数据是[new_train1, new_train2, … ,new_trainN],测试数据是[new_test1, new_test2, …, new_testN]。训练方式同第一轮,N个模型分别走一遍。
- 得到集成学习器。(这里还不是很理解)
参考: