Re_Lasso

news2024/12/28 21:46:50
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.0001



import 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.0001



import 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.coloradmin.cn/o/1657235.html

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

相关文章

极市平台 | 一文详解视觉Transformer模型压缩和加速策略(量化/低秩近似/蒸馏/剪枝)

本文来源公众号“极市平台”,仅用于学术分享,侵权删,干货满满。 原文链接:一文详解视觉Transformer模型压缩和加速策略(量化/低秩近似/蒸馏/剪枝) 作者丨Feiyang Chen等 来源丨AI生成未来 编辑丨极市平台 0 极市导读 本研究…

(24)实时采集微信消息(基于独立窗体)-微信UI自动化(.Net+C#)

整理 | 小耕家的喵大仙 出品 | CSDN(ID:lichao19897314) Q Q | 978124155 往期知识回顾 (1)开启探索微信自动化之路-微信UI自动化(.NetC#) (2)初始化微信窗体UI自动化实例-微信UI自动化(.NetC#) (3)采用热键终止微信采集任务-微信UI自动…

Linux网络部分——SSH远程访问及控制

目录 一、配置OpenSSH服务端【☆】 1. ssh服务端配置 vim /etc/ssh/sshd_config 2.客户端连接验证 二、使用SSH客户端程序 1.ssh 远程登录 2.scp 远程复制 3.sftp 安全FTP 三、SSH的验证方式 1. 密钥对验证【☆】 2. 如何实现免密登录 【拓展】免交互创建密钥对和免交…

Docker 安装的MySQL迁移数据库

1. 导出数据库 docker ps :查看数据库对应的 CONTAINER ID docker exec -it id /bin/bash : 进入到mysql的docker实例中 cd /usr/bin : 进入到bin目录 mysqldump -u root -p123456 study > /root/study_backup0509.sql :使用mysqldump备份库,注意密码与-p之间…

Java基于B/S医院绩效考核管理平台系统源码java+springboot+MySQL医院智慧绩效管理系统源码

Java基于B/S医院绩效考核管理平台系统源码javaspringbootMySQL医院智慧绩效管理系统源码 医院绩效考核系统是一个关键的管理工具,旨在评估和优化医院内部各部门、科室和员工的绩效。一个有效的绩效考核系统不仅能帮助医院实现其战略目标,还能提升医疗服…

win10 远程桌面无法连接,解决Win10远程桌面无法连接问题的方法

Windows 10操作系统中,远程桌面是一项非常实用的功能,它允许用户从另一台设备远程访问和控制另一台计算机。然而,有时候用户可能会遇到Win10远程桌面无法连接的问题。本文将探讨可能导致这个问题的原因,并提供相应的解决方案。 确…

为什么需要归档和管理合同

归档和管理合同是非常重要的,主要有以下几个原因: 1. 法律合规性:公司需要遵守法律和监管要求,合同是法律文件,涉及公司的权益和责任。归档和管理合同可以确保公司遵守法律法规,合同的内容和执行过程都符合…

【异常检测】新版异常检测库anomalib的使用

every blog every motto: There’s only one corner of the universe you can be sure of improving, and that’s your own self. https://blog.csdn.net/weixin_39190382?spm1010.2135.3001.5343 0. 前言 异常检测库anomalib的使用 1. 前提 1.1 数据组织形式 说明&#…

Linux|进程地址空间

Linux|内存地址空间 现象基本概念理解如何理解地址空间什么是划分区域&#xff1f;地址空间的理解为什么要有地址空间&#xff1f;如何进一步理解页表和写时拷贝如何理解虚拟地址 Linux真正的进程调度方案 现象 #include <stdio.h> #include <string.h> #include …

AcWing 4993 FEB

4993. FEB - AcWing题库 大佬亲笔 将原串分成三段&#xff1a; FFF|E.....B|FFF 先合并中间段&#xff0c;再合并两边的段 #include <iostream> #include <cstring> #include <algorithm> #include <string> #include <queue&g…

鸿蒙内核源码分析(忍者ninja篇) | 都忍者了能不快吗

ninja | 忍者 ninja是一个叫 Evan Martin的谷歌工程师开源的一个自定义的构建系统,最早是用于 chrome的构建,Martin给它取名 ninja(忍者)的原因是因为它strikes quickly(快速出击).这是忍者的特点,可惜Martin不了解中国文化,不然叫小李飞刀更合适些.究竟有多块呢? 用Martin自…

Fastgpt知识库接入oneapi和自定义大模型

本期教程教大家训练自己的知识库回答chatgpt回答不了的问题 FastGPT 是一个知识库问答系统,可以通过调用大模型和知识库回答特定的问题 可以做成专属 AI 客服集成到现有的APP或者网站内当作智能客服支持网络爬虫学习互联网上的很多知识可以通过flow可视化进行工作流程编排 本期…

Ubuntu20.4中复现Graspness

Ubuntu20.4中复现Graspness 文章目录 Ubuntu20.4中复现Graspness1.安装cuda和cudnn2.安装pytorch3.安装MinkowskiEngine4.编译graspnetAPI5. RuntimeError: "floor" "_vml_cpu" not implemented for IntRefernece &#x1f680;非常重要的环境配置&#x1…

深入理解DNS、ICMP协议与NAT技术:网络世界的三大基石

⭐小白苦学IT的博客主页⭐ ⭐初学者必看&#xff1a;Linux操作系统入门⭐ ⭐代码仓库&#xff1a;Linux代码仓库⭐ ❤关注我一起讨论和学习Linux系统❤ 前言 在网络世界中&#xff0c;数据的传输和交互离不开各种协议和技术的支持。其中&#xff0c;DNS&#xff08;域名系统&am…

1068 万绿丛中一点红

solution 找出满足①像素值唯一&②和相邻像素点色差大于tol 的像素点个数 若唯一&#xff0c;则输出该像素点列、行、像素值&#xff1b;若不唯一&#xff0c;则输出"Not Unique"若无&#xff0c;则输出"Not Exist" 题干和输出中&#xff0c;都是先列…

【ACM出版】第四届控制与智能机器人国际学术会议(ICCIR 2024)

第四届控制与智能机器人国际学术会议&#xff08;ICCIR 2024&#xff09; 2024 4th International Conference on Control and Intelligent Robotics 2024年6月21日-23日 | 中国-广州 官网&#xff1a;www.ic-cir.org EI、Scopus双检索 投稿免费参会、口头汇报及海报展示 四…

【MySQL数据库开发设计规范】之基础规范

欢迎点开这篇文章&#xff0c;自我介绍一下哈&#xff0c;本人笔名姑苏老陈&#xff0c;是一个JAVA开发老兵。 本文收录于 《MySQL数据库开发设计规范》专栏中&#xff0c;该专栏主要分享一些关于MySQL数据库开发设计相关的技术规范文章&#xff0c;定期更新&#xff0c;欢迎关…

Python从0到POC编写--实用小脚本02

爆破脚本&#xff1a; 爆破脚本也是我们经常使用的东西 这里就简单讲讲后台爆破脚本的编写吧 在编写之前&#xff0c;我们先通过访问网站去看看情况 首先我们可以先登录看看 输入账号 admin &#xff0c;密码 12345 后 登录失败&#xff0c;提示 用户名或密码错误 在输入…

水质监测设备预警系统

随着工业化进程的加快和城市化水平的提高&#xff0c;水质安全问题愈发受到社会各界的广泛关注。为了确保水资源的清洁与安全&#xff0c;水质监测设备预警系统成为了不可或缺的利器。在这个背景下&#xff0c;HiWoo Cloud平台凭借其先进的技术和卓越的性能&#xff0c;为水质监…

Centos中将UTC的时区改为CTS时区

date命令可以看到现在的时间以及时区&#xff0c;可以看到现在是UTC时区 而想要更改时区那么就要了解tzselect命令 tzselect 是一个 Linux 命令行工具&#xff0c;用于交互式地帮助用户选择并设置系统的时区。这个程序会通过一系列的问题引导用户&#xff0c;从而确定用户所在的…