Re_Lasso

from sklearn.linear_model import LassoCV, Lasso
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score
from sklearn.model_selection import GridSearchCV# 读取数据
df_stars = pd.read_excel('C:/Users/galax/Desktop/Final_Result.xls')
data_stars = df_stars# 属性矩阵和预测目标
X = data_stars.iloc[:, 1:14]
y = data_stars.iloc[:, 1]# 特征名称和目标名称
feature_names = ['KNN_derta_V', 'MOID', 'e', 'a', 'q', 'i', 'node', 'peri', 'M', 'tp','period', 'n', 'Price']target_name = ['Profit_numeric']# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=19)# 创建Lasso模型
lasso_0 = Lasso(max_iter=60000)
# 拟合Lasso模型
lasso_0.fit(X_train, y_train)# 定义参数网格
param_grid = {'alpha': [0.0001, 0.0005, 0.001, 0.005, 0.01, 0.1, 1, 10, 100, 1000]
}# 使用GridSearchCV调整参数
lasso_cv = GridSearchCV(lasso_0, param_grid, cv=7, n_jobs=-1)
lasso_cv.fit(X_train, y_train)
#第三个lasso模型
lasso_cv1=Lasso(alpha=0.0001,max_iter=10000)
lasso_cv1.fit(X_train,y_train)lasso_cv2=Lasso(alpha=0.001,max_iter=10000)
lasso_cv2.fit(X_train,y_train)
lasso_cv3=Lasso(alpha=0.01,max_iter=10000)
lasso_cv3.fit(X_train,y_train)
lasso_cv4=Lasso(alpha=0.1,max_iter=10000)
lasso_cv4.fit(X_train,y_train)
lasso_cv5=Lasso(alpha=1,max_iter=10000)
lasso_cv5.fit(X_train,y_train)# 用调整后的模型做预测
y_pred_cv = lasso_cv.predict(X_test)
y_pred_cv1 = lasso_cv1.predict(X_test)
y_pred_cv2 = lasso_cv2.predict(X_test)
y_pred_cv3= lasso_cv3.predict(X_test)
y_pred_cv4 = lasso_cv4.predict(X_test)
y_pred_cv5= lasso_cv5.predict(X_test)
print("调参后,LassoCV模型的预测值为:", y_pred_cv)
print("调参后,LassoCV1模型的预测值为:", y_pred_cv1)#用3个衡量指标查看调参后的模型性能
print("平均绝对误差MAE2=",mean_absolute_error(y_test,y_pred_cv))
print("均方误差MSE2=",mean_squared_error(y_test,y_pred_cv))
print("R平方值2=",r2_score(y_test,y_pred_cv))
print("最佳的alpha=",lasso_cv.best_params_)#alpha=0.0001#用3个衡量指标查看调参后的模型性能
print("平均绝对误差MAE2=",mean_absolute_error(y_test,y_pred_cv1))
print("均方误差MSE2=",mean_squared_error(y_test,y_pred_cv1))
print("R平方值2=",r2_score(y_test,y_pred_cv1))
print("最佳的alpha=",lasso_cv.best_params_)#alpha=0.0001import matplotlib.pyplot as plt
# 绘制两个lasso模型的R^2对比曲线
plt.figure(figsize=(10, 6))
plt.plot(['Lasso_cv', 'Lasso_cv1','Lasso_cv2','Lasso_cv3','Lasso_cv4','Lasso_cv5'], [r2_score(y_test, y_pred_cv), r2_score(y_test, y_pred_cv1),r2_score(y_test, y_pred_cv2),r2_score(y_test, y_pred_cv3),r2_score(y_test, y_pred_cv4),r2_score(y_test, y_pred_cv5)], marker='o', label='R^2')
plt.xlabel('Models')
plt.ylabel('R^2 Score')
plt.title('Comparison of Model Performance - R^2 Score')
plt.legend()
plt.grid(True)
plt.show()

 

import numpy as np
from sklearn.linear_model import LassoCV, Lasso
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score
from sklearn.model_selection import GridSearchCV# 读取数据
df_stars = pd.read_excel('C:/Users/galax/Desktop/Final_Result.xls')
data_stars = df_stars# 属性矩阵和预测目标
X = data_stars.iloc[:, 1:14]
y = data_stars.iloc[:, 0]# 特征名称和目标名称
feature_names = ['KNN_derta_V', 'MOID', 'e', 'a', 'q', 'i', 'node', 'peri', 'M', 'tp','period', 'n', 'Price']target_name = ['Profit']# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=19)# 创建Lasso模型
lasso_0 = Lasso(max_iter=60000)
# 拟合Lasso模型
lasso_0.fit(X_train, y_train)# 定义参数网格
param_grid = {'alpha': [0.0001, 0.0005, 0.001, 0.005, 0.01, 0.1, 1, 10, 100, 1000]
}# 使用GridSearchCV调整参数
lasso_cv = GridSearchCV(lasso_0, param_grid, cv=7, n_jobs=-1)
lasso_cv.fit(X_train, y_train)
#第三个lasso模型
lasso_cv1=Lasso(alpha=0.0001,max_iter=10000)
lasso_cv1.fit(X_train,y_train)lasso_cv2=Lasso(alpha=0.001,max_iter=10000)
lasso_cv2.fit(X_train,y_train)
lasso_cv3=Lasso(alpha=0.01,max_iter=10000)
lasso_cv3.fit(X_train,y_train)
lasso_cv4=Lasso(alpha=0.1,max_iter=10000)
lasso_cv4.fit(X_train,y_train)
lasso_cv5=Lasso(alpha=1,max_iter=10000)
lasso_cv5.fit(X_train,y_train)# 用调整后的模型做预测
y_pred_cv = lasso_cv.predict(X_test)
y_pred_cv1 = lasso_cv1.predict(X_test)
y_pred_cv2 = lasso_cv2.predict(X_test)
y_pred_cv3= lasso_cv3.predict(X_test)
y_pred_cv4 = lasso_cv4.predict(X_test)
y_pred_cv5= lasso_cv5.predict(X_test)
print("调参后,LassoCV模型的预测值为:", y_pred_cv)
print("调参后,LassoCV1模型的预测值为:", y_pred_cv1)#用3个衡量指标查看调参后的模型性能
print("平均绝对误差MAE2=",mean_absolute_error(y_test,y_pred_cv))
print("均方误差MSE2=",mean_squared_error(y_test,y_pred_cv))
print("R平方值2=",r2_score(y_test,y_pred_cv))
print("最佳的alpha=",lasso_cv.best_params_)#alpha=0.0001#用3个衡量指标查看调参后的模型性能
print("平均绝对误差MAE2=",mean_absolute_error(y_test,y_pred_cv1))
print("均方误差MSE2=",mean_squared_error(y_test,y_pred_cv1))
print("R平方值2=",r2_score(y_test,y_pred_cv1))
print("最佳的alpha=",lasso_cv.best_params_)#alpha=0.0001import matplotlib.pyplot as plt
# 绘制两个lasso模型的R^2对比曲线
plt.figure(figsize=(10, 6))
plt.plot(['Lasso_cv', 'Lasso_cv1','Lasso_cv2','Lasso_cv3','Lasso_cv4','Lasso_cv5'], [r2_score(y_test, y_pred_cv), r2_score(y_test, y_pred_cv1),r2_score(y_test, y_pred_cv2),r2_score(y_test, y_pred_cv3),r2_score(y_test, y_pred_cv4),r2_score(y_test, y_pred_cv5)], marker='o', label='R^2')
plt.xlabel('Models')
plt.ylabel('R^2 Score')
plt.title('Comparison of Model Performance - R^2 Score')
plt.legend()
plt.grid(True)
plt.show()lasso_x=Lasso(alpha=0.1)
#计算Lasso回归路径
alphas=np.logspace(-3,0,100)
coefs=[]
for a in alphas:lasso_x.set_params(alpha=a)lasso_x.fit(X_train, y_train)coefs.append(lasso_x.coef_)
#绘制lasso回归路径图
plt.figure(figsize=(10, 6))
ax=plt.gca()
ax.plot(alphas, coefs, marker='o', label='Lasso_x')
ax.set_xscale('log')
ax.set_xlim(ax.get_xlim()[::-1])
plt.xlabel('alpha')
plt.ylabel('weights')
plt.axis('tight')
plt.show()#绘制LASSO系数图
plt.bar(range(len(lasso_x.coef_)), lasso_x.coef_)
plt.xticks(range(len(lasso_x.coef_)), feature_names)
plt.show()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/9030.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【备战软考(嵌入式系统设计师)】10 - 软件工程基础

这一部分的内容是概念比较多,不要理解,去感受。 涉及的知识点是嵌入式系统开发和维护的部分,也就是和管理相关的,而不是具体如何进行嵌入式系统开发的细节。 系统开发生命周期 按照顺序有下面几个阶段,我们主要要记…

12 华三的二层链路聚合

12 华三的二层链路聚合 配置思路 1. 配置二层静态聚合组 (1) 进入系统视图。 system-view (2) 创建二层聚合接口,并进入二层聚合接口视图。 interface bridge-aggregation interface-number [ lite ] 创建二层聚合接口后,系统将自动生成…

代码随想录算法训练营DAY46|C++动态规划Part8|139.单词拆分、多重背包理论基础、背包问题总结篇

文章目录 139.单词拆分思路CPP代码 多重背包理论基础处理输入把所有个数大于1的物品展开成1个开始迭代,计算dp数组代码优化 背包问题总结篇 139.单词拆分 力扣题目链接 文章讲解:139.单词拆分 视频讲解:你的背包如何装满?| LeetCo…

计算方法实验9:Romberg积分求解速度、位移

任务 输出质点的轨迹 ( x ( t ) , y ( t ) ) , t ∈ { 0.1 , 0.2 , 0.3 , . . . , 10 } (x(t), y(t)), t\in \{0.1, 0.2, 0.3, ..., 10\} (x(t),y(t)),t∈{0.1,0.2,0.3,...,10},并在二维平面中画出该轨迹.请比较M分别取4, 8, 12, 16, 20 时,Romberg积分达…

蓝桥杯省三爆改省二,省一到底做错了什么?

到底怎么个事 这届蓝桥杯选的软件测试赛道,都说选择大于努力,软件测试一不卷二不难。省赛结束,自己就感觉稳啦,全部都稳啦。没想到一出结果,省三,g了。说落差,是真的有一点,就感觉和自己预期的…

汽车软件研发工具链丨怿星科技新产品重磅发布

“创新引领未来”聚焦汽车软件新基建,4月27日下午,怿星科技2024新产品发布会在北京圆满举行!智能汽车领域的企业代表、知名大企业负责人、投资机构代表、研究机构代表齐聚现场,线上直播同步开启,共同见证怿星科技从单点…

经典回溯算法之N皇后问题

问题描述: 有一个N*N的棋盘,需要将N个皇后放在棋盘上,保证棋盘的每一行每一列每一左斜列每一右斜列都最多只能有一个皇后。 按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如…

Java | Leetcode Java题解之第71题简化路径

题目&#xff1a; 题解&#xff1a; class Solution {public String simplifyPath(String path) {String[] names path.split("/");Deque<String> stack new ArrayDeque<String>();for (String name : names) {if ("..".equals(name)) {if …

【基于 PyTorch 的 Python 深度学习】5 机器学习基础(3)

前言 文章性质&#xff1a;学习笔记 &#x1f4d6; 学习资料&#xff1a;吴茂贵《 Python 深度学习基于 PyTorch ( 第 2 版 ) 》【ISBN】978-7-111-71880-2 主要内容&#xff1a;根据学习资料撰写的学习笔记&#xff0c;该篇主要介绍了单 GPU 加速和多 GPU 加速&#xff0c;以及…

英语口语情景对话视频软件分享!

在当今全球化的时代&#xff0c;英语已成为一种通用的国际语言。为了提高英语口语能力&#xff0c;越来越多的人选择使用英语口语情景对话视频软件。本文将为您推荐几款备受欢迎的英语口语情景对话视频软件&#xff0c;帮助您轻松提高英语口语水平。 AI外语陪练 AI外语陪练软件…

已经有 Prometheus 了,还需要夜莺?

谈起当下监控&#xff0c;Prometheus 无疑是最火的项目&#xff0c;如果只是监控机器、网络设备&#xff0c;Zabbix 尚可一战&#xff0c;如果既要监控设备又要监控应用程序、Kubernetes 等基础设施&#xff0c;Prometheus 就是最佳选择。甚至有些开源项目&#xff0c;已经内置…

LoRA的原理简介

在文章开始前先澄清一个概念&#xff0c;需要区分形近的单词"LoRa"&#xff08;long range&#xff09;&#xff0c;这是一项通信技术。熟悉物联网行业的朋友相对会比较熟悉LoRa这项技术&#xff0c;因为有些设备比如电梯的控制就使用了这个技术进行本地数据和命令的…

小红书释放被封手机号 无限注册

前几年抖音也可以释放被封手机号 那时候都不重视 导致现在被封手机号想释放 基本不可能的 或者就是最少几百块 有专业的人帮你通过某些信息差释放 本教程是拆解 小红书被封手机号怎么释放&#xff0c;从今年开始&#xff0c;被封的手机号无法注销了 所以很困扰 那么本教程来…

基于一种改进小波阈值的微震信号降噪方法(MATLAB)

微震是指岩体由于在人为扰动或自然原因下受力变形&#xff0c;发生破裂过程中能量积聚而释放的弹性波或应力波。微震信号具有信噪比低、不稳定性、瞬时性和多样性等特点。因此&#xff0c;在任何损坏之前都会出现微小的裂缝&#xff0c;这种微小的裂缝是由岩层中应力和应变的变…

PPT职场课:话术+技巧+框架+案例,告别只会念PPT不会讲(8节课)

课程目录 001-讲PPT如何开场及导入?5个简单实用的方法.mp4 002-讲PPT如何过渡衔接结尾?6类话术争来就用.mp4 003-掌握这3个逻辑表达万能框架&#xff0c;搞定98的PPT.mp4 004-学会这3种PPT结构讲解技巧告别只会念不会讲(上).mp4 005-学会这3种PPT结构讲解技巧告别只会念…

Logstash分析MySQL慢查询日志实践

删除匹配到的行&#xff0c;当前行信息不记录到message中

106网页短信群发平台

什么是106网页短信群发平台&#xff1f; 106网页短信群发平台是一种便捷的在线群发工具&#xff0c;通过该平台用户可以方便地向大量的手机号码*。相比传统的群发方式&#xff0c;106网页群发平台具有更高效、更便捷的特点。 为什么选择106网页短信群发平台&#xff1f; 高效快…

浙大×移动云,携手点亮AI新时代

近年来&#xff0c;中国移动依托强大的算网资源优势&#xff0c;围绕大模型训练、推理和应用三大场景&#xff0c;打造了一站式智算产品体系。该体系旨在为客户提供覆盖资源、平台、应用的AI全链路服务。目前&#xff0c;一站式智算产品体系已在浙江大学智算中心和许昌中原智算…

C++:编程界的王者,引领未来的创新之路

在编程语言的浩瀚星空中&#xff0c;C犹如一颗耀眼的恒星&#xff0c;以其卓越的性能、深厚的底蕴和广泛的应用领域&#xff0c;持续引领着编程界的发展。它不仅在当下拥有无可替代的地位&#xff0c;更在未来展现出无限的潜力和可能性。 一、C&#xff1a;编程界的王者风范 …

若依框架dialog弹窗取消点击空白出关闭

如果想全局取消的话就找到main.js在里面加上下面的一行代码&#xff0c;添加完成之后记得清楚浏览器缓存重新加载js文件。 Element.Dialog.props.closeOnClickModal.default false;如果想指定某个弹窗取消点击空白处关闭&#xff0c;那么就找到那个弹窗加上。添加完毕之后刷新…