什麼是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個模型分別走一遍。
- 得到集成學習器。(這裏還不是很理解)
參考: