跳至主要內容

ML基本概念

原创Xenny约 2022 字大约 8 分钟机器学习机器学习

ML基本概念

  • 机器学习是人工智能的一个分支,它是一门研究机器获取新知识和新技能,并识别现有知识的学问。

It’s a computer program learning from experience E with respect to some task T and some performance measure P, if its performance on T as measured by P, improves with E : Tom Mitchell 1998

分类

  • 按学习方式

    1. 监督学习:输入数据带标签,预测和实际比较不断调整模型。
    2. 非监督学习:输入数据没有标签,聚类和管理。
    3. 半监督学习:输入数据部分有标签,分类和回归。
    4. 强化学习:输入数据反馈于模型,最大预期收益。

数据类型

  • 除了平常可见的图像数据、文本数据、时序数据、表格数据、图表数据等数据外,机器学习中还是用的比较多是特征向量

    特征向量:每个样本都一系列数值特征组成,例如图像的像素、文本的词频等。

性质

  1. 不确定性

    机器学习所产生的结果是不确定的,主要由以下两个方面造成:

    1. 随机不确定性:数据生成过程中的随机性,例如测量噪音。
    2. 认知不确定性:知识缺乏所造成的,例如数据不够、模型不行等。
  2. 泛化能力

    除了要在训练集上表现好之外,还要在未标记数据即实际数据中表现良好。这也是评价模型性能的重要指标。泛化能力不好的话也就是过拟合

功能

分类

  • 简单来说就是打标签,如果标签值只有两个,例如给猫或狗的图片打标签,那就是二分类问题,反之如果包含多个类别则叫多分类问题,例如给猫/狗/鼠图片打标签。

    这里还有一个多标签分类,指的是类别中没有互斥性,例如一张图片包含多个动物,天气即刮风又下雨等。

回归

  • 预测值,例如根据照片判断年龄,股票预测都属于这类。

聚类

  • 根据样本的不同属性将样本划分为若干集合。

    注意聚类和分类的主要区别就是分类是有监督学习,而聚类是无监督学习。

    有监督指的是分类中包含一个预先的标签数据集,通过模型学习这个数据集的数据来对新样本进行分类。

    无监督指的是聚类没有预定义的标签集,而是模型基于数据的结构性质进行划分,目的是找出数据中隐藏的结构,也就是先分类,再找为什么这么分。

模型评估

  • 模型在训练集上的误差成为“训练误差”,在新样本上的误差称为“泛化误差”。在实际工作中,在训练集表现很好而新样本表现很差则称为过拟合,反之在训练集上误差很大则为欠拟合

    欠拟合通常容易解决,增大数据或训练次数/学习率等即可。

    过拟合则很难解决,需要做的事情就多了,具体问题再具体分析。

  • 所以为了避免过拟合一般将数据集拆分为相互独立的训练数据集、验证数据集和测试数据集,并在训练过程中使用验证数据集来评估模型并更新参数。

评价指标

  • 评估机器学习泛化能力的标准,标准并不绝对,具体任务具体分析。

分类问题评价指标:

  1. 准确率Accuracy

    样本中预测正确的比例。二分类问题,低于50%则无意义(还不如随机返回可能都有50%)。

  2. F-measure

    对于二分类问题一般更关注其中的一类,例如根据症状判断是否犯病,若模型结果如下

    实际\预测阳性阴性
    阳性155
    阴性2060

    则实际阳性有20个,实际阴性有80个。

    本身是阳性,判断正确的TP(true positive)=15个 本身是阳性,判断错误的FN(false negative)=5个。 本身是阴性,判断正确的有TN=60个。 本身是阴性,判断错误的有FP=20个。

    则有如下评价指标

    1. 精度P=TPTP+FP=1/7P = \frac{TP}{TP+FP} = 1/7,表示判断为阳的样本大部分正确,适合用在推荐系统中。
    2. 召回率R=TPTP+FN=3/4R = \frac{TP}{TP+FN} = 3/4,表示找出来的样本比例有多大,使用用在流行病检测中,不要漏掉阳性。
    3. 准确率Acc=TP+TNTP+FN+FP+TNAcc = \frac{TP+TN}{TP+FN+FP+TN}
    4. F1F_1-measureF1=2PRP+RF_1 = \frac{2P\cdot R}{P+R},比较综合的指标,适合同时考虑精度与召回率的应用。
  3. 实数值预测评价指标

    不是所有时候都能得到某个样本是正是负,而是一个实数值,例如A的可能性是0.6,B的可能性是0.7。

    1. 受试者工作特征曲线ROC:给定任意一个阈值α\alpha,预测值yiαy_i^{'}\ge\alpha认为是正,反之为负,有:

      True Positive RateTPR=TPP\mathrm{TPR} = \frac{TP}{P}

      False Positive RateFPR=FPN\mathrm{FPR} = \frac{FP}{N}

      ROC曲线绘制方法,将预测值排逆序,从(0,0)(0,0)开始依次查看各样本标签,将其全部看为正例并更新TPR和FPR的值得到ROC曲线

      例如对于预测值

      预测值0.10.40.350.80.70.60.90.50.20.45
      实际标签

      计算过程为:

      1. 排逆序,得到排序后为(0.9,0.8,0.7,0.6,0.5,0.45,0.4,0.35,0.2,0.1)(0.9, 0.8, 0.7, 0.6, 0.5, 0.45, 0.4, 0.35, 0.2, 0.1)
      2. 初始化TPR=FPR=0TPR=FPR=0,设阈值α=0\alpha=0
      3. 对于第一个数据0.90.9,且为P,故TPR=1/5=0.2TPR=1/5=0.2
      4. 对于第二个数据0.80.8,且为P,故TPR=2/5=0.4TPR=2/5=0.4
      5. 同理对后续数据更新得到坐标((0,0.2),(0,0.4),(0,0.6),(0.2,0.6),(0.4,0.6),(0.6,0.6),(0.8,0.6),(0.8,0.8),(0.8,1),(1,1))((0, 0.2), (0,0.4), (0,0.6), (0.2,0.6),(0.4, 0.6),(0.6,0.6),(0.8,0.6),(0.8,0.8),(0.8,1),(1,1))
      ROC曲线示例

      ROC曲线能够揭示随着样本逐渐增加TPR和FPR的变化过程,从而根据ROC曲线来改变阈值或调整模型。一般我们希望TPR尽可能高而FPR尽可能低,所以ROC曲线越靠近左上角代表分类性能越好。

    2. ROC曲线下面积AUC:ROC曲线与x=0,x=1,y=0x=0,x=1,y=0围成的面积称为AUC,该值可以用来量化分类模型的性能,AUC值越接近一则越好。

    提示

    在python中我们可以用sklearn库来获取计算数据

    import numpy as np
    from sklearn import metrics  
    
    y_true = np.array([0, 0, 1, 1, 1, 0, 1, 0, 1, 0])
    y_scores = np.array([0.1, 0.4, 0.35, 0.8, 0.7, 0.6, 0.9, 0.5, 0.2, 0.45])
    fpr, tpr, thresholds = metrics.roc_curve(y_true, y_scores)
    roc_auc = metrics.auc(fpr, tpr)
    
  4. 基于序的评价指标

    先对预测值逆序排列,然后可以获得各类评价指标:HR,HR@5,NDCG,NDCG@10等。

回归问题评价指标

  • nn个样本,yiy_i为第ii个样本真实标签值,yiy_i^{'}为预测值。

    平均绝对误差Mean Absolute Error

    MAE=i=1nyiyin \mathrm{MAE} = \frac{\sum_{i=1}^n|y_i-y_i^{'}|}{n}

    均方根误差Root Mean Squared Error

    RMSE=i=1n(yiyi)2n \mathrm{RMSE} = \sqrt{\frac{\sum_{i=1}^n(y_i-y_i^{'})^2}{n}}

聚类问题评价指标

  • 无统一客观标准。
  1. 内部评价指标:紧密度(Compactness)计算每个样本点到对应聚类中心的举例,加和求平均。
  2. 外部评价指标:随便什么东西都可以是外部指标。
上次编辑于:
贡献者: X3NNY