线性回归9-岭回归API
1 API
1.1 Ridge
- sklearn.linear_model.Ridge(alpha=1.0, fit_intercept=True,solver="auto", normalize=False)
- 具有l2正则化的线性回归
- alpha:正则化力度,也叫 λ->λ取值:0~1 1~10
- solver:会根据数据自动选择优化方法
= sag:如果数据集、特征都比较大,选择该随机梯度下降优化 - normalize:数据是否进行标准化
- 属性
- Ridge.coef_:回归权重
- Ridge.intercept_:回归偏置
1.2 RidgeCV
- sklearn.linear_model.RidgeCV(_BaseRidgeCV, RegressorMixin)
- 具有l2正则化的线性回归,可以进行交叉验证
- coef_:回归系数
Ridge方法相当于SGDRegressor(penalty='l2', loss="squared_loss"),只不过SGDRegressor实现了一个普通的随机梯度下降学习,推荐使用Ridge(实现了SAG)
2 代码实现
def liner_model2() :
# 1.获取数据
boston = load_boston()
print(boston)
# 2.数据处理
# 2.1 分割数据
x_train, x_test, y_train, y_test = train_test_split(boston.data, boston.target, test_size=0.2)
# 3.特征工程-数据标准化
transfer = StandardScaler()
x_train = transfer.fit_transform(x_train)
x_test = transfer.fit_transform(x_test)
# 4.机器学习-线性回归(梯度下降)
#estimator = Ridge(alpha=1.0)
estimator = RidgeCV(alphas=(0.001,0.01,0.1,1,10,100))
estimator.fit(x_train, y_train)
# 5.模型评估
y_predict = estimator.predict(x_test)
print("预测值为:\n", y_predict)
print("模型中的系数为:\n", estimator.coef_)
print("模型中的偏置为:\n", estimator.intercept_)
# 评价指标 均方误差
error = mean_squared_error(y_test, y_predict)
print("均方误差:\n", error)
return None

浙公网安备 33010602011771号