python实现一元线性回归详细步骤

#建模、预测和可视化

# 导入相关包
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split  # 切分训练集和测试集的函数import matplotlib
import matplotlib.pyplot as plt
matplotlib.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
matplotlib.rcParams['axes.unicode_minus']=False  # 用来正常显示负号
matplotlib.style.use('ggplot')# 构造数据
np.random.seed(0)
x = np.linspace(-10,10,100) # 从-10到10之间的100个等差数列
# 设置一个线性回归公式
y = 0.85*x - 0.72
# 创建一组数量为100,均值为0,标准差为0.5的随机数组
e = np.random.normal(loc = 0,scale = 0.5,size = x.shape)
# 将变量y加上这个变量e
y += e
plt.plot(y) # 数据折线图如下:

# 将x转换为二维数组,因为fit方法要求x为二维结构
x = x.reshape(-1,1)lr = LinearRegression()
# 切分训练集和测试集
x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.25,random_state=0)# 拟合函数
lr.fit(x_train,y_train)
# 拟合后可利用lr.coef_和lr.intercept_来取出(w)权重和(b)截距
print('权重:',lr.coef_)
print('截距:',lr.intercept_)# 通过训练集得到了拟合函数,就可以进行预测
y_hat = lr.predict(x_test)
# 可查看对比实际值和预测值
print('实际值:',y_test)
print('预测值:',y_hat)# 将数据可视化
plt.figure(figsize=(10,5))
# 训练接和测试集都以散点来表示,拟合线用折线表示
plt.scatter(x_train,y_train,s=10,label='训练集',c='b')
plt.scatter(x_test,y_test,s=10,label='测试集',c='g')
plt.plot(x,lr.predict(x),label='拟合线',c='r')
plt.legend() 
# 数据视图如下:

# 用图表示出实际值和预测值
plt.figure(figsize=(10,5))
plt.plot(y_test,label='真实值',c='r',marker='o')
plt.plot(y_hat,label='预测值',c='g',marker='x')
plt.legend()
# 数据视图如下:

#模型评估

MSE:Mean Squared Error

平均方误差是指参数的估计值和参数的实际值之差的平方的期望,可以评价数据的变化程度,MSE越小,说明模型的拟合实验数据能力强。

RMSE :Root Mean Squared Error

根均方误差是均方误差的平方根。

MAE: Mean Absolute Error

平均绝对误差是样本绝对误差的绝对值,能更好的反应预测值误差的实际情况。

# 模型评估
from sklearn.metrics import mean_squared_error,mean_absolute_error,r2_score
print("平均方误差(MSE):",mean_squared_error(y_test,y_hat))
>>> 平均方误差(MSE): 0.2738537199293911print("根均方误差(RMSE):",mean_absolute_error(y_test,y_hat))
>>> 根均方误差(RMSE): 0.4374356584882062print("平均绝对值误差(MAE):",r2_score(y_test,y_hat))
>>> 平均绝对值误差(MAE): 0.9896372020590347

参考链接:

python代码实现回归分析--线性回归 - 知乎

均方误差(MSE)根均方误差(RMSE)平均绝对误差(MAE)_lighting-CSDN博客

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

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

相关文章

如何利用MATLAB做非线性一元回归,Matlab一元非线性回归分析

Matlab一元非线性回归分析的分析步骤与一元线性回归分析的步骤类似: 大体分为以下几步: (1)绘制x,y的散点图,分析散点图的走势; (2)根据散点图的走势,确定回归方程的具体形式,特别是参数个数的设定和设定初始值; (3)调用NonLinearModel的fit方法进行模型拟合; (4)模型改…

关于腾讯云服务器不能用公网ip访问的解决方案

最近申请了了一个腾讯云服务器,因为有在校大学生的身份,可以参见 云校园 的活动,每月一元即可。 亲自动起手来也算是比较坎坷了,因为本人在这方面就是个小白啊。 具体搭建以及申请域名的过程以后再说,现在主要说下让我…

Java官方教程(三-2)赋值 运算和一元运算符(2020.12.19)

前言 本文是橙子出于兴趣爱好对Java官方教程的尝试翻译,几乎每日更新,感兴趣的朋友可以关注一下橙子;翻译过程中尽可能多的对一些关键词保留了英文原文,如果你想看最纯正的英文原版教材却又看不懂,可以试着来看一下橙…

动画:《大前端吊打面试官系列》 之原生 JavaScript 精华篇

📚更新日志 文中所有修改或补充内容,会在日志中实时更新。 2020/01/7 开始决定写近十几万字前端面试系列,规划整个系列目录提纲。2020/01/8 写完部分“面试官到底考察你什么”内容。2020/01/9 继续完善”面试官到底考察你什么“内容。2020/01…

《C/C++面试200题》四年面试官精心整理

前言 辛苦搬砖 「 十年 」 的老码农,「 四年 」 的 C/C 面试官经验,整理出了一些当年用来「 虐候选人 」的题(不要打我🤣🤣🤣),先弄个 「 200 」 题吧,还有 「 8800 」 题…

超硬核十万字!全网最全 数据结构 代码,随便秒杀老师/面试官,我说的

本文代码实现基本按照《数据结构》课本目录顺序,外加大量的复杂算法实现,一篇文章足够。能换你一个收藏了吧? 当然如果落下什么了欢迎大家评论指出 目录 顺序存储线性表实现 单链表不带头标准c语言实现 单链表不带头压缩c语言实现 约瑟…

AI遇上建筑设计,是出圈还是翻车?

AIGC 落地,始于场景,终于价值。 去年以来出现了 AIGC 热潮,引发了 AIGC 及其应用话题的爆发性增长,不少人感慨强人工智能的时代已经离我们不那么遥远了。但是在热潮的另一面,我们看到真正能落地的场景依然是凤毛麟角&a…

西洋音乐、五线谱

西洋音乐史 符值 休止符 拍号 简单拍子与复合拍子 指挥 混合拍子 谱号(高音谱号、低音谱号、中音谱号) 键盘位置 唱名与音名 固定唱名与首調唱名 简谱 全音与半音 大调音阶与小调音阶 大调音阶 小调音阶(自然小音阶) 小调音阶&…

认识钢琴五线谱

基本知识 1:钢琴由88个黑白键组成,其中包括52个白键和36个黑键。 2:从两黑键左边的白键开始从左往右数七个白键为一对,对应(简谱)1234567和(唱名)do re mi fa sol la si 还有&#…

自动弹琴助手使用及制谱教程

天涯明月刀手游自动弹奏autojs脚本安装使用教程及时下流行制谱教程(包含c4和note模板) 【autojs(以下简称小绿)使用前提条件:您的Android版本是Android7.0及以上,iOS目前只能使用PC助手。因为iOS平台发布APP要巨款~我们穷,所以不搞。】 目录: 一、关于小绿的安装使用 二…

android 仿全民k歌 线谱乐谱音高图

全民k歌大家都不陌生吧,在嗨歌时有一个线谱样式的动画效果是不是很吸引人呢。 效果似乎很复杂,感觉上非自定义view莫属了,然而如何处理滑动、如何处理颜色、如何处理多段线条、如何处理数据变化......等都搞好了准备写的时候才发现————一…

Guitar Pro8.1升级版本新功能支持编写简谱

很多人在听到Guitar Pro这个名词时,本能反应就是跟吉他有关的软件吧,但是具体是什么样子,有什么功能我们却不一定知道的那么详细,下面呢,我们就来详细的介绍下Guitar Pro这款软件。 Guitar Pro是初学作曲,特…

钢琴转谱技术(MP3转MIDI)

代码(by 字节跳动孔大佬): https://github.com/qiuqiangkong/piano_transcription_inference 使用: 1.安装package pip install piano_transcription_inference2.下载预训练模型 https://zenodo.org/record/4034264 3.运行代码 from piano_transcri…

midi转简谱_音乐小技巧分享:五线谱转简谱与MIDI的快速方法

把五线谱转成简谱或者MIDI,一个一个音符的手打校对是非常浪费时间的。无意中我研究出了一个方法,通过几个操作来快速地实现五线谱转制成简谱或者MIDI,现在分享给大家。 最常见的转换需求一般是以下这几种情况: 1、喜欢弹钢琴没有什么基础,而对五线谱反应很慢的朋友,有了简…

ChatGPT与软件架构(2) - 基于Obsidian和GPT实现解决方案架构自动化

磨刀不误砍柴工,良好的工具可以有效提高效率。本文介绍基于Obsidian和GPT打造架构知识库的思路,为架构师提供整理、分享、原文: Solution Architecture Automation With Obsidian and GPT Stas Parechyn Unsplash 本文介绍的ArchVault是一个旨在帮助架构…

uniapp 实现微信聊天效果 阻止input失焦

前景:需要开发一个聊天系统,界面需要和微信一样,输完内容直接点发送内容,内容发送完成,但input不失焦,发送可以用input的confirm事件执行,也可以是在别的dom上绑定发送。遇到两个难点 点发送in…

开发者选项看html,手机怎么打开开发者选项?开发者模式开启方法

在手机的设置中隐藏着一个开发者选项,进入其中可以使用一些开发者要用到的设置,也可以通过设置进行硬件加速等操作,下面就教大家如何进入手机开发者模式。 1、经过对比,发现各品牌的手机打开开发者选项的方法都大同小异&#xff0…

35+大龄程序员从焦虑到收入飙升:我的搞钱副业分享。

37岁大龄程序员,一度觉得自己的职场生涯到头了。既没有晋升和加薪的机会,外面的公司要么接不住我的薪资,要么就是卷得不行,无法兼顾工作和家庭,感觉陷入了死局…… 好在我又重新振作起来,决定用副业和兼职填…

毕业论文html代码查重吗,毕业论文中的代码内容重复了怎么办? 毕业论文代码重复率高...

毕业论文中的代码内容重复了怎么办? 毕业论文代码重复率高 发布时间:2021-04-17 09:00:09 作者:知网小编 多理科的学生在写毕业论文的时候,可能会涉及到论文中代码的内容。例如,在计算机、设计等相关专业领域&#xff…

三星被曝出现漏洞,手机会随机发送照片给别人

随着手机在人们的生活中越来越密不可分,通过一部手机获得用户的隐私数据就成了很简单的事情。近期,部分搭载升降式镜头的手机,会在没有开启镜头的状况下弹出镜头,被用户认为有监控的嫌疑;此外三星部分机型也出现了漏洞…