普通线性回归和评估指标代码实战

        我们用加州房价预测来讲述普通线性回归的算法实战和预测指标。在这里省去数据预处理和特征工程的步骤。首先导入相应的模块:

from sklearn.linear_model import LinearRegression as LR
from sklearn.model_selection import train_test_split
from sklearn.model_selection import cross_val_score
from sklearn.datasets import fetch_california_housing as fch #加利福尼亚房屋价值数据集
import pandas as pd

接下来导入数据:

housevalue = fch() #会需要下载

然后我们用特征名字替换原有的column名,pd.dataframe将数据转化为数据框格式,数据拆分并重置索引:

X.columns = housevalue.feature_names
X = pd.DataFrame(housevalue.data) 
y = pd.DataFrame(housevalue.target)
Xtrain, Xtest, Ytrain, Ytest = train_test_split(X,y,test_size=0.3,random_state=420)

可以看到划分出来的数据集索引的乱的,因此我们要重置索引:

#恢复索引
for i in [Xtrain, Xtest]:
    i.index = range(i.shape[0])

接下来我们训练模型:

reg = LR().fit(Xtrain, Ytrain)

用训练好的模型去预测我们的yhat:

yhat = reg.predict(Xtest) #预测我们的yhat

查看每个变量对应的参数值:

[*zip(Xtrain.columns,reg.coef_.reshape(-1))]

查看截距:

reg.intercept_

现在我们用MSE(均方误差)和r2来评判模型的好坏。MSE用来预测是否预测到了正确的数值,R2用来判断是否拟合了足够多的信息,MSE越小越好,R2越接近1越好:

在这里我们用交叉验证去获得MSE值和R2:

from sklearn.metrics import mean_squared_error as MSE
cross_val_score(reg,X,y,cv=10,scoring="neg_mean_squared_error").mean()
from sklearn.metrics import r2_score
cross_val_score(reg,X,y,cv=10,scoring="r2").mean()

      我们观察到,我们在加利福尼亚房屋价值数据集上的MSE其实不是一个很大的数(0.5),但我们的R2不高,百分之四十几的信息都被遗漏掉了。这证明我们的模型比较好地拟合了一部分数据的数值,却没有能正确拟合数据的分布。让我们与绘图来看看,究竟是不是这 样一回事。我们可以绘制一张图上的两条曲线,一条曲线是我们的真实标签Ytest,另一条曲线是我们的预测结果 yhat,两条曲线的交叠越多,我们的模型拟合就越好:
 

plt.plot(range(len(Ytest)),sorted(Ytest),c="black",label= "Data")
plt.plot(range(len(yhat)),sorted(yhat),c="red",label = "Predict")
plt.legend()
plt.show()

      可见,虽然我们的大部分数据被拟合得比较好,但是图像的开头和结尾处却又着较大的拟合误差。如果我们在图像右 侧分布着更多的数据,我们的模型就会越来越偏离我们真正的标签。这种结果类似于我们前面提到的,虽然在有限的数据集上将数值预测正确了,但却没有正确拟合数据的分布,如果有更多的数据进入我们的模型,那数据标签被预测 错误的可能性是非常大的。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

华视电子驱动安装

1、安装驱动 下载地址:http://ws.it0355.com/a/202101/07/a27013.htm 双击exe文件安装驱动: 检查驱动运行正常: http://www.winwin7.com/soft/xtbd-12727.html vc库安装

IT服务台与Microsoft集成

Microsoft Teams 旨在通过创建一个共享工作区,使组织中的协作更加轻松,用户可以在其中聊天、开会、共享文件和访问业务应用。为了实现这些数字工作空间的最大效率,这一点很重要,当出现问题时,IT服务台团队始终在前沿。…

如何使用Docker搭建Drupal内容管理系统并远程访问

🎬 鸽芷咕:个人主页 🔥个人专栏:《Linux深造日志》《C干货基地》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言1. Docker安装Drupal2. 本地局域网访问3 . Linux 安装cpolar4. 配置Drupal公网访问地址5. 公网远程访问Drupal…

lua环境安装

文章目录 Linux 系统上安装Mac OS X 系统上安装Window 系统上安装 Lua第一个 Lua 程序 Linux 系统上安装 Linux & Mac上安装 Lua 安装非常简单,只需要下载源码包并在终端解压编译即可,本文使用了5.3.0版本进行安装: curl -R -O http://…

2011年12月19日 Go生态洞察:用Go构建StatHat的故事

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

【蓝桥杯选拔赛真题19】C++最佳策略 第十二届蓝桥杯青少年创意编程大赛C++编程选拔赛真题解析

目录 C/C++最佳策略 一、题目要求 1、编程实现 2、输入输出 二、算法分析 <

matlab 小波自适应阈值去噪

1、内容简介 略 12-可以交流、咨询、答疑 小波自适应阈值去噪 2、内容说明 小波自适应阈值一维信号去噪&#xff0c;也包含软阈值和硬阈值 硬阈值、软阈值、自适应阈值 3、仿真分析 略 4、参考论文 略 链接&#xff1a;https://pan.baidu.com/s/1yQ1yDfk-_Qnq7tGpa23L…

用python将csv表格数据做成热力图

python的开发者为处理表格和画图提供了库的支持&#xff0c;使用pandas库可以轻松完成对csv文件的读写操作&#xff0c;使用matplotlib库提供了画热力图的各种方法。实现这个功能首先需要读出csv数&#xff0c;然后设置自定义色条的各种属性如颜色&#xff0c;位置&#xff0c;…

Springboot+Dubbo+Nacos 集成 Sentinel(入门)

Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件&#xff0c;主要以流量为切入点&#xff0c;从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。Sentinel 官网 1.版本选择 参考 SpringClou…

农业水土环境建模流程、DEM数据制备、土地利用数据制备、土壤数据制备、气象数据制备、农业措施数据制备、参数率定与结果验证、农业面源污染分析

目录 一、农业水土环境建模概述 二、ArcGIS入门 三、农业水土环境建模流程 四、DEM数据制备流程 五、土地利用数据制备流程 六、土壤数据制备流程 七、气象数据制备流程 八、农业措施数据制备流程 九、参数率定与结果验证 十、模型结果分析及地图制作 十一、农业土壤…

说说React服务端渲染怎么做?原理是什么?

一、是什么 在SSR中,我们了解到Server-Side Rendering ,简称SSR,意为服务端渲染 指由服务侧完成页面的 HTML 结构拼接的页面处理技术,发送到浏览器,然后为其绑定状态与事件,成为完全可交互页面的过程 其解决的问题主要有两个: SEO,由于搜索引擎爬

jenkins CSV编码导致乱码问题解决

问题&#xff1a;生产报告会乱码的问题&#xff0c;一般是有编码格式引起的。我遇到的问题是&#xff0c;jmeter需要读取csv的数据作为参数。但是我们并不知道csv保存是什么编码格式&#xff0c;有可能不是utf-8的编码格式&#xff0c;所以会导致中文乱码的问题 解决方案&#…

MVVM框架:图片加载有问题

一、前言&#xff1a;在我使用ImageView加载图片的时候添加如下代码发现报错 app:imageUrl"{viewModel.observableField.assetImg}"报错如下错误 二、原因&#xff1a;是啥我不太清楚好像是没有imageView的适配器&#xff0c;后来我看了一下确实没有 public class I…

vant+thinkphp实现文件上传功能

vantthinkphp实现文件上传功能 前端thinkphp后端测试 前端 vue3 vant 代码实现 fileList 预览文件列表&#xff0c;具体可以参考官方文档 let config { headers: { //添加请求头 “Content-Type”: “multipart/form-data”, }, }; 需要以form-data的形式上传文件&#xff…

简单实现,在nodejs中简单使用kafka

什么是 Kafka Kafka 是由 Linkedin 公司开发的&#xff0c;它是一个分布式的&#xff0c;支持多分区、多副本&#xff0c;基于 Zookeeper 的分布式消息流平台&#xff0c;它同时也是一款开源的基于发布订阅模式的消息引擎系统。 Kafka 的基本术语 消息&#xff1a;Kafka 中的…

Oracle 账户被锁:the account is locked 解决方法

Oracle 账户被锁&#xff1a;the account is locked 解决方法 连接Oracle数据库时报错账户已锁定错误 解决方法一&#xff1a;命令行模式&#xff1a; 步骤一&#xff1a; WinR打开命令行输入&#xff1a;sqlplus 使用system或sys账户以管理员身份登录&#xff0c;口令即安装…

视觉分词器统一图文信息,快手提出基座模型 LaVIT 刷榜多模态任务

你是否想过&#xff0c;有朝一日能够仅输入寥寥数语或图片&#xff0c;就可以一键检索最为匹配的短视频内容。不是凭借视频标签、也不是依靠标题字幕&#xff0c;而是大模型真正理解了视频内容。近期&#xff0c;来自快手的新研究利用视觉分词器统一图文信息&#xff0c;LaVIT …

福建科立讯通信 指挥调度管理平台RCE漏洞复现

0x01 产品简介 福建科立讯通信指挥调度管理平台是一个专门针对通信行业的管理平台。该产品旨在提供高效的指挥调度和管理解决方案&#xff0c;以帮助通信运营商或相关机构实现更好的运营效率和服务质量。该平台提供强大的指挥调度功能&#xff0c;可以实时监控和管理通信网络设…

c语言-数据结构-带头双向循环链表

目录 1、双向循环链表的结构 2、双向循环链表的结构体创建 3、双向循环链表的初始化 3.1 双向链表的打印 4、双向循环链表的头插 5、双向循环链表的尾插 6、双向循环链表的删除 6.1 尾删 6.2 头删 6.3 小节结论 7、查找 8、在pos位置前插入数据 9、删除pos位…

机器人仿真GAZEBO开源代码分享

1、https://github.com/PRBonn/agribot 2、https://github.com/ros-mobile-robots/diffbot