Please enable JavaScript.
Coggle requires JavaScript to display documents.
模型選擇與調參 (模型狀態 (學習曲線 (一開始訓練集的準確率會非常高,原因是訓練集樣本少,容易擬合,當訓練集學的東西越多,準確率會下降,…
模型選擇與調參
模型狀態
過擬合
想太多了,並不屬於全局數據的特性
訓練集上跟驗證集的Accuracy有很大的差異
欠擬合
太天真了
所學習的Accuracy會跟理想的準確率差很多的
學習曲線
一開始訓練集的準確率會非常高,原因是訓練集樣本少,容易擬合,當訓練集學的東西越多,準確率會下降
一開始測試集的準確率會非常低,原因是訓練集樣本少,沒有學習能力,當訓練集樣本變多,測試集的準確率會上升
好的學習曲線是訓練集跟驗證集最終的Accuracy 差不多的,Just right
如何處理狀態處理
過擬合
增大正則化係數
減少特徵個數(不是太推薦)
不要以為降低維度能達到過擬合
找更多的數據來學習
欠擬合
找更多的特徵
減少正則化係數
模型融合
是一組individual learner 的組合
同質稱base learner
異質稱 component learner
為什麼需要?
計算上
多個局部最優解的平均更接近全局最憂解
表現上
真實假設f可能不在已知的假設空間H內,平均可能更接近H外的真實假設f
統計上
假設空間h的平均更接近真實假設f
信條
站在巨人的肩膀上能看更遠
模型stacking
先分別訓練出多個模型
在其分別答案再將答案給到一個最終模型
有過擬合風險
blending
弱化版的stacking
做投票或加強平均
弱化成線性模型
一萬小時定律
boosting
考得不好的原因是什麼?
還不夠努力 要多做題(重複迭袋訓練)
2.時間要分配合理,放在重點題目上(每次分配給分錯樣本更高的權重)
我不聰明,但腳踏實地(用簡單的分類器疊加)
Adaboost
Xgboost
集體智慧是驚人的
Bagging
1.效果不好的原因是過擬合還是欠擬合
2.如何緩解過擬合?(1)少給點題(2)找多個人來做綜合答案
sklearn.ensemble.BaggingClassifier
隨機森林/Random Forest
基於樹模型的Bagging
特徵也會做採樣處理
Voting 投票器
單個模型很難控制過擬合
sklearn.ensemble.VotingClassifier
稀牛學院文件
2.cross_validation_and_grid_search(36行代碼開始)
3.Model_ensemble-example
1.feature_engineering_and_selection(基本特徵工程代碼)
模型調優
線性模型的權重分析
線性或性性的kernel的model
對權重對值高/低的特徵
做更細化的工作
特徵組合
錯得知道錯在哪
Bad-case分析
分類問題
哪部分特徵使他們分錯
這些錯誤的分類有沒有共性
哪些訓練樣本分錯了?
是否有還沒挖掘的特性
...
回歸問題
哪些樣本預測結果差距大,why?
....
函數庫
xgboost
使用xgboost自帶的數據格式 + xgboost自帶的建模方式
使用pandas 的DataFrame格式 +xgboost的sklearn 接口
選定模型
選擇超參數
EX:邏輯回歸
如果不用正則化Lambda 會過擬合,如果過大會失去學習效果,Lambda 就是為超參數
如何調整超參數
交叉驗證
驗證在這組參數下效果的好壞
哪些參數能被考慮?
用網格搜索(Grid_Search)
候選參數集中最加參數
參數列表沒有固定數學公式,只能慢慢試
先用粗列的參數列表選出最佳,再進行細分
sklearn.model_selection.GridSearchCV
數據採集清洗
數據採樣
數據特徵抽取
有效特徵選擇