Python中岭回归的示例分析

发布时间:2021-11-30 10:00:15 作者:小新
来源:亿速云 阅读:162

这篇文章将为大家详细讲解有关 Python中岭回归的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

岭回归是一种专门用于共线性数据分析的有偏估计回归方法,实质上时改良的最小二乘估计法,通过放弃最小二乘法的无偏性(在反复抽样的情况下,样本均值的集合的期望等于总体均值),以损失部分信息、降低精度为代价获得回归系数更为符合实际、更可靠的回归方法,对共线性问题和病态数据的拟合要强于最小二乘法经,常用于多维问题与不适定问题(ill-posed problem)。
岭回归通过引入一个惩罚变量解决了普通最小二乘法的问题。岭回归相关系数是的惩罚残差平方和最小:
Python中岭回归的示例分析
Python中岭回归的示例分析是收缩率,既控制模型复杂度的因子。

import numpy as np
import matplotlib.pyplot as plt
from sklearn import linear_model#创建一个希伯特矩阵(高度病态,任何一个元素的点发生变动,整个矩阵的行列式的值和逆矩阵都会发生巨大变化)#这里的加法运算类似于矩阵相乘X = 1. / (np.arange(1, 11) + np.arange(0, 10)[:, np.newaxis])
y = np.ones(10)#计算路径n_alphas = 200alphas = np.logspace(-10, -2, n_alphas)
clf = linear_model.Ridge(fit_intercept=False)

coefs = []for a in alphas:
    clf.set_params(alpha=a)
    clf.fit(X, y)
    coefs.append(clf.coef_)#图形展示#设置刻度ax = plt.gca() 
#设置刻度的映射 ax.plot(alphas, coefs)#设置x轴的刻度显示方式ax.set_xscale('log')#翻转x轴ax.set_xlim(ax.get_xlim()[::-1])#设置x、y标签以及标题plt.xlabel('alpha')
plt.ylabel('weights')
plt.title('Ridge coefficients as a function of the regularization')#使得坐标轴最大值和最小值与数据保持一致plt.axis('tight')
plt.show()

Python中岭回归的示例分析
上图展示了岭回归模型的解的10个分量随正则化参数Alpha变化而变化的趋势。每一种颜色代表了不同的相关系数向量特征,它随着传入的正则化参数Alpha的变化而变化。由于图像形态,岭回归又称为脊回归。
这个例子展示了岭回归处理病态矩阵( ill-conditioned matrices)的优势。在病态矩阵里每一个目标变量微小的变动都会产生巨大的方差。对于这种情况就需要设置一个比较合适的正则化参数来减少离差(噪声)。
当正则参数Alpha非常大的时候,正则化的影响支配了二乘法函数,相关系数趋近于0。在路径的结尾,当正则参数alpha趋近于0的时候,结果解趋近于了普通最小二乘法,系数表现出了很大的震荡。

设置正则参数
在实践中要不断的调节正则参数Alpha在上述过程中寻求一种平衡。
RidgeCV实现了岭回归的交叉验证,下面是一种高效的交叉验证方式-留一交叉验证(leave-one-out):

>>> from sklearn import linear_model
>>> clf = linear_model.RidgeCV(alphas=[0.1, 1.0, 10.0])
>>> clf.fit([[0, 0], [0, 0], [1, 1]], [0, .1, 1])       
RidgeCV(alphas=[0.1, 1.0, 10.0], cv=None, fit_intercept=True, scoring=None,
    normalize=False)
>>> clf.alpha_                                      
0.1

关于“ Python中岭回归的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

推荐阅读:
  1. Python中反射的示例分析
  2. Python中is语法的示例分析

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python

上一篇:如何进行数据分析

下一篇:C/C++ Qt TreeWidget单层树形组件怎么应用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》