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