sklearn岭回归应用
发布日期:2021-05-28 17:02:15 浏览次数:27 分类:技术文章

本文共 1197 字,大约阅读时间需要 3 分钟。

sklearn岭回归应用

前言: 前面博文关于线性回归模型我们可以用梯度下降法或者标准方程法进行训练,但是两种方法各有优缺点。特别是标准方程法一个比较重要的缺点是数据存在不可逆现象则无法训练出结果,而岭回归就是解决标准方程法这一缺点出现的,岭回归模型是由带正则化的代价函数推导得到,他避免数据不可逆的现象,进而得到近似最优解。

一、sklearn岭回归使用示例代码

import numpy as npfrom numpy import genfromtxtfrom sklearn import linear_modelimport matplotlib.pyplot as plt# 读取数据data = genfromtxt(r'longley.csv', delimiter=',')# 切分数据x_data = data[1:, 2:]y_data = data[1:, 1]print(y_data)# 训练模型# 生成50个岭系数的值lmd = np.linspace(0.001, 1, 50)model = linear_model.RidgeCV(alphas=lmd, store_cv_values=True)  # 利用岭回归方法交叉验证各个岭系数的误差,进而确定最终选择哪个岭系数model.fit(x_data, y_data)# 训练得到的最合适的岭系数print(model.alpha_)# loss值print(model.cv_values_.shape)  # (16,50)每一个岭系数对应的交叉验证损失值为对应列的和取平均# 绘图 (验证求得岭系数是否合理)# 岭系数和loss值的关系plt.plot(lmd, model.cv_values_.mean(axis=0))  # model.cv_values_.mean(axis=0)是对列求平均值# 最终选取的岭系数的位置plt.plot(model.alpha_, min(model.cv_values_.mean(axis=0)), 'ro')plt.show()# 根据训练的模型进行预测print(model.predict(x_data[2, np.newaxis]))  # 预测结果88.11216213与真实值88.2很接近,所以预测效果不错

二、代码运行结果图

[ 83.   88.5  88.2  89.5  96.2  98.1  99.  100.  101.2 104.6 108.4 110.8 112.6 114.2 115.7 116.9]0.40875510204081633(16, 50)[88.11216213]

在这里插入图片描述

三、数据下载
链接:https://pan.baidu.com/s/14xi9nAW4DyY3mWFp_GTb0w
提取码:3kf3

转载地址:https://blog.csdn.net/qq_34720818/article/details/105862824 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:标准方程法的改进--岭回归算法的python实现
下一篇:机器学习之线性回归模型标准方程法的python实现

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年08月30日 04时45分46秒