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

机器学习09-正规方程

机器学习笔记:正规方程(Normal Equation)

概述

正规方程是线性回归中求解参数的一种解析方法。它基于最小化损失函数(如最小二乘法)来直接计算出参数的最优值。在机器学习中,这种方法尤其适用于特征数量不多且数据集不是非常大的情况。

预备知识

  • 线性回归:模型形式通常表示为 (y = Xw + b),其中 (y) 是输出,(X) 是输入特征矩阵,(w) 是权重向量,(b) 是偏置项。
  • 损失函数(最小二乘法):(J(w) = \frac{1}{2m} \sum_{i=1}^{m} (h(x^{(i)}) - y{(i)})2),其中 (m) 是样本数量,(h(x^{(i)})) 是模型预测值。

正规方程推导

目标是找到使损失函数 (J(w)) 最小化的参数 (w)。通过设置 (J(w)) 对 (w) 的导数为0,可以得到正规方程:

[ w = (XTX){-1}X^Ty ]

这里,(X) 是设计矩阵(包含特征和偏置项),(y) 是目标值向量。

步骤

  1. 构建设计矩阵 (X):如果特征数为 (n),样本数为 (m),则 (X) 的维度为 (m \times (n+1))(加一是因为偏置项)。
  2. 计算 (X^TX):这是一个 ((n+1) \times (n+1)) 的矩阵。
  3. 计算 (X^Ty):这是一个 ((n+1) \times 1) 的向量。
  4. 求解 (w):通过计算 ((XTX){-1}X^Ty) 来得到权重向量 (w)。

特点

  • 优点
    • 直接计算,不需要迭代。
    • 当特征数量较少时,计算量较小。
  • 缺点
    • 当特征数量很多时,计算 (X^TX) 的逆矩阵非常耗时。
    • 对于大规模数据集,内存消耗大。
    • 对数据的规模和特征数量敏感。

应用场景

正规方程适用于特征数量不多、数据集规模适中的情况。在特征数量较多或者数据集较大时,通常推荐使用梯度下降等迭代方法。

实现示例(Python)

import numpy as np# 假设 X 是特征矩阵,y 是目标值向量
X = np.array([[1, 2], [1, 3], [1, 4], [1, 5]])
y = np.array([2, 3, 5, 7])# 添加偏置项
X_b = np.c_[np.ones((X.shape[0], 1)), X]# 计算参数 w
w_best = np.linalg.inv(X_b.T.dot(X_b)).dot(X_b.T).dot(y)print("参数 w:", w_best)

总结

正规方程是解决线性回归问题的一种有效方法,尤其适用于特征数量较少的情况。然而,在处理大规模数据集或特征数量众多的情况时,其计算和存储的开销可能变得不可接受,此时应考虑使用更高效的优化算法,如梯度下降。

相关文章:

  • MetaMask安装及使用-使用水龙头获取测试币的坑?
  • 计算机网络 - 2.基础协议
  • 什么是 Boosting
  • 2025 ISCC 练武赛Pwn-wp(含附件)
  • KAG:通过知识增强生成提升专业领域的大型语言模型(五)
  • ABP vNext 多租户系统实现登录页自定义 Logo 的最佳实践
  • 【Canvas与诗词】醉里挑灯看剑 梦回吹角连营
  • TYUT-企业级开发教程-第三章
  • Qt Widgets模块功能详细说明,基本控件:QPushButton(二)
  • 数据脱敏-6种方案,你选哪种?
  • DockerFile实战
  • 护网行动——蓝队防守方案指南
  • 系分论文《论信息系统缓存的分析和应用》
  • AI日报 - 2025年05月19日
  • C++:⾯向对象的三⼤特性
  • TensorRT
  • 使用 Auto-Keras 进行自动化机器学习
  • 拓展运算符与数组解构赋值的区别
  • Vibe Coding:编程中的氛围与效率的艺术
  • java19
  • 西浦国际教育创新论坛举行,聚焦AI时代教育本质的前沿探讨
  • 山东发布高温橙警:预计19日至21日局地可达40℃
  • 持续降雨存在落石风险,贵州黄果树景区水帘洞将封闭至6月初
  • AG600“鲲龙”批生产首架机完成生产试飞
  • 芬兰直升机相撞坠毁事故中五名人员全部遇难
  • 美国失去最后一个AAA评级,资产价格怎么走?美股或将触及天花板