机器学习手册学习笔记--线性模型

227 阅读1分钟

仅供自己复习回顾使用,若有侵权可删除

创建线性回归对象

regression = LinearRegression()
model = regression.fit(features, target)

交互特征和多项式特征

interaction = PolynomialFeatures(degree=3, include_bias=False, interaction_only=True)
                            features_interaction = interaction.fit_transform(features)
'''
#interaction_only = True 会告诉 PolynomialFeatures 只返回交互特征
#degree,它确定多项式特征的最高阶数。例如, degree = 3 将生成 x2 和 x3。
#include_bias,默认情况下 PolynomialFeatures 包含一个全为 1 的特征(称为偏差, bias)               '''        

正则化

通过正则化减少方差

!!!! 在线性回归中系数的值受特征的范围(scale)的影响,而在正则化模型中所有系数会被加在一起,所以在训练模型之前必须确保特征已经标准化。 使用包含惩罚项(也称为正则化项)的学习算法,如岭回归(ridge regression)和套索回归(lasso regression)

在岭回归中,收缩惩罚项是可调超参数与所有系数的平方和的乘积,岭回归一般结果较好

在套索回归中,收缩惩罚项是可调超参数与所有系数的绝对值之和的乘积,解释性好

弹性网络,对上面两张加权

from sklearn.linear_model import RidgeCV
# 创建包含三个alpha值的RidgeCV对象
regr_cv = RidgeCV(alphas=[0.1, 1.0, 10.0])
# 拟合线性回归
model_cv = regr_cv.fit(features_standardized, target)
# 查看模型的系数
model_cv.coef_

使用套索回归减少特征

from sklearn.linear_model import Lasso
from sklearn.datasets import load_boston
from sklearn.preprocessing import StandardScaler

# 特征标准化
scaler = StandardScaler()
features_standardized = scaler.fit_transform(features)
# 创建套索回归,并指定 alpha 值
regression = Lasso(alpha=0.5)
# 拟合线性回归
model = regression.fit(features_standardized, target)