解決機器學習問題的流程

確定問題類別

有監督或者無監督問題,是分類還是迴歸問題。

數據採集

使用爬蟲收集遠程監督數據,或者收集目前已有開源數據集。

數據清洗

對於收集來的數據進行清洗工作,比如異常值檢測(離羣點檢測),可以採用聚類方法k-means,找出離羣點,以及基於統計的方法如分佈在正態分佈不接受的範圍內的。

數據集分割

將數據集分爲訓練集,驗證集,測試集。

特徵工程

採用交叉特徵,統計特徵(有的特徵不能統計測試集和驗證集的,否則會過擬合),特徵離散化等。

數據可視化以及模型選擇

將數據根據label,如果是分類問題,可以給不同標籤的點打上不同的顏色(如果特徵比較多,可以先用pca降維之後再可視化),然後根據樣本的分佈情況(比如是用線性分類邊界,還是非線性分類邊界比較好),具體確定分類算法,線性分類比較可以使用邏輯迴歸,線性svm等,非線性分類可以用決策樹等。

模型訓練

用sklearn,tensorflow,xgboost,lightgbm等庫進行模型訓練(使用訓練集),同時使用驗證集檢測優化目標,防止過擬合,也可以採用交叉驗證的方式。

模型評估

使用測試集測試模型性能,之後進行線上A/Btest。

如果模型性能較差:

1,過擬合或者欠擬合。

2,數據是否清洗乾淨。

3,如果是過擬合可以加大模型的正則化項,L1或着L2,或者dropout等。(也可以多訓練幾個差異較大的模型,融合抑制過擬合)。

4,如果是欠擬合可以多用幾個模型,進行模型融合,或者減小正則化項,或者查看使用的模型是否適用於當前問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章