【机器学习】小数据集怎么上分? 几行代码生成伪标签数据集
背景
偽標簽(Pseudo-Labeling)的定義來自于半監督學習,其核心思想是通過借助無標簽的數據來提升有監督模型的性能。偽標簽技術在許多場景中被驗證了它的有效性,例如在kaggle競賽Santander Customer Transaction Prediction中,冠軍方案就使用了這項技術,并獲得了25,000刀的獎金。
使用偽標簽技術的基本步驟
1
使用有標簽的數據訓練模型;
2
使用第一步訓練出來的模型對無標簽數據進行預測;
3
從第2步預測結果中選擇出置信度比較大的樣本,使用預測結果作為他們的標簽(偽標簽),這部分樣本就是偽標簽數據集;
4
將偽標簽數據集合并到訓練集中,重新訓練模型。
實際使用時,以上4步有可能多次迭代進行。
偽標簽技術為什么能work? (個人想法)
1
偽標簽技術常常用于數據量較小的場景,偽標簽數據集增大了樣本量,雖然有可能帶來噪音,但是對于模型收斂是有幫助的;
2
偽標簽的數據帶來了額外的正確信息, 模型對于不同類別之間的分界更加明確了。
偽標簽技術適用場景(個人經驗)
1
訓練集數據量較小;
2
數據難度較小(例如baseline模型auc就能達到0.9以上)。
?
使用案例
我們的開源項目autox把自動生成偽標簽數據集的函數進行了封裝, 方便大家使用,使用簡單的幾行代碼就能構造出偽標簽數據集。
from autox.autox_competition.process_data import get_pseudo_label id_ = 'id' target = 'target' used_cols = [col for col in test.columns if col not in [id_, target]] pseudo_label_data = get_pseudo_label(train, test, id_ = id_, target = target, used_cols = used_cols)案例地址
https://www.kaggle.com/poteman/pseudolabeling-autox
開源項目地址
https://github.com/4paradigm/autox
參考資料
1.https://www.kaggle.com/c/santander-customer-transaction-prediction/discussion/89003
2.https://www.kaggle.com/cdeotte/pseudo-labeling-qda-0-969
3.https://towardsdatascience.com/pseudo-labeling-to-deal-with-small-datasets-what-why-how-fd6f903213af
往期精彩回顧適合初學者入門人工智能的路線及資料下載(圖文+視頻)機器學習入門系列下載中國大學慕課《機器學習》(黃海廣主講)機器學習及深度學習筆記等資料打印《統計學習方法》的代碼復現專輯 AI基礎下載機器學習交流qq群955171419,加入微信群請掃碼:總結
以上是生活随笔為你收集整理的【机器学习】小数据集怎么上分? 几行代码生成伪标签数据集的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 二进制、八进制、十六进制相互转换
- 下一篇: 【Python】Python中好用的命