当前位置: 首页 > news >正文

第L2周:机器学习|线性回归模型 LinearRegression:2. 多元线性回归模型

  • 本文为365天深度学习训练营 中的学习记录博客
  • 原作者:K同学啊

任务:
●1. 学习本文的多元线形回归模型。
●2. 参考文本预测花瓣宽度的方法,选用其他三个变量来预测花瓣长度。

一、多元线性回归

简单线性回归:影响 Y 的因素唯一,只有一个。
多元线性回归:影响 Y 的因数不唯一,有多个。

与一元线性回归一样,多元线性回归自然是一个回归问题。
在这里插入图片描述

相当于我们高中学的一元一次方程,变成了 n 元一次方程。因为 y 还是那个 y。只是自变量增加了。

二、代码实现

我的环境:
●语言环境:Python3.9
●编译器:Jupyter Lab

第1步:数据预处理

  1. 导入数据集
import pandas as pd
import numpy as npurl = "https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"  
names = ['花萼-length', '花萼-width', '花瓣-length', '花瓣-width', 'class'] dataset = pd.read_csv(url, names=names)
dataset

代码输出:

花萼-length花萼-width花瓣-length花瓣-widthclass
05.13.51.40.2Iris-setosa
14.93.01.40.2Iris-setosa
24.73.21.30.2Iris-setosa
34.63.11.50.2Iris-setosa
45.03.61.40.2Iris-setosa
..................
1456.73.05.22.3Iris-virginica
1466.32.55.01.9Iris-virginica
1476.53.05.22.0Iris-virginica
1486.23.45.42.3Iris-virginica
1495.93.05.11.8Iris-virginica

150 rows × 5 columns

备注:
如果报下面错误:URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1129)>
在代码开头加上如下代码即可:
import ssl
ssl._create_default_https_context = ssl._create_unverified_context

  1. 数据分析
import matplotlib.pyplot as pltplt.plot(dataset['花萼-length'], dataset['花瓣-width'], 'x', label="marker='x'")
plt.plot(dataset['花萼-width'],  dataset['花瓣-width'], 'o', label="marker='o'")
plt.plot(dataset['花瓣-length'], dataset['花瓣-width'], 'v', label="marker='v'")plt.legend(numpoints=1)
plt.show()

代码输出:

在这里插入图片描述

X = dataset.iloc[ : ,[1,2]].values
Y = dataset.iloc[ : ,  3 ].values
  1. 构建训练集、测试集
from sklearn.model_selection import train_test_split
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, random_state=0)

第2步:训练多元线性回归模型

from sklearn.linear_model import LinearRegressionregressor = LinearRegression()
regressor.fit(X_train, Y_train)

第3步:在测试集上预测结果

y_pred = regressor.predict(X_test)
y_pred

代码输出:

array([1.76025586, 1.23794101, 0.29130263, 2.28334281, 0.2668048 ,2.18837013, 0.18945083, 1.61397124, 1.63158995, 1.28848086,1.95785242, 1.53661727, 1.58870131, 1.54581268, 1.59712462,0.24153487, 1.51134735, 1.44318879, 0.19022292, 0.22314407,1.67447859, 1.51977066, 0.43835934, 0.18179962, 1.63158995,0.06920823, 0.47205258, 1.42557008, 0.94614386, 0.30969343])

第4步:测试集预测结果可视化

plt.scatter(Y_test,y_pred, color='red')plt.xlabel("True")
plt.ylabel("Prediction")plt.show()

代码输出:

在这里插入图片描述

http://www.lryc.cn/news/447522.html

相关文章:

  • JavaScript的条件语句
  • vue3 vite模式配置测试,开发、生产环境以及代理配置
  • 【rabbitmq-server】安装使用介绍
  • Kafka系列之:安装部署CMAK,CMAK管理大型Kafka集群参数调优
  • c语言200例 64
  • [leetcode]216_组合总和III_给定数字范围且输出无重复
  • Doris 2.x 安装及使用
  • MySQL字符集设置
  • 深度学习模型量化
  • 红黑树和B+树
  • debian 12配置固定ip
  • OceanBase技术解析: 执行器中的自适应技术
  • Spring Cloud Gateway接入WebSocket:实现实时通信
  • linux信号| 学习信号三步走 | 学习信号需要打通哪些知识脉络?
  • Java调用第三方接口、http请求详解,一文学会
  • windows10使用bat脚本安装前后端环境之redis注册服务
  • fastapp-微信开发GPT项目第一课
  • 在双十一必买的好物有哪些?2024年双十一好物清单分享
  • 避免glibc版本而报错,CentOS等Linux安装node.js完美方法
  • elasticsearch实战应用
  • STM32精确控制步进电机
  • Qemu开发ARM篇-5、buildroot制作根文件系统并挂载启动
  • 光控资本:10转10送10股有多少股?转股与送股又什么区别?
  • 【音乐格式转换攻略】6个好用的音乐转换成mp3格式技巧!
  • 蓝桥杯15届C/C++B组省赛题目
  • 感悟:糟糠之妻不下堂和现在女性觉醒的关系
  • Linux网络之UDP与TCP协议详解
  • K8S:开源容器编排平台,助力高效稳定的容器化应用管理
  • STM32嵌入式编程学习到提高:【4】UART串口打印
  • C 标准库 - <ctype.h>