机器学习的概念

概念: 多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

定义:[Mitchell,1997]假设用p来评估计算机程序在某个任务类T上的性能,若一个程序通过利用经验E在T中任务上获得了性能改善,则我们就说关于T和P,该程序对E进行学习。

机器学习的任务分类

  • 分类学习任务:将数据映射到预先定义的群组或类,采用离散值预测。
    分类
  • 回归(预测)学习任务:用历史数据来预测未来趋势,采用连续值来预测。
    回归
  • 聚类学习任务:将一组未被标记的数据,根据样本特征进行不同组别间的分类。
    1、 聚类相似样本;
    2、 异常检测等
    聚类

按照训练数据是否有标签分为:
+ 监督学习:学习带有标记的数据。
+ 非监督学习:学习未被标记的数据。

机器学习评价指标

将数据集划分为“测试集”T和“训练集“S,即可对训练出的模型进行性能度量。

划分训练集与测试集方法

留出法

把数据集D划分为两部分:训练集S和测试集T,其 STD,STΦ S ⋃ T ∈ D , S ⋂ T ∈ Φ 。大多情形下,难以得到合适的测试集,一般多次重复划分-训练-测试求误差的步骤,取误差的平均值。

由于把数据集分开了,留出法的 弊端
+ 若 S较大T较小,那么S训练出的模型与D训练的模型相似,T太少,评估结果偶然性大,不准确。
+ 若S较小T较大,那么S与D训练出的模型差异较大,T的评估失去意义。

通常用选择20%~30%左右数据用于评估。

交叉验证法(cross validation)

现将数据集D划分为k个大小相似的互斥子集,即 D=D1D2Dk,DiDj=(ij) D = D 1 ⋃ D 2 … ⋃ D k , D i ⋂ D j = ∅ ( i ≠ j ) 。每个子集 Di D i 保持数据的一致性。然后每次用k-1个子集的并集作为训练集,余下的子集做测试集;可获得k组训练/测试集,从而进行k次训练和测试,最终返回是k个测试结果的均值。

根据切分的方法不同,交叉验证又分以下几种:
+ 留一交叉验证
每次测试样本仅留一个,训练样本m-1个。数据量大时,计算量较大,且也容易过拟合。
+ K折交叉验证(常用)
K折交叉验证会把样本数据随机的分成K份,每次随机的选择K-1份作为训练集,剩下的1份做测试集。当这一轮完成后,重新随机选择K-1份来训练数据。若干轮(小于K)之后,选择损失函数评估最优的模型和参数。
K折交叉验证

自助法

对于数据集D,从中随机采集取m个样本组成训练集D‘,采样完后把样本放回。这样重复采集m次,我们得到m个样本组成的训练集D‘。当然,这m个样本中很有可能有重复的样本数据。同时,用没有被采样到的样本D/D‘做测试集。这样接着进行交叉验证。

由于训练集有重复数据,所以有以下 弊端:
+ 会改变数据的分布,因而训练结果会有估计偏差。
+ 只能数据量很少时使用,比如小于20个。

性能度量

性能度量用于判定机器学习的结果好坏程度。在比对不同的模型能力的时候,使用不同的性能度量往往会导致不同的评判结果。

在预测任务中,数据集 D={(x1,y1),(x2,y2),(xk,yk)} D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , · · · ( x k , y k ) } yi y i xi x i 的真实标记。如果评估学习器f的性能,需将f(x) yi y i 进行比较。

回归任务常用的性能度量

均方误差

E(f;D)=1mi=1m((f(xm)ym)2 E ( f ; D ) = 1 m ∑ i = 1 m ( ( f ( x m ) − y m ) 2

更一般的,对于数据分布 D和概率密度函数 p(x)

E(f;D)=xD(f(x)y)2p(x)dx E ( f ; D ) = ∫ x ∼ D ( f ( x ) − y ) 2 p ( x ) d x

分类任务中常用的性能度量

错误率与精度

错误率和精度是分类任务中最常用的两种性能度量,既适用于二分类任务,也适用于多分类任务。错误率是分类错误的样本数占总数的比例,精度则是分类正确的样本数占总数的比例。对于数据集D,分类错误率定义为

  • 精度: 预测正确的样本占总样本的比例

Acc(y,y^)=1ni=1msign(yi^,yi)sign(yi^,yi)={10y^=yiy^yi A c c ( y , y ^ ) = 1 n ∑ i = 1 m s i g n ( y i ^ , y i ) s i g n ( y i ^ , y i ) = { 1 y ^ = y i 0 y ^ ≠ y i

+ 错误率:
Err=1Acc E r r = 1 − A c c

查准率、查全率与F1值
+ 混淆矩阵

实际表现
1
预测1True Positive(TP)
表现0False Negative(FN)

你的预测是positive-1和negative-0,true和false描述你本次预测的对错

  • 查准率P:
    P=TPTP+FN P = T P T P + F N
  • 查全率R:
    R=TPTP+FN R = T P T P + F N
  • F1 度量:
    是综合考虑查准率,查全率的度量
    F1=2×P×RP+R F 1 = 2 × P × R P + R

ROC与AUG
+ ROC :“受试者工作特征”(Receiver Operating Characteristic)反映敏感性和特异性连续变量的综合指标,roc曲线上每个点反映着对同一信号刺激的感受性。
纵轴为 TPR 真正例率,预测为正且实际为正的样本占所有正例样本的比例。
横轴为 FPR 假正例率。预测为正但实际为负的样本占所有负例样本的比例。即真实的反例中,被预测正确的比例。

TPR=TPTP+FN,FPR=FPTN+FP T P R = T P T P + F N , F P R = F P T N + F P

对角线对应的是 “随机猜想”
ROC曲线
当一个学习器的 ROC 曲线被另一个学习器的包住,那么后者性能优于前者。有交叉时,需要用 AUC 进行比较。

  • AUC:即(Area Under the Curve)ROC 曲线下的面积。
    ROC Curve
    AUC=12i=1m1(xi+1xi)(yi+1+yi) A U C = 1 2 ∑ i = 1 m − 1 ( x i + 1 − x i ) ⋅ ( y i + 1 + y i )

代价敏感错误率与代价曲线
+ 代价矩阵
如果将第 0 类预测为 第 1 类造成的损失更大,则 cost01>cost10 c o s t 01 > c o s t 10 ,相反将第 1 类预测为 第 0 类造成的损失更大,则 cost01<cost10 c o s t 01 < c o s t 10 :

真实类别预测类别
第0类第1类
第0类0 cost01 c o s t 01
第1类 cost10 c o s t 10 0

+ 代价敏感错误率

E(f;D)=1m(xD+I((f(xi)yi)×cost01+xDI((f(xi)yi)×cost10) E ( f ; D ) = 1 m ( ∑ x ∈ D + I ( ( f ( x i ) ≠ y i ) × c o s t 01 + ∑ x ∈ D − I ( ( f ( x i ) ≠ y i ) × c o s t 10 )

其中 0 为正类,1 为反类,D+ 为正例子集合,D- 为反例子集合。

  • 代价曲线 (cost curve)
    非均等代价下,反应学习器的期望总体代价。
    横轴为取值为[0,1]的正例概率代价
    P(+)cost=p×cost01P×cost01+(1p)×cost10 P ( + ) c o s t = p × c o s t 01 P × c o s t 01 + ( 1 − p ) × c o s t 10

    纵轴为取值为[0,1]的归一化代价:
    costnorm=FNR×P×cost01+FPR×(1P)×cost10P×cost01+(1P)×cost10 c o s t n o r m = F N R × P × c o s t 01 + F P R × ( 1 − P ) × c o s t 10 P × c o s t 01 + ( 1 − P ) × c o s t 10

    其中,p是样例为正例的概率;FNR是假反例率;FPR是假正例率
    • 真正例率(TPR):【真正例样本数】与【真实情况是正例的样本数】的比值。(查全率)
    • 假正例率(FPR):【假正例样本数】与【真实情况是反例的样本数】的比值。
    • 假反例率(FNR):【假反例样本数】与【真实情况是正例的样本数】的比值。(1-查全率)

正例概率代价

模型构建

我们一般将一个模型的输入记为 x(i) x ( i ) ,输出记为 y(i) y ( i ) ,一对 (x(i),y(i)) ( x ( i ) , y ( i ) ) 就称作训练样本。 (x(i),y(i));i=1,,m ( x ( i ) , y ( i ) ) ; i = 1 , … , m 就叫训练集

在给定训练集的情况下,学习函数 h(x)XY h ( x ) : X → Y ,使得 hx h ( x ) 是y的对应值的比较“好”预测器。用图表示如下:
模型表示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值