机器学习概述
【摘要】传统编程基于规则和数据,通过快速地计算来得到指定规则下的答案,对于特定c输入,给出确定输出的;而与传统编程不同的是,机器学习其实是从已知的数据和标签中学习得到某种规则,然后运用该规则去预测新数据的标签的过程,对机器学习而言,输入的是训练数据和对应的标签,得到的是数据和标签背后的映射规则。
机器学习的定义
什么是学习?
“如果一个系统,能够通过执行某个过程,就此改进它的性能,那么这个过程就是学习。” —— 1978年诺贝尔经济学奖获得者 Herbert Simon
什么是机器学习?
“对于某类任务T和某项性能评价准则P,如果一个计算机程序在T上,以P作为性能的度量,随着经验E的积累,不断自我完善,那么我们称这个计算机程序从E中进行了学习。”卡耐基梅隆大学教授, Tom Mitchell
机器学习的分类
按任务类型分类
回归问题:输入输出均为连续变量;
分类问题:输出为离散变量;
按学习方式分类
监督学习:训练样本带有标注
无监督学习:训练样本无标注,发现数据中的隐藏模式,如聚类和降维任务。
强化学习:不断试探和奖励的学习过程。
生成模型和判别模型
在监督学习中,学习方法可以进一步分为生成方法和判别方法,对应的模型即为生成模型和判别模型。
生成模型
生成方法是由数据学习训练集的联合概率分布P(x,y),然后求出条件概率P(Y|X)作为预测的模型。
$P\left ( Y|X \right ) =\frac{P\left ( X,Y \right ) }{P\left ( X \right ) } $
因为模型表示了给定输入X产生输出Y的生成关系,因此这样的方法被称为生成方法。
判别模型
判别方法是由数据直接学习决策函数f(x)或条件概率分布P(Y|X)作为预测模型。
机器学习方法三要素
机器学习方法 = 模型 + 策略 + 算法
模型:
就是对一个实际业务问题进行建模,将其转化为一个可以用数学语言来描述得问题;
策略:
定义损失函数来描述预测值和理论值之间的误差,将其转换为一个使损失函数最小的优化问题;
算法:
求解最优化问题的方法,一般将其转化为无约束条件的优化问题,然后利用梯度下降或牛顿法求解。
模型评估的指标
回归模型评估指标
绝对误差(Mean Absolute Error, MAE)
预测值与真实值差的绝对值的平均值:
$MAE\left ( X,h \right ) = \frac{1}{m} \sum_{i=1}^{m} \left | h\left ( x_{i} \right ) - y_{i} \right | $
均方误差(Mean Squared Error, MSE)
预测值与真实值差的平方和的平均值:
$MAE\left ( X,h \right ) = \frac{1}{m} \sum_{i=1}^{m} \left ( h\left ( x_{i} \right ) - y_{i} \right )^2 $
均方根误差(Root Mean Squared Error, RMSE)
预测值与真实值差的平方和的平均值取开方:
$MAE\left ( X,h \right ) =\sqrt{\frac{1}{m} \sum_{i=1}^{m} \left ( h\left ( x_{i} \right ) - y_{i} \right )^2 }$
分类模型评估指标
二分类的混淆矩阵
TP(True Positive):真正类
FP(False Positive):假正类
TN(True Negative):真负类
FN(False Negative):假负类准确率(accuracy)
衡量模型对数据集中样本预测准确的比例。
$accuracy = \frac{预测正确的样本数目}{总样本数} $
精确度(precision),又称查准率
所有预测为正的样本中,真正为正的比例,也就是说预测为正的样本中,有多少预测对了。
$precision= \frac{TP}{TP+FP} $
召回率(recall),又称查全率
所有的正样本,有多少被预测出来了
$recall = \frac{TP}{TP+FN} $
F1值与PR曲线
在有的任务中,比如搜索引擎,既要关注“检索出的信息有多少是用户感兴趣的”(查准),又要关注“用户感兴趣的信息有多少被检索出来了”(查全),为了兼顾查准和查全,提出了新的衡量标准F1值。
PR曲线:
PR曲线以查全率为x轴,以查准为y轴,按照如下步骤绘制:
1) 将预测结果按照预测为正的概率值排序;
2) 将概率阈值从1逐渐降低,计算这时的查准和查全率,得到PR曲线上的点;
3) 以recall为横坐标,以precision为纵坐标,绘制PR曲线。
PR(precision-recall)曲线比较模型性能:
1) 如果一条PR曲线完全包住另一条,前者性能优;
2) 如果PR曲线发生交叉,则PR曲线下面积大的性能优;
3) 使用平衡点(recall==precision),平衡点值越大性能优;
4) F1值度量:
F1值是precision和recall的调和平均数:
$\frac{1}{F_{1} } =\frac{1}{2} \left ( \frac{1}{precision} + \frac{1}{recall} \right ) $ROC曲线
ROC曲线(Receiver Operating Characterstic Curve,受试者工作特征曲线),一开始并不是为机器学习领域设计的,最早源于军事领域,后来逐渐用于医学、心理学等领域。
在ML领域,ROC曲线可以看做是混淆矩阵的改良版本:通过不断调整阈值,从而给出不同版本的混淆矩阵,然后连点成线,得到ROC曲线。
y轴=真正率=TP/(TP+FN)
x轴=假正率=FP/(TN+FP)
ROC曲线作图步骤:
1) 将预测结果按照预测为正的概率值排序;
2) 将概率阈值从1逐渐降低,计算这时的真正率和假正率,得到ROC曲线上的点;
3) 连点成线得到ROC曲线;
如何通过ROC曲线对比模型性能:
1) 如果一条ROC曲线完全包住另一条ROC曲线,前者性能优;
2) 如果ROC曲线发生交叉,则曲线下面积AUC大的性能优;
过拟合、欠拟合和正则化
过拟合和欠拟合
误差:模型的预测输出与样本真实值之间的差;
经验误差也称为训练误差:模型在训练集上的误差;
泛化误差也称测试误差:模型在新样本上的误差;
过拟合:模型对训练数据预测很好,对未知数据预测很差;
欠拟合:特征没有学习到位,对训练数据和测试数据预测都比较差;
过拟合原因:
1) 样本特征数量过多;
2) 噪声过大;
3) 模型过于复杂;
解决过拟合的方法:
1) 获取额外数据进行价差验证;
2) 重新清洗数据;
3) 加入正则化项;
经验风险与结构风险
经验风险:最小化损失函数
结构风险:加上了约束项之后的模型,对应的损失函数即为结构风险
常用的正则化项:L0范数,L1范数,L2范数等。