首页 > 编程笔记 > PHP笔记 阅读:2

Python Ridge()实现岭回归(附带实例)

Python 中,无须理会烦琐的线性回归求解过程,直接使用 Scikit-Learn 的 linear_model 模块就可以实现线性回归分析。linear_model 模块提供了很多线性模型,包括最小二乘法回归、岭回归、Lasso、贝叶斯回归等。

首先导入 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
)
参数说明:
主要属性:
主要方法:
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]

相关文章