Python Ridge()实现岭回归(附带实例)
在 Python 中,无须理会烦琐的线性回归求解过程,直接使用 Scikit-Learn 的 linear_model 模块就可以实现线性回归分析。linear_model 模块提供了很多线性模型,包括最小二乘法回归、岭回归、Lasso、贝叶斯回归等。
首先导入 linear_model 模块,程序代码如下:
岭回归在最小二乘法回归的基础上加入了对回归系数的 L2 范数约束。岭回归是缩减法的一种,相当于对回归系数的大小施加了限制。
岭回归主要使用 linear_model 模块的 Ridge() 函数实现。语法格式如下:
主要属性:
主要方法:
Ridge() 函数使用 fit 属性将线性模型的回归系数存储在其成员变量 coef_ 属性中。
【实例】使用岭回归函数 Ridge() 智能预测房价,程序代码如下:
首先导入 linear_model 模块,程序代码如下:
from sklearn import linear_model导入 linear_model 模块后,在程序中就可以使用相关函数实现线性回归分析了。
岭回归在最小二乘法回归的基础上加入了对回归系数的 L2 范数约束。岭回归是缩减法的一种,相当于对回归系数的大小施加了限制。
岭回归主要使用 linear_model 模块的 Ridge() 函数实现。语法格式如下:
linear_model.Ridge( alpha=1.0, fit_intercept=True, normalize=False, copy_X=True, max_iter=None, tol=0.001, solver='auto', random_state=None )参数说明:
- alpha:权重;
- fit_intercept:布尔值,指明是否需要计算截距,默认值为 True;
- normalize:输入的样本特征归一化,默认值为 False;
- copy_X:复制或者重写;
- max_iter:最大迭代次数;
- tol:浮点型,控制求解的精度;
- solver:求解器,其值包括 auto、svd、cholesky、sparse_cg 和 lsqr,默认值为 auto。
主要属性:
- coef_:数组或形状,表示线性回归分析的回归系数。
主要方法:
- fit(X, y):拟合线性模型;
- predict(X):使用线性模型返回预测值。
Ridge() 函数使用 fit 属性将线性模型的回归系数存储在其成员变量 coef_ 属性中。
【实例】使用岭回归函数 Ridge() 智能预测房价,程序代码如下:
# 导入相关模块 from sklearn.linear_model import Ridge import numpy as np # 创建数据 X = np.array([[1, 56], [2, 104], [3, 156], [2, 200], [1, 250], [1, 300]]) y = np.array([7800, 9000, 9200, 10000, 11000, 12000]) clf = Ridge(alpha=1.0) # 岭回归权重为 1.0 clf.fit(X, y) # 拟合岭回归模型 k = clf.coef_ # 回归系数 b = clf.intercept_ # 截距 x0 = np.array([[2, 170]]) # 新数据 # 通过给定的 x0 预测 y0,y0 = 截距 + x0 × 斜率 y0 = clf.predict(x0) # 预测值 print("回归系数:", k) print("截距:", b) print("预测值:", y0)运行程序,结果如下:
回归系数:[-94.29397947 16.1062615 ]
截距:7128.944172027532
预测值:[9678.42066865]