【摘要】传统编程基于规则和数据,通过快速地计算来得到指定规则下的答案,对于特定c输入,给出确定输出的;而与传统编程不同的是,机器学习其实是从已知的数据和标签中学习得到某种规则,然后运用该规则去预测新数据的标签的过程,对机器学习而言,输入的是训练数据和对应的标签,得到的是数据和标签背后的映射规则。

机器学习的定义

什么是学习?

“如果一个系统,能够通过执行某个过程,就此改进它的性能,那么这个过程就是学习。” —— 1978年诺贝尔经济学奖获得者 Herbert Simon

什么是机器学习?

“对于某类任务T和某项性能评价准则P,如果一个计算机程序在T上,以P作为性能的度量,随着经验E的积累,不断自我完善,那么我们称这个计算机程序从E中进行了学习。”卡耐基梅隆大学教授, Tom Mitchell

机器学习的分类

按任务类型分类

  1. 回归问题:输入输出均为连续变量;

  2. 分类问题:输出为离散变量;

按学习方式分类

  1. 监督学习:训练样本带有标注

  2. 无监督学习:训练样本无标注,发现数据中的隐藏模式,如聚类和降维任务。

  3. 强化学习:不断试探和奖励的学习过程。

生成模型和判别模型

在监督学习中,学习方法可以进一步分为生成方法和判别方法,对应的模型即为生成模型和判别模型。

  1. 生成模型

    生成方法是由数据学习训练集的联合概率分布P(x,y),然后求出条件概率P(Y|X)作为预测的模型。

    $P\left ( Y|X \right ) =\frac{P\left ( X,Y \right ) }{P\left ( X \right ) } $

    因为模型表示了给定输入X产生输出Y的生成关系,因此这样的方法被称为生成方法。

  2. 判别模型

    判别方法是由数据直接学习决策函数f(x)或条件概率分布P(Y|X)作为预测模型。

机器学习方法三要素

机器学习方法 = 模型 + 策略 + 算法

模型:
就是对一个实际业务问题进行建模,将其转化为一个可以用数学语言来描述得问题;

策略:
定义损失函数来描述预测值和理论值之间的误差,将其转换为一个使损失函数最小的优化问题;

算法:
求解最优化问题的方法,一般将其转化为无约束条件的优化问题,然后利用梯度下降或牛顿法求解。

模型评估的指标

回归模型评估指标

  1. 绝对误差(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 | $

  2. 均方误差(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 $

  3. 均方根误差(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 }$

分类模型评估指标

  1. 二分类的混淆矩阵

    TP(True Positive):真正类
    FP(False Positive):假正类
    TN(True Negative):真负类
    FN(False Negative):假负类

  2. 准确率(accuracy)

    衡量模型对数据集中样本预测准确的比例。

    $accuracy = \frac{预测正确的样本数目}{总样本数} $

  3. 精确度(precision),又称查准率

    所有预测为正的样本中,真正为正的比例,也就是说预测为正的样本中,有多少预测对了。

    $precision= \frac{TP}{TP+FP} $

  4. 召回率(recall),又称查全率

    所有的正样本,有多少被预测出来了

    $recall = \frac{TP}{TP+FN} $

  5. 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 ) $

  6. 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范数等。