scikit-learn实现单因子线性回归模型

1.是什么:

针对机器学习提供了数据预处理,分类,回归等常见算法的框架
在这里插入图片描述

2.基于scikit-learn求解线性回归的问题:

2.1.求解a,b对新数据进行预测:

在这里插入图片描述

2.2评估模型表现(y和y’的方差MSE):

在这里插入图片描述
在这里插入图片描述

2.3 图形展示:

**scatter(x,y):**画散点图
**绘画子图:**利用matplotlib绘画子图subplot(211)——>代表两行一列第一张图绘制
在这里插入图片描述

3.单因子线性回归模型:

  1. 这些是导入所需的Python库和模块。NumPy用于数值计算,Pandas用于数据处理,Matplotlib用于绘图,而Scikit-learn中的LinearRegression类和评估指标用于线性回归建模和评估。
  2. 在这里插入图片描述
  3. 在这里插入图片描述
  4. 在这里插入图片描述
  5. 在这里插入图片描述
  6. 在这里插入图片描述
  7. 在这里插入图片描述
  8. 在这里插入图片描述
  9. 在这里插入图片描述
    10.在这里插入图片描述

问:为什么scikit-learn期待输入的是二维数组?

  1. 一致性: Scikit-learn的设计遵循一致性原则,即无论输入是一维数组还是二维数组,模型的处理方式应该是一致的。因此,为了保持一致性,大多数模型都要求输入是二维数组。
  2. 多特征支持: 在实际问题中,往往会有多个特征(或自变量)影响目标变量(或因变量)。而使用二维数组可以很容易地表示多个特征,每一列代表一个特征,每一行代表一个样本。
  3. 适应性: 使用二维数组可以更好地适应各种数据集的情况,不论是单特征还是多特征的情况。

完整代码:

# 导入工具包
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score

# 1.读取generated_data.csv文件数据
path = 'D:/pythonDATA/generated_data.csv'
data = pd.read_csv(path)
type(data)
# 2.查看读取到的文件
print(data.head())
# 3.分别将数据赋值给x和y
X = data['x']
y = data['y']
print(type(X))
# 4.利用matplotlip将数据可视化,进行分散图显示
plt.figure(figsize=(10, 8))
plt.scatter(X, y)
plt.show()
# 5.创造线性回归模型
lr_model = LinearRegression()
# 输出X的纬度
print(X.shape)
# 6.先将X利用numpy转为数组,然后再reshape成二维数组
X = np.array(X)
print(X)
X = X.reshape(-1, 1)
print(X)
print(X.shape)  # (10,1)
# 7.拟合训练
lr_model.fit(X, y)
# 8.查看线性回归模型拟合后的系数a,b
a = lr_model.coef_
b = lr_model.intercept_
print(a)
print(b)
# 9.对X=3.5时进行模型预测y值
c_predict = lr_model.predict([[3.5]])
print(c_predict)
y_predict = lr_model.predict(X)
print(y_predict)
# 10.进行模型评估
MSE = mean_squared_error(y, y_predict)
R2 = r2_score(y, y_predict)
print(MSE)  # MSE接近0
print(R2)  # R2值接近1,拟合度很高
# 11.可视化y和y'
fig2 = plt.figure(figsize=(10, 10))
plt.scatter(y, y_predict)
plt.show()

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

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

相关文章

Linux流量分析工具 | nethogs

在应急过程中,经常会遇到应用访问缓慢,网络阻塞的情况,分析原因可能会想到存在恶意程序把带宽占满的可能。通过这样一个小工具可以快速定位异常占用带宽程序的路径、PID、占用流量大小或是排除由带宽占满导致服务器缓慢的猜想。 一、简介 Ne…

【ai早报-01 project】

今天和大家分享一款有趣的开源项目 01 Project。 The 01 Project is building an open-source ecosystem for AI devices. 其主旨是基于开源生态,构建以LLM为核心的产品,提供软硬件方案。 市面上类似产品: Rabbit R1, Humane Pin。 如上图所示的这款产…

保姆级零基础微调大模型(LLaMa-Factory,多卡版)

此处非常感谢https://github.com/hiyouga/LLaMA-Factory这个项目。 看到网上的教程很多都是教如何用webui来微调的,这里出一期命令行多卡微调教程~ 1. 模型准备 模型下载比较方便的方法: 1. modelscope社区(首选,速度很高,并且很多需要申请的模型都有)注意要选择代码…

MySQL加减间隔时间函数DATE_ADD和DATE_SUB的详解

目录 前言语法示例代码运用 前言 mysql中内置函数date_add 和 date_sub能对指定的时间进行增加或减少一个指定的时间间隔,返回的是一个日期。 语法 添加时间间隔 DATE_ADD(date,INTERVAL expr type)SELECT DATE_add(NOW(),INTERVAL -7 DAY);//获取7天前的日期 S…

编译和链接(超详细)

✅博客主页:爆打维c-CSDN博客​​​​​​ 🐾 🔹分享c语言知识及代码 一、编译和链接实例 假设我们有一个名为main.c的C语言源文件,它包含了一个简单的Hello World程序。我们可以使用gcc编译器对该源文件进行编译,生成一个可执行…

初学者必知:ARM与单片机的区别

在开始前我有一些资料,是我根据网友给的问题精心整理了一份「ARM的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!!ARM和单片机之间有许多区别&#…

锂电池恒流恒压CCCV充电模型MATLAB仿真

微❤关注“电气仔推送”获得资料(专享优惠) CCCV简介 CCCV充电过程是恒流充电(CC)和恒压充电(CV)的结合。在CC阶段对电池施加恒定电流,以获得更快的充电速度,此时电池电压持续升高…

python爬取sci论文等一系列网站---通用教程超详细教程

环境准备 确保安装了Python以及requests和BeautifulSoup库。 pip install requests beautifulsoup4确定爬取目标 选择一个含有SCI论文的网站,了解该网站的内容布局和数据结构。 (1)在浏览器中访问目标网站,右键点击页面并选择…

免费开源低代码平台种草推荐

从业20载,从当初的兴奋,到最后的麻木,甚至怀疑: 程序员是不是就是在不断的学习各种技术, 然后做着同样的重复劳动(体力劳动),在各种业务系统上用各种技术做同样的增删改查。 对的&am…

每日两题 / 104. 二叉树的最大深度 102. 二叉树的层序遍历(LeetCode热题100)

104. 二叉树的最大深度 - 力扣(LeetCode) 递归判断,当前节点的最大深度为1 max(左节点的最大深度,右节点的最大深度) /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* …

C++ 函数重载

两个以上的函数,具有相同的函数名,但是形参的个数或者类型不同,编译器会根据实参的类型机个数的最佳来自动调用哪一个函数。 一 带默认形参值的函数 在定义函数时预先声明默认的形参值。调用时如果给出实参,则用实参初始化形…

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

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

《大数据分析-数据仓库项目实战》学习笔记

目录 基本概念 数据仓库 数据仓库整体技术架构 数据仓库主题 数据集市 数据仓库的血缘关系 数据仓库元数据管理 数据仓库的指标 数据仓库维度概念 HDFS Flume Hadoop Kafka 数据仓库分层模型 Superset 即席查询 Sqoop Atlas元数据管理 项目需求描述 系统目标…

AlibabaCloud微服务下的链路追踪系统实战详解

🚀 作者 :“二当家-小D” 🚀 博主简介:⭐前荔枝FM架构师、阿里资深工程师||曾任职于阿里巴巴担任多个项目负责人,8年开发架构经验,精通java,擅长分布式高并发架构,自动化压力测试,微服务容器化k…

拼多多投产比和成交出价哪个好

拼多多推广可以使用3an推客。3an推客(CPS模式)给商家提供的营销工具,由商家自主设置佣金比例,激励推广者去帮助商家推广商品链接,按最终有效交易金额支付佣金,不成交不扣费。是商家破零、积累基础销量的重要…

2024年大学生三下乡社会实践活动投稿注意事项

随着2024年夏季的热浪一同涌来的,是我校一年一度的“大学生三下乡”社会实践活动。作为一名积极参与其中的大学生,我满怀激情地投身于这项旨在促进农村发展的公益行动中。然而,当活动圆满落幕,轮到我承担起向各大媒体投稿、传播实践成果的重任时,却遭遇了一系列意想不到的挑战,…

拼多多投产比怎么计算?

拼多多投产比(ROI)的计算公式为:ROI 成交金额 / 花费 100%。也可以简单理解为:ROI 点击量 * 转化率 * 客单价 / (点击量 * 平均点击花费)。 拼多多推广可以使用3an推客。3an推客(CPS模式)给商家提供的营…

Kubernetes概述及其组件/核心组件

目录 前言: 一、简介 1.Kubernetes 概述 2.为什么要用 K8S? 3.k8s特性 3.1自我修复 3.2弹性伸缩 3.3自动部署和回滚 3.4服务发现和负载均衡 3.5机密和配置管理 3.6存储编排 3.7批量处理 4.Kubernetes 集群架构与组件 4.1核心组件 4.2架构 4.3配置存…

【2024版】最新6款漏洞扫描工具来了!(附下载)看完这一篇就够了

目录 一、Nessus 二、AWVS 三、ZAP 四、w3af 五、北极熊 六、御剑 七、网络安全学习路线 (2024最新整理) 八、学习资料的推荐 1.视频教程 2.SRC技术文档&PDF书籍 3.大厂面试题 特别声明: 渗透测试收集信息完成后&#xf…

Linux-笔记 uboot修改设备树

1. FDT介绍 扁平设备树(Flattened Device Tree,FDT),也叫平坦设备树,是设备树的一种二进制表示形式,提高了在嵌入式系统中的传输和解析效率; 2. 在U-Boot中使用FDT 2.1. 进入U-Boot 开发板上…