这篇文章主要讲解了“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 npimport matplotlib.pyplot as pltfrom 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 = 200alphas = 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 axisplt.xlabel('alpha')plt.ylabel('weights')plt.title('Ridge coefficients as a function of the regularization')plt.axis('tight')plt.show()
输出:
感谢各位的阅读,以上就是“Sklearn广义线性模型岭回归怎么实现”的内容了,经过本文的学习后,相信大家对Sklearn广义线性模型岭回归怎么实现这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/u/4607696/blog/4483053