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

线性回归

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通过与chatGPT交流实现零样本事件抽取

1、写作动机: 近来的大规模语言模型(例如Chat GPT)在零样本设置下取得了很好的表现,这启发作者探索基于提示的方法来解决零样本IE任务。 2、主要贡献: 提出了基于chatgpt的多阶段的信息抽取方法:在第一阶…

吉大计网笔记

Osi七层模型 物理层:比特流的透明传输 数据链路层:ip数据包装成帧并传输,处理相邻节点的数据传输。 网络层:选择路由和交换节点,处理任意节点的数据传输。 运输层:主机进程的数据传输服务,端到端…

6个在线网页原型工具的推荐选择

即时设计 即时设计可以说为中国设计师提供了很大的帮助。作为最受欢迎的在线网页原型图设计协作工具之一,在线协作是其核心特征。在线协作工作允许整个团队同时编辑文件,并可以随时随地访问。 团队共享组件库,使成员可以自由上传、下载和使用…

Flink 读取 Kafka 消息写入 Hudi 表无报错但没有写入任何记录的解决方法

博主历时三年精心创作的《大数据平台架构与原型实现:数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行,点击《重磅推荐:建大数据平台太难了!给我发个工程原型吧!》了解图书详情,京东购书链接:https://item.jd.com/12677623.html,扫描左侧二维…

字节:从尾部K个节点反转链表

题目 一个链表0,1,2,3,4,5,6,7,从链表尾部 K个节点翻转,求翻转后的链表。 比如:[0,1,2,3,4,5,6,7] k3 翻转后 [0,1,4,3,2,7,6,5]。 空间复杂度O(1)。 解法 /*** 链表 14,13,12,11,10,9,8,7,6,5,4,3,2,1* 从尾部节点1开始倒着K个一组翻转* …

Kotlin 协程:深入理解 ‘async { }‘

Kotlin 协程:深入理解 ‘async { }’ Kotlin 协程是一种强大的异步编程工具,它提供了一种简洁、易读的方式来处理并发和异步操作。在 Kotlin 协程库中,async {} 是一个关键的函数,它允许我们启动一个新的协程,并返回一…

python爬虫概念及介绍

1. 什么是互联网爬虫? 解释 1 :通过一个程序,根据 Url ( http : // www . taobao . com ) 进行爬取网页,获取有用信息 解释 2:使用程序模拟浏览器,去向服务器发送请求,获取响应信息 2. 爬虫核…

自动驾驶传感器之 摄像头传统视觉技术

1.前言 相 信 很 多 通 过 之 前 摄 像 头 的 基 础 知 识 讲 解 , 已 经 对 车 载 摄 像 头 有 一 定 的 了 解 , 摄 像头 两 大 主 要 功 能 是 定 位 和 感 知 , 我 们 通 过 不 同 的 软 硬 件 来 实 现 前 向 碰 撞 预 警 、 行 人 探 …

制造业实施QMS质量管理系统的作用是什么?

QMS质量管理系统是一个关键的组织管理工具,用于确保产品和服务的质量符合预期标准;通过有效地实施万界星空科技QMS,组织可以确保产品和服务的质量符合预期标准,提升客户满意度,增强市场竞争力。 一、QMS系统的特点&…

大洋钻探系列之七中国大洋钻探船梦想号

中国大洋钻探梦想号2021年11月30日开工建造,2023年12月27日在珠江口海域完成首航,预计2024年正式交付使用,从而实现了2011年中国IODP专家咨询委员会提出的我国大洋钻探发展“三步走”战略的第三步建造中国的大洋钻探船。 恰逢IODP新旧计划交替…

tsmc12:宽金属的spacing 规则(M8.S.3)

更多学习内容请关注「拾陆楼」知识星球 拾陆楼知识星球入口 DRC如下图: 意思是说,当M8宽度大于4.05且平行长度大于4.05的时候间距要求 大于等于1.35,这里可以把一根宽金属拆成两根宽度是4的窄金属。,效果如下图:

循环——枚举算法2(c++)

目录 找和为K的两个元素 描述 在一个长度为n(n < 1000)的整数序列中&#xff0c;判断是否存在某两个元素之和为k。 输入 第一行输入序列的长度n和k&#xff0c;用空格分开。 第二行输入序列中的n个整数&#xff0c;用空格分开。 输出 如果存在某两个元素的和为k&…