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

机器学习之线性回归

一、线性回归定义

        定义:一种通过建立自变量(特征)与因变量(目标值)之间的线性关系(如\(y = w1x1 +w2x2+...+wnxn+b)来预测连续型输出的监督学习方法。

        核心目标:找到最优参数W(权重)和b(偏置值),使模型预测值与真实值的误差最小。

二、线性回归分类

        1.单变量线性回归(Simple Linear Regression)

                只有一个自变量,模型形式:y = wx+b。

                示例:用房屋面积来预测房价

        2.多变量线性回归(Multiple Linear Regression)

                含多个自变量,模型形式:y = w1x1+w2x2+...+wnxn+b(可简写为:y = W**T X+b,其中W为参数向量,X为特征向量)。

                示例:用面积、楼层、房龄等预测房价。

三、应用场景

        1.预测连续值:如房价、销售额、温度、股票价格等。

        2.变量关系分析:判断自变量对因变量的影响程度(如广告投入对销量的影响)。

        3.示例:电商平台用用户浏览时长、历史购买次数预测未来消费金额。

四、线性回归问题的求解

1.损失函数(衡量误差的指标)

        均方误差(MSE):最常用损失函数,定义为预测值与真实值差值平方的平均值。
公式:L(W,b) = 1/m Σm.i=1 (yi - (X^TX Xi + b))**2(m为样本数)

        注释:MSE是凸函数,便于用梯度下降等方法求最小值,且对异常值敏感(平方放大误差)。

2.求解方法

(1)正规方程法(Normal Equation)

        原理:直接通过数学推导求解损失函数最小化时的参数 W,无需迭代。

        公式:当模型含偏置 b 时(可将 b 视为 w0x0),其中 x0=1)),参数向量 W 满足W = (X^TX X)**-1 X^TX y(X 为含偏置项的特征矩阵,y 为真实值向量)。

        适用场景:样本量较小(m<10000),特征数不多时;无需调参,一步到位。

        局限:当 X^TX 不可逆(如特征线性相关)时无法使用;样本量大时计算 ((X^TX)^-1) 效率低。

(2)梯度下降算法(Gradient Descent)

        原理:通过迭代优化参数,沿损失函数梯度负方向更新参数,逐步逼近最小值。

        步骤:        

                1.初始化参数 W 和 b(如全为 0)

                2.计算损失函数对 W 和 b 的偏导数(梯度)

                3.按学习率更新参数

                4.重复步骤2-3,直接满足条件(可以直接梯度次数或者目标范围)

        注释:

                学习率需要调优:过大会梯度震荡,过小会效率缓慢。

                适用场景:样本量大、特征数多,计算效率优于正规方程

五、线性回归API

        python-scikit-learn

from sklearn.linear_model import LinearRegression
model = LinearRegression()  # 初始化模型(默认用正规方程)
model.fit(X_train, y_train)  # 训练模型
y_pred = model.predict(X_test)  # 预测

特定:自动处理多变量,默认包含偏置项,支持标准化输入(需配合StandardScaler)。

六、小结

        线性回归是最简单的回归模型,核心是拟合线性关系,通过最小化 MSE 求解参数,可选择正规方程(小数据)或梯度下降(大数据)实现。适用于连续值预测和变量关系分析,但无法拟合非线性数据(需结合多项式特征等扩展)。

http://www.xdnf.cn/news/1407421.html

相关文章:

  • 数据结构02:排序算法
  • PyQt5 进度条详细示例与性能优化
  • 电商系统的分布式事务调优
  • Knit-易用的prompt管理和调试工具
  • 第六章:透明度-Transparency《Unity Shaders and Effets Cookbook》
  • io进程线程;标准IO;0831
  • 【嵌入式】【调用函数图】手动绘制函数调用状态机
  • 【优先算法--前缀和】
  • 3DES加解密的算法Java Python Golang
  • CVPR上的多模态检索+视频理解,LLM助力提效翻倍
  • 8.1【Q】VMware相关
  • 吴恩达机器学习作业十一:异常检测
  • 大模型——利用RAG构建智能问答平台实战
  • 在Ubuntu服务器上安装KingbaseES V009R002C012(Orable兼容版)数据库过程详细记录
  • Qwen3_moe模型代码解析
  • FreeRTOS实战:任务创建与调度详解
  • 【MySQL自学】SQL语法全解(上篇)
  • 【PS实战】逐步打造静物的艺术色调(大学作业)
  • 从零开始搭建使用 TDengine:新用户快速上手指南
  • windows docker 中的mysql 无法被外部浏览器访问如何解决
  • 自动驾驶中的传感器技术37——Lidar(12)
  • Ansible 临时命令与常用模块实操指南
  • 【人工智能99问】LLaMA中的RoPE是什么?(35/99)
  • Paimon——官网阅读:Spark 引擎
  • Spark内存管理
  • Nginx 502 Bad Gateway:从 upstream 日志到 FastCGI 超时复盘
  • 腾讯浑元最新技术:具有表征对齐的多模态扩散,用于高保真拟音音频生成
  • 【嵌入式DIY实例】-空中鼠标
  • LeetCode算法日记 - Day 27: 计算右侧小于当前元素的个数、翻转对
  • 高校心理教育辅导系统的设计与实现|基于SpringBoot高校心理教育辅导系统的设计与实现