机器学习(一)

听课时候随手记的,整理自黄海广博士的机器学习课程 :)

机器学习流程:

graph LR;
数据搜集 --> 数据清洗 --> 特征工程 --> 数据建模

前三个部分日常最多 80%-90%时间

数学建模需要最多的知识

监督学习

  • 回归问题:标签连续
  • 分类问题:标签离散

回归

线性回归

  • 线性模型
  • 找到直线、平面、或者超平面是的预测值与真实值之间误差最小
  • 距离为 0 则完全拟合

符号约定

  • m:训练集中的样本数量
  • n:特征数量
  • x:特征/输入变量
  • y:目标变量/输出变量
  • (x, y):训练集中的样本

默认为列向量

  • $x^{(i)}$:特征矩阵中的第 i 行(默认为列向量)
  • $x^{(i)}_j$:矩阵中第 i 行第 j 个特征
  • $h:$代表学习算法的解决方案或函数也成为假设
  • $\widehat{y}=h(x) $:代表预测值
  • $h:$学习算法的解决方案或函数,也成为假设
  • $\hat{y} = h(x):$ 预测的值

最小二乘法

  • 找到一组
  • 使得残差平方和

最小,即最小化$\frac{\partial J(w)}{\partial w}.$

  • 将上式转换为矩阵形式
  • 其中$X$为$m$行$n+1$列的矩阵($m为样本个数, n为特征个数$)
  • $w为n+1行1列的矩阵(包含w_0),Y为m行1列的矩阵$

根据向量的性质:

可以得到:

未来最小化$J(w)$,对其求偏导:

红色两项互为转置

则有

注意以下法则


批量梯度下降

  • 梯度下降的每一步都是用所有训练样本

参数更新:(同步更新$w_j$(j = 0,1,……,n))

随机梯度下降

梯度的推导:

由最小二乘法:

得到残差平方:

随机梯度下降每一步用到一个样本,在每次计算中都更新参数,不需要提前对训练集求和

参数更新:

小批量梯度下降

每一步用到一定批量的训练样本,每计算 b 次训练样本,更新一次参数 w

参数更新:

注意:

b = 1 (随机梯度下降,SGD)

b = m (批量梯度下降,BGD)

b = batch_size,通常为 2 的指数倍,常见为 32,64,128……(小批量梯度下降,MBGD)

总结

最小二乘法

  • 只适用线性模型
  • 特征值较多时矩阵计算代价过大(矩阵计算时间复杂度为$O(n^3)$当 n 小于 10000 可以接受)

  • 不需要选择学习率$\alpha$

  • 只需要一次计算

梯度下降

  • 适用于各种模型
  • 特征值较多时也适用
  • 需要选择学习率
  • 需要多次计算

数据归一化

归一化(最大-最小规范化)

将数据映射到[0,1]区间

数据归一化的目的是使得各特征对目标变量的影响一致,将特征数据进行伸缩变化,数据归一化是会 改变特征数据分布。

数据标准化

Z-Score 标准化

其中:

  • 经过标准化后,数据均值为 0,方差为 1

  • 标准化使不同特征具有可比性

  • 标准化后的特征数据分布没有发生变化
  • 当数据特征取值范围或单位差异较大时,需要做一下标准化处理
需要数据归一化/标准化
  • 线性模型
  • 基于度量的模型(KNN,K-means 聚类、感知机、SVM)
不需要归一化/标准化
  • 决策树
  • 基于决策树的集成学习模型(基于 Boosting、Bagging 等对于特征值大小不敏感的模型)例如 XGBoost、LightGBM、朴素贝叶斯等

过拟合的处理

  • 更多的训练数据

使用更多的训练数据是解决过拟合问题最有效的手段,因为更多的样本能够让模型学习到更多更有效的特征,减小噪声的影响。

  • 降维

即丢弃一些不能帮助我们正确预测的特征。可以是手工选择保留哪些特征,或者使用一些模型选择的算法来帮忙(例如 PCA)

  • 正则化

正则化技术,保留所有的特征,但是减少参数的大小( magnitude),它可以改善或者减少过拟合问题。

  • 集成学习

集成学习是把多个模型集成在一起,来降低单一模型的过拟合风险。

欠拟合的处理

  • 添加新特征

当特征不足或者现有特征与样本标签的相关性不强时,模型容易出现欠拟合。通过挖掘组合特征等新的特征,往往能够取得更好的效果。

  • 增加模型复杂度

简单模型的学习能力较差,通过增加模型的复杂度可以使模型拥有更强的拟合能力。例如,在线性模型中添加高次项,在神经网络模型中增加网络层数或神经元个数等。

  • 减少正则化系数

正则化是用来防止过拟合的,但当模型出现欠拟合现象时,则需要有针对性地减小正则化系数。


正则化

$L_1$正则化(Lasso 回归)

$L_1$正则化在损失函数中加入权值的绝对值之和,目的是使权重稀疏,防止欠拟合

$L_2$正则化(岭回归)

$L_2$正则化在损失函数中加入权值的平方和,可以使权重平滑,防止过拟合


回归的评价指标

指标中$y^{(i)}$和$\widehat{y}^{(i)} $表示第 i 个样本的真实值和预测值,m 为样本个数

  • 均方误差(Mean Square Error,MSE)
  • 均方根误差(Root Mean Square Error,RMSE)
  • 平均绝对误差(Mean Absolute Error,MAE)
  • R 方【RSquared(r2score)】

越接近 1 说明模型拟合越好