常见回归模型参数

SVR

class sklearn.svm.SVR(*, kernel='rbf', degree=3, gamma='scale', coef0=0.0, tol=0.001, 
C=1.0, epsilon=0.1, shrinking=True, cache_size=200, verbose=False, max_iter=- 1)

gamma是选择RBF函数作为kernel后,该函数自带的一个参数。隐含地决定了数据映射到新的特征空间后的分布,gamma越大,支持向量越少,gamma值越小,支持向量越多。支持向量的个数影响训练与预测的速度。

C是惩罚系数,即对误差的宽容度。c越高,说明越不能容忍出现误差,容易过拟合。C越小,容易欠拟合。C过大或过小,泛化能力变差

参数 取值 类型
kernel -- linear:线性核函数
-- poly:多项式核函数
–rbf:径像核函数/高斯核
–sigmod:sigmod核函数
–precomputed:核矩阵,该矩阵表示自己事先计算好的,输入后算法内部将使用你提供的矩阵进行计算
str类型,默认rbf
degree 当kernel为poly是,degree表示多项式核的最高次数(幂),其他核则忽略 int,默认3
gamma 当kernel为‘rbf’, ‘poly’或‘sigmoid’时的kernel系数。 如果不设置,默认为 ‘auto’ ,此时,kernel系数设置为:1/n_features float, optional (default=’auto’)
tol 误差项达到指定值时则停止训练,默认为1e-3,即0.001。 float
C 误差项的惩罚参数,一般取值为10的n次幂,如10的-5次幂,10的-4次幂。。。。10的0次幂,10,1000,1000,在python中可以使用pow(10,n) n=-5~inf C越大,相当于希望松弛变量接近0,即对误分类的惩罚增大,趋向于对训练集全分对的情况,这样会出现训练集测试时准确率很高,但泛化能力弱。 C值小,对误分类的惩罚减小,容错能力增强,泛化能力较强。 float

SGDRegressor

class sklearn.linear_model.SGDRegressor(loss='squared_loss', *, penalty='l2', 
alpha=0.0001, l1_ratio=0.15, fit_intercept=True, max_iter=1000, tol=0.001, 
shuffle=True, verbose=0, epsilon=0.1, random_state=None, learning_rate='invscaling', 
eta0=0.01, power_t=0.25, early_stopping=False, validation_fraction=0.1, 
n_iter_no_change=5, warm_start=False, average=False)

AdaBoostRegressor

class sklearn.ensemble.AdaBoostRegressor(base_estimator=None, *, n_estimators=50, learning_rate=1.0, 
loss='linear', random_state=None)
参数 取值 类型
base_estimator 基础模型,默认为None,degree为3的决策树 model
n_estimators 基础模型的最大数量 int,默认为50
learning_rate 即每个弱学习器的权重缩减系数𝜈,我们的强学习器的迭代公式为𝑓𝑘(𝑥)=𝑓𝑘−1(𝑥)+𝜈𝛼𝑘𝐺𝑘(𝑥)。对于同样的训练集拟合效果,较小的𝜈意味着我们需要更多的弱学习器的迭代次数。通常我们用步长和迭代最大次数一起来决定算法的拟合效果。所以这两个参数n_estimators和learning_rate要一起调参 float,默认为1
loss 只有AdaBoostRegression有,有线性‘linear’, 平方‘square’和指数 ‘exponential’三种选择, 默认是线性,一般使用线性就足够了,除非你怀疑这个参数导致拟合程度不好。

RandomForest

sklearn.ensemble.RandomForestRegressor(n_estimators=100, *, criterion='mse', 
max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, 
max_features='auto', max_leaf_nodes=None, min_impurity_decrease=0.0, 
min_impurity_split=None, bootstrap=True, oob_score=False, n_jobs=None, 
random_state=None, verbose=0, warm_start=False, ccp_alpha=0.0, max_samples=None)
参数 取值 类型
n_estimators 最大的若学习器个数 int, default=100
criterion cart树做划分时对特征的评价标准,mse/mae str,default='mse'
oob_score 是否采用袋外样本评估模型好坏 bool,default=False
max_depth 默认为空,表示不会限制决策树的深度,如果样本多特征多,一般设置最大深度10~100 int,default=None
min_samples_split 内部节点再划分所需要的最小样本数 int,default=2
min_samples_leaf 叶子结点最少的样本数 int,default=1
min_weight_fraction_leaf 叶子节点最小的样本权重和 float,default=0.0
max_features “auto”, “sqrt”, “log2”,int or float, 划分时最多考虑的特征个数 int, default='auto'
max_leaf_nodes 最大叶子节点数量,防止过拟合 int,default=None
min_impurity_split 这个值限制了决策树的增长,如果某节点的不纯度(基于基尼系数,均方差)小于这个阈值,则该节点不再生成子节点。即为叶子节点 。一般不推荐改动默认值1e-7 float, default=1e-7
bootstrap 是否采用bootstrap采样作为训练集,若改为False,则使用全部样本 bool,default=True
n_jobs 并行数量 int,default=None,(1)

GradientBoostingRegressor

class sklearn.ensemble.GradientBoostingRegressor(*, loss='ls', learning_rate=0.1, 
n_estimators=100, subsample=1.0, criterion='friedman_mse', min_samples_split=2, 
min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_depth=3, 
min_impurity_decrease=0.0, min_impurity_split=None, init=None, random_state=None, 
max_features=None, alpha=0.9, verbose=0, max_leaf_nodes=None, warm_start=False, 
validation_fraction=0.1, n_iter_no_change=None, tol=0.0001, ccp_alpha=0.0)
参数 取值 类型
loss 'ls', 'lad', 'huber', 'quantile',算法中的损失函数。 str,default='ls'
learning_rate 每个弱学习器的权重衰减系数 float, default=0.1
n_estimators 最大的弱学习器的个数 int, default=100
subsample 取值(0,1],子采样比例,若果<1,表示只有一部分样本会参加GBDT的决策树你和 float, default=1
criterion 衡量特征划分的函数,‘friedman_mse’, ‘mse’, ‘mae’ str,default='friedman_mse'

其他参数用法同RandomForest。

参数 取值 类型
n_estimators 最大弱学习器的个数 int,
booster 弱学习器的类型,默认为gbtree(cart) model,一般不需要改动
max_depth 控制树的深度 int
min_child_weight 最小叶子节点权重阈值
gamma

未完待续。。。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容