机器学习
对比传统的因果律,量子力学的哥本哈根学派科学家波尔、海森伯认为世界上一切事物的发生都是不确定的,只能用概率也就是发生的可能性描述事物运动规律,世间一切的事儿都符合于某种概率分布而不是因果,可以用概率模型来表示一切规律。
机器学习流程
- 数据收集与预处理
- 特征选择与模型构建
- 评估与预测
- 分类:预测是否
- 回归:预测一个具体数值
线性回归
目标: 预测未知的值
方法: 根据会影响目标的相关属性,通过线性函数来得到和目标接近的答案
公式:
x₁ 和 x₂ 等是权重项,即与目标结果相关的特征,其中 θ₀ 是偏置项,用于对模型最终结果做微调。
向量方式:
误差: 真实值 = 预测值 + 误差
用损失函数来表示误差,误差项越小越好并且接近 0。误差是独立的具有相同分布,并且满足均值为 0 的方差为 δ² 的高斯(正态)分布。
一般的套路:样本产生的误差是独立的 → 样本是独立的。
高斯分布:浮动越大,出现概率越低。
损失函数就是描述误差,用于量化模型预测值和真实值之间的差异,损失函数的值越小,模型预测效果越好。不同的损失函数:1. 均方误差(Mean Squared Error, MSE)2. 平均绝对误差(Mean Absolute Error, MAE)
使用线性回归的条件是什么?
- 特征变量和目标变量之间是线性关系(如果发现非线性模式,可以考虑对特征进行变换,如对数变换、多项式变换等)
- 样本之间的观测值是相互独立的
- 残差(预测值与真实值之差)的方差在所有预测值上保持一致(残差应随机分布在 0 线周围,无明显模式)
- 对于给定的特征值,目标变量的误差项服从正态分布
- 特征变量之间不应存在高度相关性。多重共线性会导致系数估计不稳定,并且难以解释
注意:
- 特征数量与样本量的比应该在 10 倍以上
- 异常值和高杠杆点可能会对线性回归的结果产生较大影响。可以使用 Cook’s Distance 或 DFBETAS 等统计量来检测并处理这些点
改进方式: 数据预处理(如标准化、归一化)、特征工程(如特征选择、特征变换)、使用更复杂的模型(如岭回归、Lasso 回归)
拟合(Fit) 就是用一个函数来表示给定数据集中的关系,拟合过程试图最小化预测值与实际观测值之间的差异,从而找到一个最优的模型参数。过度拟合是指模型太复杂,过度拟合了训练数据中的噪声和细节,导致模型在训练数据量表现的很好,但是遇到真实数据就很差。
R² 决定系数 是一个衡量回归模型拟合优度的统计量,它表示模型解释的变异占总变异的比例。
均方误差(MSE) 一种回归模型评估指标,通过对每个样本的预测误差进行平方并取平均来计算,衡量预测值与真实值之间的差异。
梯度下降
梯度下降(Gradient Descent)是一种迭代优化算法,能够高效地找到损失函数的极小值。因为数据量大或特征多的时候直接求解计算逆矩阵会非常麻烦,甚至不可行。
梯度: 函数在某点上升最快的方向(导数/偏导数的向量)
负梯度方向: 函数在该点下降最快的方向
学习率: 控制每次更新的步长
步骤:
- 初始化参数:随机选择初始值(比如都是 0)
- 迭代更新:计算当前梯度(所有训练样本的均值)、按学习率更新参数、重复直到收敛(如损失变化小于阈值或达到最大迭代次数)
学习率一般选择 0.01, 0.03, 0.1, 0.3,过大可能无法收敛,过小收敛速度会慢(一般先 0.01,如果有问题就继续调小,直到不能容忍为止)。
- 批量梯度下降(GD)
- 随机梯度下降(SGD)
- 小批量梯度下降
注意:如果特征尺度差异大(如 x₁ = 01, x₂ = 01000),梯度下降会震荡。归一化(如 Z-score)可加速收敛。
- 梯度下降 O(kn²):适用大规模数据(n > 1e4)
- 正规方程 O(n³):适用小规模数据(n < 1e4)
回归问题开发步骤:
- 训练模型
- 保存模型参数
- 加载模型
- 数据预处理
- 预测新数据
- 结果展示
模型评估方法
- 划分数据集:将数据集划分为训练集和测试集(最终验证用)
- 交叉验证:将训练集划分为 n 份,用其中一份当小验证集,其他为训练集测试,再取另一份为验证集其他为训练集,构建多个模型,求平均值,得到比较准确的验证集结果