第L2周:机器学习-线性回归

news2024/9/21 2:42:34
  • 🍨 本文为🔗365天深度学习训练营 中的学习记录博客
  • 🍖 原作者:K同学啊

目标

  1. 学习简单线性回归模型和多元线性回归模型
  2. 通过代码实现:通过鸢尾花花瓣长度预测花瓣宽度
    具体实现
    (一)环境
    语言环境:Python 3.10
    编 译 器: PyCharm
    框 架:scikit-learn
    (二)具体步骤:
    造个数据集,内容格式如下:
    image.png
    导入库
import pandas as pd  
import numpy as np  
import matplotlib.pyplot as plt

简单线性回归

# 加载数据
dataset = pd.read_csv('./studentscores.csv')  
print(dataset)

image.png

# 取第一列Hours的值
X = dataset.iloc[:, :1].values  
print(X)

image.png

# 取第二列Scores的值
Y = dataset.iloc[:, 1].values  
print(Y)

image.png
很好奇,看看X,Y的形状:

print(X.shape)
print(Y.shape)

image.png
看来两者是一样的形状和大小 。继续:

# 切分一下数据集,75%用来训练,25%用来测试
from sklearn.model_selection import  train_test_split  
X_train, X_test, Y_train, Y_test = train_test_split(X, Y,  
                                                    test_size=1/4,  
                                                    random_state=0)

检验一下切分的成果:

print(X_train, X_train.shape)

image.png

print(Y_train, Y_train.shape)

image.png

print(X_test, X_test.shape)
print(Y_test, Y_test.shape)

image.png
做简单线性回归

# 简单线性回归  
from sklearn.linear_model import LinearRegression  
  
regressor = LinearRegression()  
regressor = regressor.fit(X_train, Y_train)

# 预测一下结果  
Y_pred = regressor.predict(X_test)  
  
print(Y_pred, Y_pred.shape)

image.png
这个预测结果和上面的Y_test比较一下,可以看到两者之间的差距以及相似性。我们进行可视化直观看看:

# 训练集可视化  
plt.scatter(X_train, Y_train, color='red')  
plt.plot(X_train, regressor.predict(X_train), color='blue')  
plt.show()

**image.png

# 测试集预测结果可视化  
plt.scatter(X_test, Y_test, color='red')  
plt.plot(X_test, regressor.predict(X_test), color='blue')  
plt.show()

image.png
红点是实际分布,蓝色线是预测趋势线。两者是趋于一致的,预测的偏离并不大。
注:plt.scatter()绘制散点四等小站,plt.plot()绘制折线图。

下面看看多元线性回归,通过鸢尾花花瓣长度预测花瓣宽度

  1. 导入数据集
url = '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)  
print(dataset)

image.png
2. 分析一下数据

plt.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()

image.png
3. 取数据

# 取[花萼-width : 花瓣-length]
X = dataset.iloc[:, [1, 2]].values  
print(X, X.shape)

image.png
image.png

Y = dataset.iloc[:, 3].values  # 取花瓣-width值  
print(Y, Y.shape)

image.png
3. 将dataset切分成训练数据集和测试数据集

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)
  1. 训练多元线性回归模型
from sklearn.linear_model import LinearRegression  
regressor = LinearRegression()  
regressor.fit(X_train, Y_train)
  1. 在测试集上预测结果
y_pred = regressor.predict(X_test)  
print(y_pred)

image.png
6. 把测试集预测结果可视化

plt.scatter(Y_test, y_pred, color='red')  
plt.plot(Y_test, Y_test, color='blue') # 假设预测100%正确,那么走势是蓝线
plt.plot(Y_test)
plt.xlabel("True")  
plt.ylabel("Prediction")  
plt.show()

image.png

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

走进酿酒车间:探寻白酒酿造的每一步

在古老的华夏大地上,有一种传统而不同的技艺——白酒酿造。它不仅承载了中华民族千年的文化积淀,更蕴含了无数酿酒师的匠心与智慧。今天,让我们一同走进豪迈白酒(HOMANLISM)的酿酒车间,探寻那神秘而又精彩的…

20240903 每日AI必读资讯

Claude 3.5 Sonnet对免费用户关闭? - 免费用户无法使用Claude 3.5 Sonnet模型,只能使用功能简单的Claude 3 Haiku模型。 - Claude 3.5 Sonnet在性能、理解能力、运行速度和视觉处理方面都有显著提升,成为行业新标杆。 - 关闭可能影响用户使…

解决jupyter notebook启动需要密码的问题

解决方法 在运行界面输入 jupyter notebook list 之后运行界面会输出token值,将对应地址后的token复制到密码栏中即可

Java题集(由入门到精通)01

此系列文章收录大量Java经典代码题(也可以算是leetcode刷题指南),希望可以与大家一起努力学好Java。3、2、1,请看! 目录 1.根据输入的运算符(、-、*、/)进行计算 2.随机生成一个整数&#xf…

AJAX基础与进阶

一、express基本使用 1. 在最外层启动终端,添加文件 2. 创建 express 框架 // 1. 引入express const express require(express);// 2. 创建应用对象 const app express();// 3. 创建路由规则 //request 是对请求报文的封装 //response 是对响应报文的封装 app.g…

021集—— 数据的大小端序转换——C#学习笔记

整形数据的大小端序转换: 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace ConsoleApp1 {class a {public static int EndianReverse(int oldvalue) {//in…

微电网光储充用什么电能表?

背景 在可再生能源的需求不断增加,以及能源转型的推进,储能技术的重要性日益凸显。储能计量表作为储能系统的关键组成部分,对于监测、评估和管理储能系统性能具有重要作用。 在新能源发电领域,如分布式光伏、风电等,…

PMP–冲刺–十大领域易考点三大项目流程敏捷中的角色职责与3个工件高频考点考试技巧

文章目录 十大知识领域易考点--题干关键词一、整合管理二、范围管理三、进度管理四、成本管理五、质量管理六、资源管理七、沟通管理八、风险管理九、采购管理十、干系人管理 考试中的三大项目流程一 、变更流程二 、风险流程三 、收尾流程 敏捷中的角色职责与3个工件--题干关键…

汽车功能安全--TC3xx SMU之看门狗alarm处理

目录 1. TC3xx WDT速览 2. TC3xx SMU Watchdog Alarm 2.1 Watchdog Alarm处理流程 2.2 Recovery Timer详解 2.3 NMI里可以做什么? 3.小结 1. TC3xx WDT速览 根据相关文档描述,TC3xx看门狗总体架构如下: 它内部总共实现了两类Watchdog&…

EasyUI textbox 修改字体样式

EasyUI textbox 修改字体样式 现象 后端代码如下 <input id"statusName" name"statusName" disabled"disabled" class"easyui-textbox" style"width: 80%;color: red;"/>发现直接在style中写css不起作用 问题原因 …

随即近似与随机梯度下降

一、均值计算 方法1&#xff1a;是直接将采样数据相加再除以个数&#xff0c;但这样的方法运行效率较低&#xff0c;要将所有数据收集到一起后再求平均。 方法2&#xff1a;迭代法 二、随机近似法: Robbins-Monro算法&#xff08;RM算法&#xff09; g(w)是有界且递增的 …

PDF转换器,真心推荐这几款

PDF转换器&#xff0c;在现代办公环境中&#xff0c;PDF文件格式因其高保真性和跨平台兼容性而广受欢迎。但在实际工作中&#xff0c;我们常常需要将PDF文件转换为其他格式&#xff0c;这就需要用到PDF转换器。市场上的PDF转换器种类繁多&#xff0c;功能各异&#xff0c;如何选…

SpringCloud中什么是服务雪崩,常见的解决方案有哪些?(面试版)

雪崩&#xff1a;微服务调用链路中某个服务的故障&#xff0c;导致整个链路中的所有微服务都不可用。&#xff08;其实就是一个服务的问题 导致 另一个访问它的服务出问题&#xff09; 常见的解决方案&#xff1a; 1. 请求限流&#xff1a;限制访问 微服务请求(接口) 的并发…

OBCE实验指导手册V3 (4012问题分析手动实践)

实验环境 oceanbase 企业版V3 1-1-1 实验步骤 步骤1 创建MySQL 租户 ob_mysql&#xff0c;租户资源规格大小为 1C2G CREATE RESOURCE UNIT memory_test MAX_CPU 1, MAX_MEMORY 2G, MAX_IOPS 128,MAX_DISK_SIZE 10G, MAX_SESSION_NUM 64, MIN_CPU1, MIN_MEMORY2G, MIN_IOPS128;…

C++基础【字符串】(Ac-Wing)

字符串加空格 #include <iostream> #include <cstring> #include <algorithm>using namespace std;int main() {string s;getline (cin, s);for (int i 0; i < s.size(); i )cout << s[i] << " "; }字符串插入 #include<bits/…

通过旋转、平移求取矩形顶点坐标

前言 旋转和平移是几何变换中两个基本的操作&#xff0c;它们可以用来改变图形的位置和方向 一、旋转 旋转是指将图形绕某一点&#xff08;通常是原点或中心点&#xff09;旋转一定的角度。旋转会改变图形的方向&#xff0c;但不会改变其形状或大小。 在二维空间中&#xf…

材料力学:5.2 纯弯曲时的正应力

(1)曲率与弯矩之间的关系 图5.2.10静力关系 建立如图5.2.10&#xff08;c&#xff09;所示的xyz坐标&#xff0c;设工件截面的弯矩为 M M M &#xff0c;其与外力偶矩 M e M_e Me​ 等值反向。设截面处工件的曲率半径为 ρ \rho ρ &#xff0c;该工件的弹性模量为 E E …

springsecurity快速入门

Spring Security 是一个功能强大且高度可定制的安全框架&#xff0c;主要用于保护基于 Spring 的应用程序。它提供了一整套用于身份验证、授权、加密、会话管理等功能的工具和 API&#xff0c;从而帮助开发者快速、有效地保护应用程序。 Configuration EnableWebSecurity pu…

YOLO系列和RT-DETR转onnx和tensorrt,测FPS

RT-DETR(RT-DETR: DETRs Beat YOLOs on Real-time Object Detection) 和YOLOv8等在最后加nms RT-DETR转onnx和tensorrt和 RT-DETR转onnx和tensorrt 步骤流程&#xff1a; 1. nvidia驱动&#xff0c;cuda&#xff0c;cudnn三者的版本是相互对应的&#xff0c;必须要确保版本匹…

有什么简单方便的cad编辑器?2024快速进行cad编辑的软件合集

有什么简单方便的cad编辑器&#xff1f;2024快速进行cad编辑的软件合集 在建筑、工程、设计等领域&#xff0c;CAD&#xff08;计算机辅助设计&#xff09;软件是必不可少的工具。然而&#xff0c;面对复杂的CAD文件&#xff0c;有时我们只需要简单的编辑功能&#xff0c;而不…