仅供自己复习回顾使用,若有侵权可删除
创建线性回归对象
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)