ML基本概念
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
分类
按学习方式
- 监督学习:输入数据带标签,预测和实际比较不断调整模型。
- 非监督学习:输入数据没有标签,聚类和管理。
- 半监督学习:输入数据部分有标签,分类和回归。
- 强化学习:输入数据反馈于模型,最大预期收益。
数据类型
除了平常可见的图像数据、文本数据、时序数据、表格数据、图表数据等数据外,机器学习中还是用的比较多是特征向量。
特征向量:每个样本都一系列数值特征组成,例如图像的像素、文本的词频等。
性质
不确定性
机器学习所产生的结果是不确定的,主要由以下两个方面造成:
- 随机不确定性:数据生成过程中的随机性,例如测量噪音。
- 认知不确定性:知识缺乏所造成的,例如数据不够、模型不行等。
泛化能力
除了要在训练集上表现好之外,还要在未标记数据即实际数据中表现良好。这也是评价模型性能的重要指标。泛化能力不好的话也就是过拟合。
功能
分类
简单来说就是打标签,如果标签值只有两个,例如给猫或狗的图片打标签,那就是二分类问题,反之如果包含多个类别则叫多分类问题,例如给猫/狗/鼠图片打标签。
这里还有一个多标签分类,指的是类别中没有互斥性,例如一张图片包含多个动物,天气即刮风又下雨等。
回归
- 预测值,例如根据照片判断年龄,股票预测都属于这类。
聚类
根据样本的不同属性将样本划分为若干集合。
注意聚类和分类的主要区别就是分类是有监督学习,而聚类是无监督学习。
有监督指的是分类中包含一个预先的标签数据集,通过模型学习这个数据集的数据来对新样本进行分类。
无监督指的是聚类没有预定义的标签集,而是模型基于数据的结构性质进行划分,目的是找出数据中隐藏的结构,也就是先分类,再找为什么这么分。
模型评估
模型在训练集上的误差成为“训练误差”,在新样本上的误差称为“泛化误差”。在实际工作中,在训练集表现很好而新样本表现很差则称为过拟合,反之在训练集上误差很大则为欠拟合。
欠拟合通常容易解决,增大数据或训练次数/学习率等即可。
过拟合则很难解决,需要做的事情就多了,具体问题再具体分析。
所以为了避免过拟合一般将数据集拆分为相互独立的训练数据集、验证数据集和测试数据集,并在训练过程中使用验证数据集来评估模型并更新参数。
评价指标
- 评估机器学习泛化能力的标准,标准并不绝对,具体任务具体分析。
分类问题评价指标:
准确率Accuracy
样本中预测正确的比例。二分类问题,低于50%则无意义(还不如随机返回可能都有50%)。
F-measure
对于二分类问题一般更关注其中的一类,例如根据症状判断是否犯病,若模型结果如下
实际\预测 阳性 阴性 阳性 15 5 阴性 20 60 则实际阳性有20个,实际阴性有80个。
本身是阳性,判断正确的TP(true positive)=15个 本身是阳性,判断错误的FN(false negative)=5个。 本身是阴性,判断正确的有TN=60个。 本身是阴性,判断错误的有FP=20个。
则有如下评价指标
- 精度:,表示判断为阳的样本大部分正确,适合用在推荐系统中。
- 召回率:,表示找出来的样本比例有多大,使用用在流行病检测中,不要漏掉阳性。
- 准确率:
- -measure:,比较综合的指标,适合同时考虑精度与召回率的应用。
实数值预测评价指标
不是所有时候都能得到某个样本是正是负,而是一个实数值,例如A的可能性是0.6,B的可能性是0.7。
受试者工作特征曲线ROC:给定任意一个阈值,预测值认为是正,反之为负,有:
True Positive Rate:
False Positive Rate:
ROC曲线绘制方法,将预测值排逆序,从开始依次查看各样本标签,将其全部看为正例并更新TPR和FPR的值得到ROC曲线
例如对于预测值
预测值 0.1 0.4 0.35 0.8 0.7 0.6 0.9 0.5 0.2 0.45 实际标签 负 负 正 正 正 负 正 负 正 负 计算过程为:
- 排逆序,得到排序后为。
- 初始化,设阈值。
- 对于第一个数据,且为P,故。
- 对于第二个数据,且为P,故
- 同理对后续数据更新得到坐标
ROC曲线示例ROC曲线能够揭示随着样本逐渐增加TPR和FPR的变化过程,从而根据ROC曲线来改变阈值或调整模型。一般我们希望TPR尽可能高而FPR尽可能低,所以ROC曲线越靠近左上角代表分类性能越好。
ROC曲线下面积AUC:ROC曲线与围成的面积称为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)
基于序的评价指标
先对预测值逆序排列,然后可以获得各类评价指标:HR,HR@5,NDCG,NDCG@10等。
回归问题评价指标
个样本,为第个样本真实标签值,为预测值。
平均绝对误差Mean Absolute Error:
均方根误差Root Mean Squared Error:
聚类问题评价指标
- 无统一客观标准。
- 内部评价指标:紧密度(Compactness)计算每个样本点到对应聚类中心的举例,加和求平均。
- 外部评价指标:随便什么东西都可以是外部指标。