標籤: 半監督學習,文本分類
做者:煉己者
---
本博客全部內容以學習、研究和分享爲主,如需轉載,請聯繫本人,標明做者和出處,而且是非商業用途,謝謝!
若是你們以爲格式看着不舒服,也歡迎你們去看個人簡書python
用半監督算法作文本分類(sklearn)
sklearn半監督學習(sklearn)
基於自訓練的半監督文本分類算法算法
本文主要講述基於協同訓練的半監督算法作文本分類,用三個差別性比較大的分類器對未標註數據進行標註,它們能夠進行交叉驗證,大大提高了對未標註數據標記的置信度(簡單理解就是三個分類器同時對一個未標註數據標記同樣的標籤,那麼這個標籤就可信了),從而提升分類器標註的準確率函數
這裏就再也不贅述,參考這篇文章:中文文本預處理流程
這上面的流程很完整,並且有代碼,你只須要按着那個操做來便可學習
接下來就是對剩下的全部未標註數據進行操做了,未標註數據一條一條過
操做思路:假設有10條未標註數據,第一條取出來了,三個分類器對它進行預測。有如下三種可能:測試
- 若是你們預測的都同樣,那就把它連同預測的標籤加入到總的訓練集data裏。
- 若是有兩個預測的同樣,另一個分類器預測的不同,好比SVM和貝葉斯預測的同樣,xgboost的不同,就把它們倆的標註結果放到data3裏,而後再讓xgboost對更新的data3進行訓練。
- 若是你們都預測的不同,就把它放回未標註數據中
這樣操做的目的就是爲了避免斷地訓練三個分類器,讓它們最終對未標註數據預測的結果同樣。這樣一條一條未標註數據地過,直到未標註數據爲空,最終過完。3d
我選了5000條數據進行預測。blog
SVM:0.62
bayes:0.67
xgboost:0.75get
從圖中觀察,咱們發現:svm先升後降,bayes先升後穩定,而xgboost很鬼畜。可是效果xgboost是最強的。這裏面的緣由我知識有限,暫時沒法解釋,大夥要是有什麼想法能夠在底下評論,咱們能夠交流交流博客