1.岭回归
Ridge
回归通过对系数的大小施加惩罚来解决 普通最小二乘法 的一些问题。 岭系数最小化的是带罚项的残差平方和,
其中, 是控制系数收缩量的复杂性参数: 的值越大,收缩量越大,这样系数对共线性的鲁棒性也更强
较大的值则具有更强的正则化。 Alpha对应于其他线性模型中的C ^ -1,例如LogisticRegression或LinearSVC。
2.lasso回归
Lasso
是估计稀疏系数的线性模型。 它在一些情况下是有用的,因为它倾向于使用具有较少参数值的情况,有效地减少给定解决方案所依赖变量的数量。 因此,Lasso 及其变体是压缩感知领域的基础。
在数学公式表达上,它由一个带有 先验的正则项的线性模型组成。 其最小化的目标函数是:
lasso estimate 解决了加上罚项 的最小二乘法的最小化,其中, 是一个常数, 是参数向量的 -norm 范数。
alpha
参数控制估计系数的稀疏度。默认为1.0。 alpha = 0相当于普通的最小二乘,由LinearRegression对象求解, 不建议在Lasso对象中使用alpha = 0。较大的alpha值则具有更强的正则化。
3.偏最小二乘回归
sklearn.cross_decomposition.
PLSRegression
(n_components=2, scale=True, max_iter=500, tol=1e-06, copy=True)
n_components : int, (default 2)
Number of components to keep.
它没有惩罚系数C或alpha
4.k近邻回归
KNeighborsRegressor
基于每个查询点的 个最近邻实现, 其中 是用户指定的整数值。RadiusNeighborsRegressor
基于每个查询点的固定半径 内的邻点数量实现, 其中 是用户指定的浮点数值。
基本的最近邻回归使用统一的权重:即,本地邻域内的每个邻点对查询点的分类贡献一致。 在某些环境下,对邻点加权可能是有利的,使得附近点对于回归所作出的贡献多于远处点。 这可以通过 weights
关键字来实现。默认值 weights = 'uniform'
为所有点分配同等权重。 而 weights = 'distance'
分配的权重与查询点距离呈反比。 或者,用户可以自定义一个距离函数用来计算权重。
其并没有C或alpha的惩罚项
5.随机森林
在随机森林中(参见 RandomForestClassifier
和 RandomForestRegressor
类), 集成模型中的每棵树构建时的样本都是由训练集经过有放回抽样得来的(例如,自助采样法-bootstrap sample,这里采用西瓜书中的译法)。 另外,在构建树的过程中进行结点分割时,选择的分割点不再是所有特征中最佳分割点,而是特征的一个随机子集中的最佳分割点。
sklearn.ensemble.
RandomForestRegressor
(n_estimators=10, 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=1, random_state=None, verbose=0, warm_start=False)
n_estimators=10,树的棵数
bootstrap : boolean, optional (default=True)
Whether bootstrap samples are used when building trees.
其并没有C或alpha的惩罚项
6.人工神经网络
sklearn.neural_network.
MLPRegressor
(hidden_layer_sizes=(100, ), activation='relu', solver='adam', alpha=0.0001, batch_size='auto', learning_rate='constant', learning_rate_init=0.001, power_t=0.5, max_iter=200, shuffle=True, random_state=None, tol=0.0001, verbose=False, warm_start=False, momentum=0.9, nesterovs_momentum=True, early_stopping=False, validation_fraction=0.1, beta_1=0.9, beta_2=0.999, epsilon=1e-08)
MLPRegressor
类和 MLPClassifier
类都使用参数 alpha
作为正则化( L2 正则化)系数,正则化通过惩罚大数量级的权重值以避免过拟合问题。 下面的图表展示了不同的 alpha 值下的决策函数的变化。其alpha越大正则化越明显,过拟合消除更多
alpha : float, optional, default 0.0001
L2 penalty (regularization term) parameter.
7.支持向量机
sklearn.svm.
SVR
(kernel='rbf', degree=3, gamma='auto', coef0=0.0, tol=0.001, C=1.0, epsilon=0.1, shrinking=True, cache_size=200, verbose=False, max_iter=-1)
C : float, optional (default=1.0)
Penalty parameter C of the error term.
惩罚系数C的设置:在合理的情况下, C
的默认选择为 1
。如果您有很多混杂的观察数据, 您应该要去调小它。 C
越小,就能更好地去正规化估计。
8.GBDT回归
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, presort='auto')
lpha : float (default=0.9)
The alpha-quantile of the huber loss function and the quantile loss function. Only if
loss='huber'
orloss='quantile'
.
参数 由于它可以控制梯度下降的步长, 因此也叫作 learning rate ,它可以通过 learning_rate
参数来设置.
在训练一定数量的弱分类器时,参数 learning_rate
和参数 n_estimators
之间有很强的制约关系。 较小的 learning_rate
需要大量的弱分类器才能维持训练误差的稳定。经验表明数值较小的 learning_rate
将会得到更好的测试误差。 [HTF2009] 推荐把 learning_rate
设置为一个较小的常数 (例如: learning_rate <= 0.1
)同时通过提前停止策略来选择合适的 n_estimators
. 有关 learning_rate
和 n_estimators