IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【作业】岭回归和LASSO回归 -> 正文阅读

[人工智能]【作业】岭回归和LASSO回归

一、岭回归

(一)解决的问题

1、自变量个数多于样本量

2、存在多重共线性

(二)解决方法

在线性回归模型的目标函数上添加一个l2的正则项(也称为惩罚项),从而使得模型的回归系数有解

岭回归模型的目标函数表示为:J(\beta )=\sum(y-X\beta)^{2}+\sum \lambda \beta ^{2}

为了使目标函数达到最小,只能通过缩减回归系数使\beta趋近于0

求目标函数最小值:先对其求导,再令导函数为0

重点:一个\lambda对应一个\beta求出最优的\lambda,使得目标函数最小,则得到相应回归系数\beta

(三)python实现(k重交叉验证法确定\lambda值)

import pandas as pd
import numpy as np
from sklearn.metrics import mean_squared_error
from sklearn import model_selection
from sklearn.linear_model import Ridge,RidgeCV,Lasso,LassoCV
import matplotlib.pyplot as plt

#数据导入
dataset=pd.read_csv(r'C:\Users\DELL\Desktop\5.csv')

#---------------岭回归建模---------------#
#【交叉验证法确定lambda值】
#拆分数据集为训练集(8个样本)和测试集(3个样本)
X_train,X_test,y_train,y_test=model_selection.train_test_split(dataset[dataset.columns[1:]],dataset['y'],test_size=0.2,random_state=1234)
#构造不同的Lambda值
Lambdas=np.logspace(-5,2,100)
#设置交叉验证的参数,对于每一个Lambda值,都执行8重交叉验证
ridge_cv=RidgeCV(alphas=Lambdas,normalize=True,scoring='neg_mean_squared_error',cv=8)   #cv的值不能超过样本数量
#模型拟合
ridge_cv.fit(X_train,y_train)
#返回最佳的lambda值
ridge_best_Lambda=ridge_cv.alpha_
print('最佳的lambda值:',ridge_best_Lambda)

#【基于最佳的lambda值建模】
ridge=Ridge(alpha=ridge_best_Lambda,normalize=True)
ridge.fit(X_train,y_train)
#返回岭回归模型的回归系数
pd.Series(index=['Intercept']+X_train.columns.tolist(),data=[ridge.intercept_]+ridge.coef_.tolist())

#【模型的预测】
ridge_predict=ridge.predict(X_test)
#预测效果验证(用评估模型好坏的均方根误差RMSE)
RMSE=np.sqrt(mean_squared_error(y_test,ridge_predict))
print('岭回归的均方根误差RMSE:',RMSE)

【输出结果】

二、LASSO回归

(一)解决的问题

1、岭回归最终会保留建模时的所有变量,无法降低模型的复杂度

(二)解决方法

LASSO回归与岭回归类似,属于缩减性估计,但在回归系数的缩减过程中,可以将一些不重要的回归系数直接缩减为0,即达到变量筛选的功能(直接删除相应变量)

LASSO回归模型的目标函数表示为:J(\beta )=\sum(y-X\beta)^{2}+\sum \lambda\left | \beta \right |

?重点:一个\lambda对应一个\beta求出最优的\lambda,使得目标函数最小,则得到相应回归系数\beta

(三)python实现(k重交叉验证法确定\lambda值)

#---------------LASSO回归建模---------------#
#【LASSO回归模型的交叉验证】
lasso_cv=LassoCV(alphas=Lambdas,normalize=True,cv=8,max_iter=1000)
#模型拟合
lasso_cv.fit(X_train,y_train)
#输出最佳的lambda值
lasso_best_alpha=lasso_cv.alpha_
print('最佳的lambda值:',lasso_best_alpha)

#【基于最佳的lambda值建模】
lasso=Lasso(alpha=lasso_best_alpha,normalize=True,max_iter=1000)
#对“类”加以数据实体,执行回归系数的运算
lasso.fit(X_train,y_train)
#返回Lasso回归的系数
pd.Series(index=['Intercept']+X_train.columns.tolist(),data=[lasso.intercept_]+lasso.coef_.tolist())
#由结果可知:自变量x2、x4、x5、x6对于因变量y不显著,即只有x1和x3显著

#【模型预测】
lasso_predict=lasso.predict(X_test)
#预测效果验证(用评估模型好坏的均方根误差RMSE)
RMSE=np.sqrt(mean_squared_error(y_test,lasso_predict))

【输出结果】?

【分析】

可以看到,自变量x2、x4、x5、x6对于因变量y不显著,只有x1和x3显著

LASSO回归相对于岭回归降低了模型复杂度

三、两种模型基于均方根误差RMSE的比较

【RMSE】(RMSE更小则代表模型拟合效果更好

岭回归的均方根误差RMSE: 1.663381811970425

LASSO回归的均方根误差RMSE: 1.405076253170086(更小

【结论】

相比于岭回归,LASSO回归降低模型复杂度的情况下进一步提升了模型的拟合效果

在绝大多数情况下,LASSO回归得到的系数比岭回归更加可靠和易于理解

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-10-21 12:11:36  更:2021-10-21 12:14:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 8:36:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码