1、设定一个稍大的学习率(0.1),利用xgboost里的cv方法去确定一个合适的迭代次数(也就是树的个数)
2、根据参数的重要性,分别对参数进行调参,利用GridSearchCV,先进行大范围粗调再小范围精调,参数重要性排序:
3、调小learning_rate(0.01),利用cv找到合适的迭代次数。
https://github.com/xiayto/Mechine_learning/blob/master/xgboost%E8%B0%83%E5%8F%82.py
1、当我们对数据有先验知识,数据是线性可分时候用SVR
2、当线性不可分用SVR,一般选择RBF高斯核函数,要调参
3、当我对用于支持的向量的百分比有要求时候用NuSVR
1、确定松弛因子C
2、确定gamma
3、确定epsilon
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
手机扫一扫
移动阅读更方便
你可能感兴趣的文章