[github-100天机器学习]day2 simple linear regression

news2024/11/23 15:17:52

https://github.com/LiuChuang0059/100days-ML-code/blob/master/Day2_SImple_Linear_regression/README.md

简单线性回归

使用单一特征预测响应值。基于自变量X来预测因变量Y的方法,假设两者线性相关,寻找一种根据特征或自变量X的线性函数来预测Y。

目标

  • 找最佳拟合线,最小化预测误差(最小化观测值 Y i Y_i Yi和模型预测值 Y p Y_p Yp之间的长度)
  • m i n { s u m ( y i − y p ) 2 } min \{ sum(y_i - y_p)^2\} min{sum(yiyp)2}
  • y = b 0 + b 1 x 1 y = b_0+b_1x_1 y=b0+b1x1( b 0 b_0 b0截距, b 1 b_1 b1斜率)

步骤

  1. 数据预处理:同day1 六步骤(导入库–导入数据集–检查缺失数据–解析分类数据–拆分数据集–特征缩放)
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt     


dataset = pd.read_csv('studentscores.csv')
X = dataset.iloc[ : ,   : 1 ].values
Y = dataset.iloc[ : , 1 ].values

from sklearn.model_selection import train_test_split    #new
# sklearn.cross_validation 模块已经在最新版本的 Scikit-learn 中被移除了。
#from sklearn.cross_validation import train_test_split   #old
X_train, X_test, Y_train, Y_test = train_test_split( X, Y, test_size = 1/4, random_state = 0) 
  1. 通过训练集训练简单线性回归模型:使用sklearn.linear_model库的LinearRegression类,得到模型regressor
### Step 2: Fitting Simple Linear Regression Model to the training set
# 把数据集拟合到简单线性回归模型,使用fit函数

from sklearn.linear_model import LinearRegression
regressor = LinearRegression() ## 创建一个regressor 对象
regressor = regressor.fit(X_train, Y_train) ### 对象拟合到数据集里面
# 使用fit()方法将 regressor 对象拟合到训练集的特征矩阵 X_train 和目标变量 Y_train
# 拟合过程根据线性回归计算b0和b1
  1. 预测结果:预测测试集,结果存到Y_pred,用2中训练的回归模型regressor的LinearRegression类的预测方法对结果进行预测。
### Step 3: Predecting the Result
#在训练好的regressor使用预测模型
#结果输出到向量Y_pred

Y_pred = regressor.predict(X_test)
  1. 可视化:用matplotlib.pyplot对训练集和测试集的结果做散点图,查看预测结果。

### Step 4: Visualization
plt.scatter(X_train , Y_train, color = 'red')
# 训练集散点图,红色,横轴X_train,纵轴Y_train
plt.plot(X_train , regressor.predict(X_train), color ='blue')   ## 训练结果
# 回归线,横轴X_train,纵轴regressor.predict(X_train)--训练集预测结果
plt.scatter(X_test , Y_test, color = 'green')
# 测试集散点图,蓝色,横轴X_test,纵轴Y_test
plt.plot(X_test , regressor.predict(X_test), color ='blue')   ## 测试结果
# 回归线,测试集合预测结果

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

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

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

相关文章

工资难以突破升职加薪必看,资深测试经理教你怎么做好“管理岗”!

要了解测试管理岗位需要具备的素质,我们先来看下测试管理岗位的职责。以下是 Boss 直聘上某几家的公司的测试经理的岗位要求: 如果你想学习接口自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的接口自动化测…

从零开始搭建STM32CubeMX开发环境

本文记录一下如何从零开始使用STM32CubeMX,包括软件的安装,环境的搭建,配置代码的生成等; 本文以STM32G030C8T6为例,如果你的单片机不是以STM32G030C8T6为例,换成你的单片机类型即可,过程都是通…

03_单一职责模式

单一职责 在软件组件的设计中,如果责任划分的不清晰,使用继承得到的结果往往是随着需求的变化,子类急剧膨胀,同时充斥着重复代码,这时候的关键是划清责任。 装饰模式 动态(组合)地给一个对象增…

系统没有“internet信息服务(IIS)管理器”

系统没有“internet信息服务(IIS)管理器” 解决方案1.打开控制面板,找到并打开程序。2.找到并打开程序里的启用或关闭windows功能。3.在‘Internet Information Services’下的‘web管理工具’中找到IIS相关功能,在前面的复选框中…

探索数字孪生世界:市场上五款炙手可热的数字孪生产品介绍

山海鲸可视化:山海鲸可视化是一款国内领先的数字孪生软件,具有强大的GIS功能和可视化效果,广泛应用于城市规划、建筑设计和智慧城市等领域。 华为云数字孪生:华为云数字孪生平台提供了全面的数字化解决方案,包括智慧城…

链表中倒数第k个结点(快慢指针问题)

⭐️ 往期相关文章 💫链接1:leetcode 876.链表的中间结点(快慢指针问题) 💫链接2:leetcode 206.反转链表 💫链接3:leetcode 203.移除链表元素 💫链接4:数据结构-手撕单链表代码详解…

实训笔记7.4

实训笔记7.4 7.4一、座右铭二、IDEA集成开发环境的安装和使用三、DEBUG断点调试四、Java设计模式4.1 适配器模式4.2 动态代理模式4.3 单例设计模式 五、Java中网络编程5.1 网络编程三个核心要素5.2 TCP网络编程 六、基于网络编程的聊天系统6.1 需求分析6.2 系统设计6.2.1 概要设…

解放运营人员:钡铼技术S475物联网网关实现养殖环境的远程监控与告警

在养殖行业中,对环境参数的精确监测与控制至关重要。然而,传统的监测方法往往存在诸多痛点,如数据采集不准确、传输速度慢、可视化效果差等。为了解决这些问题,钡铼技术公司推出了其旗舰产品——S475多功能RTU,该产品在…

如何利用思维导图提高项目管理效率

思维导图 是一种强大的工具,可以帮助我们更好地组织和管理项目。它是一种以图形方式展现思维和概念之间关系的方法,通过将主题、子主题和分支串联起来,帮助我们清晰地了解任务的层次结构和相互关系。在项目管理中,思维导图可以帮助…

数据生成实体类解决方案

文章目录 数据生成实体类解决方案 简介工作原理解析JSON生成实体类示例JSON消息解析JSON核心方法:调用示例:将数据保存到实体类中。将实体类转为输出为JSON。 思考 数据生成实体类解决方案 直接将xml导入到Studio里即可。下载文件连接: CSDN…

GPIO点灯

简述:本人使用教材为《嵌入式系统原理与应用》,GPIOCON控制输出,GPIODAT控制高电平和低电平,高电平点亮,低电平熄灭。

【若依】框架搭建,前端向后端如何发送请求,验证码的实现

若依框架 若依框架(Ruoyi)是一款基于Spring Boot和Spring Cloud的开源快速开发平台。它提供了一系列的基础功能和通用组件,能够帮助开发者快速构建企业级应用。若依框架采用了模块化的设计理念,用户可以选择需要的功能模块进行集…

全网最全,华为可信专业级认证介绍

1:华为可信专业级认证是什么? 华为在推动技术人员的可信认证,算是一项安全合规的工作。专业级有哪些考试呢?共有四门: 科目一:上级编程,对比力扣2道中等、1道困难; 科目二&#xff…

C++ STL --哈希表

目录 1. unordered系列关联式容器 1.1 unordered_map 1.1.1 unordered_map的文档介绍 1.1.2 unordered_map的接口说明 1.2 unordered_set 1.3 在线OJ 2. 底层结构 2.1 哈希概念 2.2 哈希冲突 2.3 哈希函数 2.4 哈希冲突解决 2.4.1 闭散列 2.4.2 开散列 3. 模拟实现…

中学生用什么样护眼台灯好?适合暑假学习的护眼台灯推荐

终于到了暑假,本来是有大把的“娱乐”时间,可现在看来此“娱乐”和正常出门玩耍的娱乐不太一样。不管是大学生还是中小学生,不少孩子不再出门玩耍,而是宅在家空调WiFi西瓜,抱着手机往那一趴。加上平时还需要抽出时间完…

DatenLord前沿技术分享 No.29

达坦科技专注于打造新一代开源跨云存储平台DatenLord,通过软硬件深度融合的方式打通云云壁垒,致力于解决多云架构、多数据中心场景下异构存储、数据统一管理需求等问题,以满足不同行业客户对海量数据跨云、跨数据中心高性能访问的需求。BSV的…

自动化测试selenium篇(二)

需要掌握selenium 常用API的使用 一、元素定位 1.1css选择器语法 1.1.1 类选择器(class选择器) 语法 : .class属性值{} 作用 : 选中对应class属性值的元素 1.1.2 id选择器 语法 : #id属性值{} 作用 : 选中对应id属性值的元素 1.1.3 标签选择器 标签选择器会选择页面上…

https技术鉴赏

视频网址:https://www.bilibili.com/video/BV1uY4y1D7Ng 总结起来:先使用非对称加密,再使用对称加密,这样就避免了明文传输。 非对称加密的作用是协商对称加密的公钥 SSL流程图大概如下: 这只是一个最简单的SSL版本,…

Small Outline Package(小外形封装)和Quad Flat Package(四边引线扁平封装)

1.Small Outline Package(小外形封装) SOP封装图片 SOP技术是飞利浦公司开发成功,以后逐渐派生出SOJ、TSOP、VSOP、SSOP、TSSOP、SOT、SOIC等封装形式。SOP是表面贴装型封装的一种,引脚从封装两侧引出,呈海鸥状形。其…

JS知识点汇总(十一)--事件模型

1. JavaScript中的事件模型有哪些 1、事件与事件流 javascript中的事件,可以理解就是在HTML文档或者浏览器中发生的一种交互操作,使得网页具备互动性, 常见的有加载事件、鼠标事件、自定义事件等 由于DOM是一个树结构,如果在父…