Sklearn广义线性模型岭回归怎么实现

2023-05-17

这篇文章主要讲解了“Sklearn广义线性模型岭回归怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Sklearn广义线性模型岭回归怎么实现”吧!

岭回归(Ridge)通过对系数的大小施加惩罚来解决"普通最小二乘法"的一些问题。岭系数最小化的是带罚项的残差平方和,

其中,a>=0是控制系数收缩量的复杂性参数:a的值越大,收缩量越大,模型对共线性的鲁棒性也更强。

与其他线性模型一样,Ridge用fit方法完成拟合,并将模型系数数w存储在其coef_成员中

>>> from sklearn import linear_model
>>> reg = linear_model.Ridge (alpha = .5)
>>> reg.fit ([[0, 0], [0, 0], [1, 1]], [0, .1, 1])
Ridge(alpha=0.5, copy_X=True, fit_intercept=True, max_iter=None,
normalize=False, random_state=None, solver='auto', tol=0.001)
>>> reg.coef_
array([ 0.34545455,  0.34545455])
>>> reg.intercept_
0.13636...

岭回归示例:

      岭回归主要是显示共线性对估计器系数的影响。岭回归是此示例中使用的估计量。 每种颜色代表系数矢量的不同特征,并且根据正则化参数进行显示。此示例还显示了将Ridge回归应用于病情严重的矩阵的有用性。 对于此类矩阵,目标变量的微小变化可能会导致计算出的权重出现巨大差异。 在这种情况下,设置某个正则化(alpha)来减少这种变化(噪声)是很有用的。
当alpha很大时,正则化效应将主导平方损耗函数,并且系数趋于零。 在路径的尽头,随着alpha趋于零且解趋于普通的最小二乘,系数呈现出较大的振荡。 实际上,有必要以使两者之间保持平衡的方式调整alpha。

import numpy as np
import matplotlib.pyplot as plt
from sklearn import linear_model

#创建10*10矩阵
X = 1. / (np.arange(1, 11) + np.arange(0, 10)[:, np.newaxis])
y = np.ones(10)

# 计算不同a的计算结果
n_alphas = 200
alphas = np.logspace(-10, -2, n_alphas)#创建等比数列

coefs = []
for a in alphas:
   ridge = linear_model.Ridge(alpha=a, fit_intercept=False)
   ridge.fit(X, y)
   coefs.append(ridge.coef_)
print(len(coefs))

# 可视化展示结果
ax = plt.gca()
ax.plot(alphas, coefs)
ax.set_xscale('log')
ax.set_xlim(ax.get_xlim()[::-1])  # reverse axis
plt.xlabel('alpha')
plt.ylabel('weights')
plt.title('Ridge coefficients as a function of the regularization')
plt.axis('tight')
plt.show()

输出:

感谢各位的阅读,以上就是“Sklearn广义线性模型岭回归怎么实现”的内容了,经过本文的学习后,相信大家对Sklearn广义线性模型岭回归怎么实现这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是本站,小编将为大家推送更多相关知识点的文章,欢迎关注!

《Sklearn广义线性模型岭回归怎么实现.doc》

下载本文的Word格式文档,以方便收藏与打印。