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 |
未完待续。。。