【机器学习】5行代码在小数据集上涨点
很多算法工程師說,給我標注好標簽,我上去一把梭就搞定了。
標注這件事是有成本的,現實生活中,無標簽的數據易于獲取,而有標簽的數據收集起來通常很困難,標注也耗時和耗力。
在這種情況下,半監督學習(Semi-Supervised Learning)應運而生,一種用于解決有一些少量帶標簽的樣本,和大量無標簽的樣本的場景下的算法。
偽標簽學習(pseudo learning),算是半監督學習算法里面一個strong ?baseline吧。
這也是我們前面提到的少有的在很多數據集上通用的刷分方法。
所有數據集上給神經網絡刷分的通用方法
其原理用一句話說,用少量的有標注數據訓練模型,推導出無標注數據的近似標簽,或者軟標簽。加回去訓練就行。
像不像武當縱云梯,左腳踩右腳。
聽起來挺離譜的,我們把步驟用偽代碼實現一下。
model1.fit(train_set,label,??val=validation_set)?#step1 pseudo_label=model.pridict(test_set)??#step2 new_label?=?concat(pseudo_label,?label)?#step3 new_train_set?=??concat(test_set,?train_set)??#step3 model2.fit(new_train_set,?new_label,???val=validation_set)?#step4 final_predict?=?model2.predict(test_set)?#step5用網上一個經典的圖來說就是。
具體的步驟可以對應著偽代碼中的注釋
step1&2:將有標簽部分數據分為兩份:train_set&validation_set,并訓練出最優的model1
step3:用model1對未知標簽數據(test_set)進行預測,給出偽標簽結果pseudo-labeled
step4:將train_set和pseudo-labeled 融合作為新的new_train_set,訓練出最優的model2
step5:再用model2對未知標簽數據(test_set)進行預測,驗證還是用之前的validation_set,得到最終的final result label
注意一個細節,驗證集validation_set從頭到尾都沒有參與到訓練之中,這是為了防止leak。
往期精彩回顧適合初學者入門人工智能的路線及資料下載(圖文+視頻)機器學習入門系列下載中國大學慕課《機器學習》(黃海廣主講)機器學習及深度學習筆記等資料打印《統計學習方法》的代碼復現專輯 AI基礎下載機器學習交流qq群955171419,加入微信群請掃碼:總結
以上是生活随笔為你收集整理的【机器学习】5行代码在小数据集上涨点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java:File.separator作
- 下一篇: 上海电力大学c语言程序设计章测试,上海电