当前位置: 首页 > 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()

代码输出:

在这里插入图片描述

相关文章:

  • FileLink跨网文件交换|解决网络隔离导致的文件共享难题
  • Unity NetCode 客户端连接不上服务器,局域网模式 Failed to connect to server.
  • 贴片式TF卡(SD NAND)参考设计
  • 采用云端SaaS服务模式的基层云HIS系统,源码开放合作,B/S架构,公立二甲医院应用五年。
  • 828华为云征文 | 华为云Flexus X实例在混合云环境中的应用与实践
  • 04 B-树
  • 使用 npkill 快速清理本地 node_modules 文件
  • Appium跨平台测试实战:从Android到iOS
  • Unreal Engine 5 C++: 插件编写03 | MessageDialog
  • 鸿蒙HarmonyOS开发生态
  • 流水线并行(Pipeline Parallelism)原理详解
  • 软考中级网络规划设计师已过,分享一些备考心得
  • 推荐2个国内优秀的物联网平台
  • 生信初学者教程(十二):数据汇总
  • 认识联合体和枚举
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • 【Linux系统编程】快速查找errno错误码信息
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • Java 最常见的 200+ 面试题:面试必备
  • JavaScript设计模式系列一:工厂模式
  • JavaScript设计模式与开发实践系列之策略模式
  • JavaScript异步流程控制的前世今生
  • Java程序员幽默爆笑锦集
  • Mocha测试初探
  • npx命令介绍
  • 番外篇1:在Windows环境下安装JDK
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • 栈实现走出迷宫(C++)
  • 正则表达式小结
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • #if 1...#endif
  • #面试系列-腾讯后端一面
  • $.each()与$(selector).each()
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (42)STM32——LCD显示屏实验笔记
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (8)STL算法之替换
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (第27天)Oracle 数据泵转换分区表
  • (第61天)多租户架构(CDB/PDB)
  • (四)库存超卖案例实战——优化redis分布式锁
  • (一)Thymeleaf用法——Thymeleaf简介
  • (转载)Linux网络编程入门
  • (转载)PyTorch代码规范最佳实践和样式指南
  • (最新)华为 2024 届秋招-硬件技术工程师-单板硬件开发—机试题—(共12套)(每套四十题)
  • .htaccess配置重写url引擎
  • .net core使用RPC方式进行高效的HTTP服务访问
  • .NET Framework 服务实现监控可观测性最佳实践
  • .net 连接达梦数据库开发环境部署
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)