【机器学习】监督学习算法之:线性回归

线性回归

  • 1、引言
  • 2、线性回归
    • 2.1 定义
    • 2.2 基本原理
    • 2.3 公式
    • 2.4 实现
    • 2.5 代码示例
  • 3、总结

1、引言

小屌丝:鱼哥,最近机器学习的文章写的不少啊。
小鱼:你还挺细心的哦。
小屌丝:那必须的,我要学习,我要成长。
小鱼:别吹了,别给自己脸上贴金了。
小屌丝:我这是正儿八经的哦, 2024的flag,
小鱼:你的2024flag,应该是少充会员。
小屌丝:…
小鱼:难道我说错了嘛。
小屌丝:…
小鱼:还想解释?你可以解释,但是你所说的每一句话都会被我录下来,当做以后的证据。
小屌丝: 我靠… 还能愉快的玩耍的吗?
小鱼:必须的。
小屌丝:那赶紧写完这篇,我们去泡澡。
小鱼:这次去哪里泡澡。
小屌丝:嘿嘿,寻找童年。
小鱼: 嘿嘿… 我懂… 我懂…
在这里插入图片描述

2、线性回归

2.1 定义

线性回归是一种用于建立和分析变量之间线性关系的监督学习算法。它主要用于解决回归问题,即预测一个或多个连续数值型输出(因变量)与一个或多个输入特征(自变量)之间的关系。

2.2 基本原理

线性回归基于一个简单的假设,即因变量(输出)与自变量(输入)之间存在线性关系。这意味着我们假设输出可以通过输入的线性组合来预测,其中每个输入特征都与一个权重相乘,然后将它们相加,再加上一个截距(常数项)。

2.3 公式

线性回归的基本公式可以表示为:

y = wx+b

在这个公式中:

  • y 是预测的因变量(输出)。
  • x 是输入自变量(特征)。
  • w 是自变量x的权重,表示x对y的影响程度。
  • b 是截距(偏置项),表示当x等于0时,y的值。

线性回归的目标是找到最佳的权重 和截距 ,以最好地拟合观测到的数据点。

通常,使用最小二乘法(Least Squares Method)来估计 和 ,这意味着要找到使观测值与预测值之间的残差平方和最小化的权重和截距。

线性回归是一个简单但强大的工具,常用于数据分析、预测和建模任务,但前提是输入特征与输出之间存在线性关系。如果关系更为复杂,可能需要考虑其他类型的回归模型。

2.4 实现

线性回归的实现通常包括以下几个步骤:

  • 特征缩放:在进行线性回归之前,通常需要对输入特征进行缩放,以避免某些特征的尺度对结果产生过大的影响。常用的特征缩放方法有 min-max 缩放和 z-score 缩放等。
  • 模型训练:在特征缩放之后,使用训练数据来训练模型,找到最佳拟合直线。常用的优化算法有梯度下降等。
  • 模型评估:使用测试数据来评估模型的性能,常用的评估指标有均方误差 (MSE) 和均方根误差 (RMSE) 等。
    预测:使用训练好的模型对新的数据点进行预测。

2.5 代码示例


# -*- coding:utf-8 -*-
# @Time   : 2024-01-20
# @Author : Carl_DJ

'''
实现功能:
    1、生成了一些模拟数据,然后将数据分为训练集和测试集。
    2、使用训练数据训练一个线性回归模型,并使用测试数据评估模型的性能。
    3、输出了模型的均方误差

'''
import numpy as np  
from sklearn.linear_model import LinearRegression  
from sklearn.model_selection import train_test_split  
from sklearn.metrics import mean_squared_error  
  
# 生成一些模拟数据  
X = np.random.rand(100, 1)  
y = 3 * X.squeeze() + 2 + np.random.randn(100) * 0.1  
  
# 将数据分为训练集和测试集  
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)  
  
# 创建线性回归模型  
model = LinearRegression()  
  
# 使用训练数据训练模型  
model.fit(X_train, y_train)  
  
# 使用测试数据评估模型  
y_pred = model.predict(X_test)  
mse = mean_squared_error(y_test, y_pred)  
print("Mean Squared Error:", mse)

3、总结

看到这里,关于线性回归算法的知识就讲完了。
下一讲,我们会来聊一聊 逻辑回归

我是小鱼

  • CSDN 博客专家
  • 阿里云 专家博主
  • 51CTO博客专家
  • 51认证讲师等
  • 认证金牌面试官
  • 职场面试培训、职场规划师
  • 多个国内主流技术社区的认证专家博主
  • 多款主流产品(阿里云等)测评一、二等奖获得者

关注小鱼,学习机器学习领域的知识。

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

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

相关文章

【靶场实战】Pikachu靶场XSS跨站脚本关卡详解

Nx01 系统介绍 Pikachu是一个带有漏洞的Web应用系统,在这里包含了常见的web安全漏洞。 如果你是一个Web渗透测试学习人员且正发愁没有合适的靶场进行练习,那么Pikachu可能正合你意。 Nx02 XSS跨站脚本概述 Cross-Site Scripting 简称为“CSS”&#xff…

【大厂AI课学习笔记】1.3 人工智能产业发展(2)

(注:腾讯AI课学习笔记。) 1.3.1 需求侧 转型需求:人口红利转化为创新红利。 场景丰富:超大规模且多样的应用场景。主要是我们的场景大,数据资源丰富。 抗疫加速:疫情常态化,催生新…

微信小程序(二十七)列表渲染改变量名

注释很详细&#xff0c;直接上代码 上一篇 新增内容&#xff1a; 1.改变默认循环单元item变量名 2.改变默认循环下标index变量名 基础模板有问题可以先看上一篇 源码&#xff1a; index.wxml <view class"students"><view class"item"><te…

MFC串行化的应用实例

之前写过一篇MFC串行化的博文;下面看一个具体例子; 新建一个单文档应用程序;在最后一步,把View类的基类改为CFormView; 然后在资源面板编辑自己的字段; 然后到doc类的头文件添加对应变量, public:CString name;int age;CString sex;CString dept;CString zhiwu;CStrin…

Python+Selenium+Unittest 之selenium15--等待时间

在正常的自动化过程中&#xff0c;如果整篇代码中没有加等待时间的话&#xff0c;有时候可能页面跳转或者还没开始点击就执行到下一个流程了&#xff0c;这时候因为页面没有加载完毕&#xff0c;所以有可能会导致找不到对应的元素而报错&#xff0c;因此我们需要在整个代码流程…

C++语法学习

一、字符串 1.字符与整数的联系--ASCII表 0~9 :48~57 A~Z:65~90 a~z:97~122 字符与数字之间转换: 1.1字符转数字&#xff1a; 字符转数字&#xff1a; char c A;cout << c-A << endl; //输出0cout << (int)c << endl; //输出…

go并发编程-runtime、Channel与Goroutine

1. runtime包 1.1.1. runtime.Gosched() 让出CPU时间片&#xff0c;重新等待安排任务(大概意思就是本来计划的好好的周末出去烧烤&#xff0c;但是你妈让你去相亲,两种情况第一就是你相亲速度非常快&#xff0c;见面就黄不耽误你继续烧烤&#xff0c;第二种情况就是你相亲速度…

日志报错:Unexpected EOF read on the socket

记一次关于网关的问题及修复问题。 项目提测后&#xff0c;修改时web端页面出现502&#xff0c;查看后台服务日志发现&#xff1a; org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request; nested exception is java.io.IOExcept…

鸿蒙harmony--TypeScript基础语法

把青春献给身后那座辉煌的都市&#xff0c;为了这个美梦我们付出着代价 目录 一&#xff0c;基础类型 二&#xff0c;数组 三&#xff0c;any 四&#xff0c;变量的类型注释 五&#xff0c;函数 5.1 参数类型注解 5.2 返回类型注解 5.3 匿名函数 六&#xff0c;对象类型 可选属…

整数对最小和 - 华为OD统一考试

OD统一考试&#xff08;C卷&#xff09; 分值&#xff1a; 100分 题解&#xff1a; Java / Python / C 题目描述 给定两个整数数组array1、array2&#xff0c;数组元素按升序排列。 假设从array1、array2中分别取出一个元素可构成一对元素&#xff0c;现在需要取出k对元素&am…

【Java的基本数据类型及其占用内存大小和默认值】

Java的基本数据类型及其占用内存大小和默认值 Java的基本数据类型包括以下几种&#xff1a; byte&#xff08;字节型&#xff09;&#xff1a;占用1个字节&#xff0c;取值范围是-128到127&#xff0c;默认值为0。short&#xff08;短整型&#xff09;&#xff1a;占用2个字节&…

【LeetCode每日一题】1109. 航班预订统计1094. 拼车 (差分数组)

差分数组 差分数组的主要适用场景是频繁对原始数组的某个区间的元素进行增减。 一、基本概念&#xff1a; 差分数组的定义如下&#xff1a; 假设原始数组为arr&#xff0c;差分数组为diff&#xff0c;其中diff[i] arr[i] - arr[i-1]&#xff08;0 < i < n&#xff0…

Ubuntu-22.04上ToDest设置开机不弹出图形界面

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、开始操作1.设置图形端 总结 前言 有时候远程成为开发必不可少的工具&#xff0c;目前国内有很多相关的软件&#xff0c;比较有名的是向日葵、ToDesk、Rust…

美团面试:Sentinel底层滑动时间窗限流算法怎么实现的?

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;最近有小伙伴拿到了一线互联网企业如阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试资格&#xff0c;遇到很多很重要的面试题&#xff1a; 问题1&#xff1a;Sentinel高可用熔断降级&#xff0c;是如何…

2023年06月CCF-GESP编程能力等级认证Python编程四级真题解析

一、单选题(共15题,共30分) 第1题 高级语言编写的程序需要经过以下( )操作,可以生成在计算机上运行的可执行代码。 A:编辑 B:保存 C:调试 D:编译 答案:D 第2题 排序算法是稳定的(Stable Sorting),就是指排序算法可以保证,在待排序数据中有两个相等记录的关…

GPT-5的功能界面曝光。。。

最近网络上流传的照片是否真实尚不可知&#xff0c;我们需要进一步的核实与分析。 GPT-5的预期发布已经引起了业界的极大关注。根据Roemmele的透露&#xff0c;GPT-5将是一个革命性的多模态模型&#xff0c;能够支持语音、图像、编程代码和视频等多种格式&#xff0c;这标志着…

C++关键词auto详解

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂&#xff0c;年薪百万&#xff01; 一、小思考 随着我们对于C的不断学习&#xff0c;遇到的程序越来越复杂&#xff0c;程序中用到的类型也越来越复杂…

《高性能MySQL》

文章目录 一、创建1. 磁盘1.1 页、扇区、寻道、寻址、硬盘性能 2. 行结构row_format2.1 Compact紧凑2.1.1 行溢出2.1.2 作用2.1.3 内容1-额外信息1、变长字段长度2、NULL值列表3、记录头信息 2.1.4 内容2-真实数据4、表中列的值5、transaction_id6、roll_point7、row_id 2.2 dy…

RAG Fusion简明教程

随着 NLP 和生成 AI 领域的最新进展&#xff0c;RAG&#xff08;检索增强生成&#xff09;的引入有望通过结合基于检索的模型和序列到序列的强大功能&#xff0c;对 BERT Chat GPT 等现有技术进行改进。 架构。 RAG 是一个人工智能框架&#xff0c;旨在通过建立外部知识源模型来…

SpringBoot+Redis如何实现用户输入错误密码后限制登录(含源码)

点击下载《SpringBootRedis如何实现用户输入错误密码后限制登录&#xff08;含源码&#xff09;》 1. 引言 在当今的网络环境中&#xff0c;保障用户账户的安全性是非常重要的。为了防止暴力破解和恶意攻击&#xff0c;我们需要在用户尝试登录失败一定次数后限制其登录。这不…