当前位置: 首页 > article >正文

机器学习 - 线性回归

线性回归模型的定义

线性回归(Linear Regression)的目标旨在找到可以描述目标值(输出变量)与一个或多个特征(输入变量)之间关系的一个线性方程或函数。 线性回归模型的表达式为

                                                      

线性回归模型表达式的“齐次”形式为:

线性回归是通过拟合自变量与因变量之间最佳线性关系,来预测目标变量的方法。

回归过程是给出一个样本集, 用函数拟合这个样本集,使样本集与拟合函数间的误差最小。

线性回归模型的学习准则(策略)

模型的训练即寻找最佳参数向量 ,以使模型能够尽可能好地拟合所有的样本数据

定义代价函数为:

                                       

最小二乘法和正规方程

最小二乘法(Least Square Method,LSM)又称最小平方法,是解决回归拟合问题最常用的一种优化方法。它通过最小化每个观测数据与预测值之间误差的平方和来寻找数据的最佳函数拟合。

正规方程(Normal Equation),它是最小二乘法的矩阵形式。

                                                               

最小二乘估计

                                                           

梯度下降法的基本思想是一直朝着函数梯度向量相反方向不断地迭代更新模型参数,可以使函数值得到最快的下降,从而能够尽可能快速地逼近函数极小值点直至收敛,得到最小化的代价函数和最优的模型参数值。

                                

梯度下降法

批量梯度下降(Batch Gradient Descent,BGD)

在每次迭代更新参数时,都需要用到全部的训练样本数据来计算目标函数的梯度。

随机梯度下降(Stochastic Gradient Descent,SGD)

在每次迭代更新参数时,从训练样本集中随机选取一个训练样本来计算目标函数的梯度。

小批量梯度下降 (Mini-Batch Gradient Descent,MBGD)

在每次迭代更新参数时,选取训练样本集中给定数量(一般取值为 2~100)的训练样本来计算目标函数的梯度。

线性回归(Linear Regression):

利用数理统计中回归分析,确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。

回归模型:实值预测        

如:房价预测:

实值预测常用的两种方法:

一元线性回归VS多元线性回归

线性回归: 一元线性回归

目标:找到一条最能拟合数据分布的直线,即模型输出值 y ̂ 与实际值 y 尽可能接近,即偏差尽可能小。

                                 

求解:如何确定a 和b 的值?

                                                 

一元线性回归模型求解:确定b 的值

一元线性回归模型求解:确定 a 的值

一元线性回归模型求解:确定曲线

多元线性回归

实例二:多元线性回归预测电影票房收入

总结

一元线性回归算法实现

from sklearn import datasets
from sklearn.linear_model import LinearRegression
data = datasets.load_boston()   #导入波士顿房价数据
linear_model = LinearRegression()    #构建模型
linear_model.fit(X_train,y_train) #训练模型
lr_y_predict=linear_model(X_test) #模型预测


http://www.kler.cn/a/467342.html

相关文章:

  • 后台运行 Python
  • 【网络协议】开放式最短路径优先协议OSPF详解(一)
  • node.js内置模块之---fs 模块
  • Nginx——静态资源部署(二/五)
  • 使用 OpenAI 进行结构化标签提取的 Python 实现
  • 【openwrt】OpenWrt 路由器的 802.1X 动态 VLAN
  • Http基础认证摘要认证
  • uniapp实现后端数据i18n国际化
  • [CTF/网络安全] 攻防世界 get_post 解题详析
  • 基于Java+Netty搞了个类似teamviewer、向日葵、ToDesk的远程桌面工具
  • 【顶刊TPAMI 2025】多头编码(MHE)之极限分类 Part 1:背景动机
  • Ruby 中文编码
  • 【竞技宝】CS2:HLTV 2024 TOP11-w0nderful
  • Tailwind CSS 使用简介
  • 基于SpringBoot在线竞拍平台系统功能实现十五
  • 【Linux】定时运行shell脚本
  • DNS分块矩阵的理解
  • 遇到复杂的 递归查询sql 需要oracle 转pgsql 可以把数据表结构给ai
  • 挑战春招找到java后端实习第三天(1.4)
  • C++语言编程————C++的输入与输出
  • --- UDP和TCP传输协议 ---
  • 5G NTN(七) 高层(1)
  • git submodule的使用:将别人的git仓库作为自己的子仓库
  • uniapp3 手写签名组件(vue3 语法)封装与应用
  • DVWA靶场Insecure CAPTCHA(不安全验证)漏洞所有级别通关教程及源码审计
  • 《Android最全面试题-Offer直通车》目录