2.7 其他问题
2.7.1 常用的损失函数有哪些
(1)0-1 loss
记录分类错误的次数。
(2)Hinge Loss
最常用在SVM中的最大化间隔分类中。对可能的输出t=±1和分类器分数y,预测值y的hinge loss定义如下:
L(y)=max(0.1-t∗y)
(3)Log Loss对数损失
对于对数函数,由于其具有单调性,在求最优化问题时,结果与原始目标一致,在含有乘积的目标函数中(如极大似然函数),通过取对数可以转化为求和的形式,从而大大简化目标函数的求解过程。
(4)Squared Loss平方损失
即真实值与预测值之差的平方和。通常用于线性模型中,如线性回归模型。
(5)Exponential Loss指数损失
指数函数的特点是越接近正确结果误差越小,Adaboost算法即使用的指数损失目标函数。但是指数损失存在的一个问题是误分类样本的权重会指数上升,如果数据样本是异常点,会极大地干扰后面基本分类器学习效果。
2.7.2 如何判断函数凸或非凸
首先定义凸集,如果x,y属于某个集合M,并且所有的θx+(1-θ)y也属于M,那么M为一个凸集。如果函数f的定义域是凸集,并且满足
f(θx+(1-θ)y)≤θf(x)+(1-θ)f(y)
则该函数为凸函数。上述条件还能推出更普适的结果,
如果函数存在二阶导数且为正,或者多元函数的Hessian矩阵半正定则均为凸函数
2.7.3 什么是数据不平衡问题,应该如何解决
数据不平衡,又称样本比例失衡。对于二分类问题来说,在一般情况下,正样本与负样本的比例应该是差不多的,但是在某些特殊项目中下,正负样本的比例却可能相差很大,如淘宝电商领域中的恶意差评检测,银行金融风控领域中的欺诈用户判断或医疗领域的肿瘤诊断等。
常见的解决数据不平衡问题的方法如下。
1)数据采样。
数据采样分为上采样和下采样。上采样是将少量数据类别的数据重复复制使得各类别的比例维持在正常水平,不过这种方法容易导致过拟合,所以需要在生成新数据的时候加入较小的随机扰动。下采样则相反,从多数数据类中筛选出一部分从而使各类别数据比例维持在正常水平,但是容易丢失比较重要的信息,所以需要多次随机下采样。
2)数据合成是利用已有样本的特征相似性生成更多新的样本。
3)加权是通过对不同类别分类错误施加不同权重的代价,使得机器学习时更侧重样本较少且容易出错的样本。
4)一分类。
当正负样本比例严重失衡时,采样和数据合成会导致原始数据的真实分布产生变化太大,从而导致模型训练结果并不能真正反映实际的情况,训练时会产生很大的偏差。那么此时可以用一分类的方法解决。例如One-class SVM,该算法利用高斯核函数将样本空间映射到核空间,在核空间中找到一个包含所有数据的高维球体。如果测试数据位于这个高维球体之中,则归为多数类,否则就归为少数类。
2.7.4 熵、联合熵、条件熵、KL散度、互信息的定义
熵在物理中是用于衡量一个热力学系统的无序程度,由德国物理学家鲁道夫·克劳修斯提出的熵的表达式为:
其中Q是吸收或者释放的热量,T是温度。
计算机领域将其定义为离散随机事件的出现概率。一个系统越是有序,信息熵就越低;反之,系统越是混乱,信息熵就越高。所以信息熵用来衡量系统有序化程度。如果一个随机变量X的可能取值为X={x1,x2,…,xk},概率分布为P(X=xi)=pi(i=1,2,…,n),则随机变量X的熵定义为:
联合熵:两个随机变量X,Y的联合分布可求得联合熵:
条件熵:在随机变量X发生的前提下,随机变量Y带来的新的熵即为Y的条件熵:
其含义是衡量在已知随机变量X的条件下随机变量Y的不确定性。
在定义完联合熵和条件熵后,即得:H(Y|X)=H(X,Y)-H(X),推导如下:
KL散度:设f(x)、g(x)是X中取值的两个概率分布,则f对g的相对熵是:
互信息:两个随机变量X,Y的互信息定义为X,Y的联合分布和各自独立分布乘积的KL散度:
在定义完KL散度和互信息后,即得:H(Y)-I(X,Y)=H(Y|X),推导如下:
用韦恩图表示,如图2-3所示,互信息I(X,Y)表示在Y给定下X的混乱程度的减少量,或Y给定下X的混乱程度的减少量。也就是Y或X信息增益。
图2-3中H(X,Y)表示联合熵,满足H(X,Y)=H(X)+H(Y|X)。另外可以看到,虽然信息增益互信息有等价关系,但熵与互信息的角度不同,前者侧重一个特征对象,后者侧重两两对象的关系。
图2-3 联合熵与熵的韦恩图
2.7.5 主成分分析和因子分析的区别
在做数据挖掘时,变量之间信息的高度重叠和高度相关会给结果分析带来许多障碍。所以需要在削减变量的个数的同时尽可能保证信息丢失和信息不完整。
主成分分析的具体算法步骤已经在“特征工程”一节中展示过,其基本思想是将具有一定相关性的指标x1,x2, …,xp,重新组合成一组个数较少的互不相关的综合新指标。新指标应该既能最大程度反映原变量所代表的信息,又能保证新指标之间保持相互无关。
因子分析的基本思想是根据相关性大小把原始变量分组,使得同组内的变量之间相关性较高,而不同组的变量间的相关性则较低。原始变量进行分解后会得到公共因子和特殊因子。公共因子是原始变量中共同具有的特征,而特殊因子则是原始变量所特有的部分。
主成分分析与因子分析的区别如下。
1)主成分分析是从空间生成的角度寻找能解释诸多变量变异绝大部分的几组彼此不相关的主成分。而因子分析是寻找对变量起解释作用的公共因子和特殊因子,以及公共因子和特殊因子组合系数。
2)因子分析把变量表示成各因子的线性组合,而主成分分析中则把主成分表示成了各变量的线性组合。
3)主成分分析中不需要假设,因子分析有一些假设,例如公共因子和特殊因子之间不相关等。
4)主成分分析中,由于给定的协方差矩阵或者相关矩阵的特征值是唯一的,所以主成分一般是固定的;而因子分析可以通过旋转得到不同的因子。
2.7.6 什么是最小风险贝叶斯决策
贝叶斯定理会根据一件事发生的先验知识计算出它的后验概率。数学上,它表示为:一个条件样本发生的真正率占真正率和假正率之和的比例,即:
最小风险贝叶斯决策的算法步骤描述如下。
1)在已知P(ωi),P(X|ωi),i=1,…,c及给出待识别的的情况下,计算后验概率P(X|ωi)。
2)利用计算出的后验概率及决策表,按下面的公式计算出采取ai的条件风险。
3)对上面计算得到的a个条件风险值R(ai|X)进行比较,找出使其条件风险最小的决策ak,即。
此时则将ak称为最小风险贝叶斯决策。
2.7.7 什么是贝叶斯最小错误概率和最小风险
为了能够更好地理解这两个概念,下面将通过一道题来理解:有一种病症,记正常的情形为ω1,不正常为ω2,且有P(ω1)=0.9,P(ω2)=0.1,某人的检查结果为x,由概率曲线查出:
P(x|ω1)=0.2,P(x|ω2)=0.4
风险代价矩阵为:
下面分别通过计算贝叶斯最小错误概率和贝叶斯最小风险的方式判别x是ω1还是ω2。
解答:基于最小错误率的贝叶斯决策是利用概率论中的贝叶斯公式,得出使得错误率最小的分类规则。而基于最小风险的贝叶斯决策,引入了损失函数,得出使决策风险最小的分类。当在0-1损失函数条件下,基于最小风险的贝叶斯决策变成基于最小错误率的贝叶斯决策。
用贝叶斯最小错误概率的方式如下:
P(ω1|x)∝P(ω1)P(x|ω2)
P(ω2|x)∝P(ω2)P(x|ω2)
由于
所以x∈ω1。
用计算贝叶斯最小风险的方式:
由于
所以x∈ω1。