机器学习简介
机器学习任务一般步骤:
①确定特征
②确定模型
确定目标函数,包括损失函数和正则项。损失函数度量模型预测值和真实值之间的差异,正则项对模型的复杂正度施加惩罚。
损失函数在回归问题中:
L2损失对噪声敏感,L1损失对噪声不敏感,但在 x=0 处不可导,Huber损失融合了 L2 和 L1 损失的优点。
损失函数在分类问题中:
0-1损失,即服从伯努利分布:
Logistic损失(负Log似然损失):
指数损失:
合页损失:
各损失函数图像如下:
正则项:
③模型训练
模型训练的目的是在数据集上求解目标函数的极小值
梯度下降:,每次学习使用整个训练集,对大数据集训练数据学习时间长。
随机梯度下降:SGD,下图是SGD的改进版本
④模型评估
确定模型的情况下,估计模型在新数据集上的预测误差。
当样本足够多的时候,可以直接分解为训练集和校验集:
当样本不够时,采用重采样技术:交叉验证和bootstrap等
模型选择,对多个不同的模型,计算误差进行选择
⑤模型应用
线性回归模型:
目标函数:
对于回归问题,损失函数采用 L2 损失:
则最小二乘线性回归:最小二乘回归等价极大似然估计,极大似然估计定义:
似然函数:
L2正则:等价于贝叶斯估计,其中先验分布为高斯分布
L1正则:等价于贝叶斯估计,先验分布为Laplace分布
模型求解:
SVD:奇异值分解
梯度下降:
坐标轴下降:
每次迭代在当前点处沿着一个坐标方向进行一维搜索,整个过程中循环使用不同的坐标方向,一个周期的一维搜索迭代过程相当于一个梯度迭代。
模型评估:
需要区分校验集和训练集
scikit learn将交叉验证和网格搜索合并为一个函数:
评价指标:默认R2 score