向AI轉型的程式設計師都關注了這個號👇👇👇
機器學習AI算法工程 公眾號:datayx
之前介紹了14種文本分類中的常用算法,包括8種傳統算法:k臨近、決策樹、多層感知器、樸素貝葉斯(包括伯努利貝葉斯、高斯貝葉斯和多項式貝葉斯)、邏輯回歸和支持向量機;4種集成學習算法:隨機森林、AdaBoost、lightGBM和xgBoost;2種深度學習算法:前饋神經網絡和LSTM。
各篇連結如下:
測試環境搭建與數據預處理:
https://blog.csdn.net/qq_43012160/article/details/94993382
決策樹、樸素貝葉斯(伯努利貝葉斯、高斯貝葉斯和多項式貝葉斯):
https://blog.csdn.net/qq_43012160/article/details/95366183
k臨近、邏輯回歸、SVM支持向量機:https://blog.csdn.net/qq_43012160/article/details/95506126
隨機森林、AdaBoost、多層感知器:
https://blog.csdn.net/qq_43012160/article/details/95762591
lightGBM、xgBoost:
https://blog.csdn.net/qq_43012160/article/details/96016265
前饋神經網絡、LSTM(包括pycharm深度學習環境搭建):
https://blog.csdn.net/qq_43012160/article/details/96101078
先放代碼和數據集:
關注微信公眾號 datayx 然後回復 文本分類 即可獲取。
所有14種算法我都跑了一遍,其中4種算法要麼把我電腦跑死機了,要麼時間長的令人髮指,就沒跑完。整理了跑出來的10種算法的正確率和耗時如下:
下面這篇博文有一個區別度更大、更完整的排名:
https://www.kesci.com/home/project/5cbbe1668c90d7002c810f79
這種簡單的文本分類練習,不同算法的性能分層還是比較明顯的。
知識總結1.機器學習、集成學習和深度學習:1)機器學習泛指所有的使機器通過建立和調整模型從而實現特定功能的算法。2)深度學習是運用了多層的人工神經網絡(ANN)的機器學習方法。3)集成學習是指通過將多個弱分類器的分類結果進行整合,獲得比單個弱分類器更好效果的機器學習方法。
集成學習和深度學習屬於機器學習。
bagging中的各個弱分類器取值是相互獨立的、無關的,常使用有放回抽樣實現。
boosting中的弱分類器是在基分類器/前一個分類器的基礎上通過迭代不斷優化/調整出來的。
高斯貝葉斯GaussianNB、多項式貝葉斯MultinomialNB和伯努利貝葉斯BernoulliNB。
分別對應數據滿足高斯分布(正態分布)、多項式分布和伯努利分布的訓練集數據。
1)伯努利貝葉斯即特徵的取值只有取和不取兩類(0和1),對應樸素貝葉斯公式中,
p(yi)=標籤為yi的文本數(句子數)/文本總數(句子總數)
p(xj|yi)=(標籤為yi的文本中出現了單詞xj的文本數+1)/(標籤為yi的文本數+2)。
2)多項式貝葉斯其實就是伯努利貝葉斯的特徵取值由簡單的0-1擴展為多個值的情況,
p(yi)=標籤為yi的文本中的單詞總數/訓練集中的單詞總數
p(xj|yi)=(標籤為yi的文本中單詞xj的出現次數+1)/(標籤為yi的文本中的單詞總數+詞袋單詞種數)。
3)高斯貝葉斯常被用來處理連續數據(如身高)。
4.AdaBoost、lightGBM(GBDT)和xgBoostAdaBoosting是Boosting框架+任意基學習器算法+指數損失函數。
GBDT是Boosting框架+CART回歸樹模型+任意損失函數。
AdaBoosting利用前一輪迭代弱學習器的誤差率來更新訓練集的權重,而GBDT採用梯度下降法:丟掉大梯度的數據而收納梯度較小的數據加入目標決策樹以使樹回歸(貼近真實值)。
xgBoost的損失函數還考慮了樹不能太複雜且要分配均衡:一棵樹太複雜,鶴立雞群,就容易產生弱分類器間的過擬合;一棵樹內部的節點間不均衡,就容易導致大節點代表的分類特徵/分裂閾值的權重過大,就會產生樹內部節點之間的過擬合。
值得注意的是AdaBoosting的誤差率、權重和GBDT的梯度都是在弱分類器之間的關係上的,是在分類器迭代時起作用的,而不是用在單個弱分類器的節點分裂層面上的,但其實是有影響的。
這裡就要說到損失函數、決策樹節點分裂閾值和弱分類器迭代、生成之間的關係了。節點分裂閾值和分類特徵的選定是根據損失函數來確定的——假設損失函數為L(w),w為目標決策樹的葉節點分裂閾值向量,我們使損失函數最小,求得此時的min(w)作為目標決策樹的節點分裂閾值。
在這個過程中我們雖然做的是對於單一決策樹的節點分裂特徵/閾值選定,但如果一棵樹的節點分裂特徵/閾值全都確定了,這棵樹也就確定了。所以我們就可以通過使損失函數L(w)取最小值的方式,確定w,同時優化決策樹的節點分裂(通過w)和不同弱分類器間的迭代優化(通過使L(w)最小)。即通過w確定目標決策樹,通過w的取值帶動L(w)取最小,進而實現弱分類器的迭代優化。
閱讀過本文的人還看了以下文章:
TensorFlow 2.0深度學習案例實戰
基於40萬表格數據集TableBank,用MaskRCNN做表格檢測
《基於深度學習的自然語言處理》中/英PDF
Deep Learning 中文版初版-周志華團隊
【全套視頻課】最全的目標檢測算法系列講解,通俗易懂!
《美團機器學習實踐》_美團算法團隊.pdf
《深度學習入門:基於Python的理論與實現》高清中文PDF+源碼
特徵提取與圖像處理(第二版).pdf
python就業班學習視頻,從入門到實戰項目
2019最新《PyTorch自然語言處理》英、中文版PDF+源碼
《21個項目玩轉深度學習:基於TensorFlow的實踐詳解》完整版PDF+附書代碼
《深度學習之pytorch》pdf+附書源碼
PyTorch深度學習快速實戰入門《pytorch-handbook》
【下載】豆瓣評分8.1,《機器學習實戰:基於Scikit-Learn和TensorFlow》
《Python數據分析與挖掘實戰》PDF+完整源碼
汽車行業完整知識圖譜項目實戰視頻(全23課)
李沐大神開源《動手學深度學習》,加州伯克利深度學習(2019春)教材
筆記、代碼清晰易懂!李航《統計學習方法》最新資源全套!
《神經網絡與深度學習》最新2018版中英PDF+源碼
將機器學習模型部署為REST API
FashionAI服裝屬性標籤圖像識別Top1-5方案分享
重要開源!CNN-RNN-CTC 實現手寫漢字識別
yolo3 檢測出圖像中的不規則漢字
同樣是機器學習算法工程師,你的面試為什麼過不了?
前海徵信大數據算法:風險概率預測
【Keras】完整實現『交通標誌』分類、『票據』分類兩個項目,讓你掌握深度學習圖像分類
VGG16遷移學習,實現醫學圖像識別分類工程項目
特徵工程(一)
特徵工程(二) :文本數據的展開、過濾和分塊
特徵工程(三):特徵縮放,從詞袋到 TF-IDF
特徵工程(四): 類別特徵
特徵工程(五): PCA 降維
特徵工程(六): 非線性特徵提取和模型堆疊
特徵工程(七):圖像特徵提取和深度學習
如何利用全新的決策樹集成級聯結構gcForest做特徵工程並打分?
Machine Learning Yearning 中文翻譯稿
螞蟻金服2018秋招-算法工程師(共四面)通過
全球AI挑戰-場景分類的比賽源碼(多模型融合)
斯坦福CS230官方指南:CNN、RNN及使用技巧速查(列印收藏)
python+flask搭建CNN在線識別手寫中文網站
中科院Kaggle全球文本匹配競賽華人第1名團隊-深度學習與特徵工程
不斷更新資源
深度學習、機器學習、數據分析、python
搜索公眾號添加: datayx
機大數據技術與機器學習工程
搜索公眾號添加: datanlp
長按圖片,識別二維碼