數據挖掘--常用的迴歸模型調參總結

一、XBGoost調參

步驟:

1、設定一個稍大的學習率(0.1),利用xgboost裏的cv方法去確定一個合適的迭代次數(也就是樹的個數)

2、根據參數的重要性,分別對參數進行調參,利用GridSearchCV,先進行大範圍粗調再小範圍精調,參數重要性排序:

  • max_depth和min_child_weight
  • gamma
  • subsample和colsample_bytree
  • reg_alpha和reg_lambda

3、調小learning_rate(0.01),利用cv找到合適的迭代次數。

github代碼地址:

https://github.com/xiayto/Mechine_learning/blob/master/xgboost%E8%B0%83%E5%8F%82.py

二、SVR調參

對於 SVR、LinearSVR、NuSVR的選擇:

1、當我們對數據有先驗知識,數據是線性可分時候用SVR
2、當線性不可分用SVR,一般選擇RBF高斯核函數,要調參
3、當我對用於支持的向量的百分比有要求時候用NuSVR

參數介紹:

  • C:默認是1,控制鬆弛因子,噪聲比較多的時候C設置小一點,分解平面不需要嚴格將樣本區分。
  • epsilon:允許的距離誤差,默認是0.1
  • kernel:默認是rbf高斯核,常用的含有poly多項式核函和sigmoid核函數
  • degree:poly擴展才有的參數,K(x,z) = (γxz+r)d 中的d
  • gamma:所有的多項式擴展都需要調節的參數,一般用交叉驗證確定 γ
  • coef0:poly和sigmoid中需要調節的參數,默認是0
  • cache_size:緩存大小,默認200MB,如果內存足夠,推薦使用500MB甚至1000MB

SVR調參過程:

1、確定鬆弛因子C
2、確定gamma
3、確定epsilon

三、RandomForest調參

參數介紹:

clf = RandomForestRegressor(
            n_estimators=2,             # 學習器個數
            criterion='mse',             # 評價函數
            max_depth=None,              # 最大的樹深度,防止過擬合
            min_samples_split=2,         # 根據屬性劃分節點時,每個劃分最少的樣本數
            min_samples_leaf=1,          # 最小葉子節點的樣本數,防止過擬合
            max_features='auto',         # auto是sqrt(features)還有 log2 和 None可選
            max_leaf_nodes=None,         # 葉子樹的最大樣本數
            bootstrap=True,              # 有放回的採樣
            min_weight_fraction_leaf=0,
            n_jobs=5)                   # 同時用多少個進程訓練

調參過程

1、先對重要的參數調整,再對相對不重要的參數調整
2、有相互聯繫的一起調,沒有的可以分開調提高效率
3、先大範圍粗調,再小範圍精調
4、用貪心的方式,下一次調調用上一次的最優結果

重要性排序:
1、決策樹個數
2、max_depth 和 min_samples_split 和 min_samples_leaf
3、max_features

調參代碼:
https://github.com/xiayto/tianchi_competition/blob/master/RandomForest%E8%B0%83%E5%8F%82.py

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