非线性模型可以在线性模型的基础上通过引入层级结构或高维映射而得。
若属性值间存在“序”关系,可通过连续化将其转化为连续值,例如二值属性“身高”的取值“高”“矮”可转化为{1,0},三值属性“高度”的取值“高”“中”“低”可转化为{1,0.5,0};
若属性值间不存在序关系,假定有个k个属性值,则通常转化为k维向量,例如属性“瓜类”的取值“西瓜”“南瓜”“黄瓜”可转化为(0,0,1),(0,1,0),(1,0,0).
高维问题可以用梯度反向传播法,见3.7
原型: y = w T x + b y=w^Tx+b y=wTx+b
对数: ln y = w T x + b \ln y=w^Tx+b lny=wTx+b
本质:
考虑更一般的情况,有link function联系函数g()
现实情况不可能每次都能用线性模型进行拟合,如果对输出y做空间的非线性映射,便可得到广义的线性模型,从线性到非线性。
此时g(.)=ln(.)
理想状态是单位阶跃函数
若预测值z为正,则判断为正例,为负则判断为反例,为0则任意判别。
但阶跃函数并不是可微的,因此必须寻找替代函数surrogate function。目前使用比较广泛的是对数几率函数logistic function,它是Sigmoid函数的一种。它的好处在于:
对数几率log odds: ln y = y 1 − y \ln y=\frac{y}{1-y} lny=1−yy
从本质上讲,对数几率回归模型logistic regression就是在用线性回归模型的预测结果去逼近真实标记的对数几率。
虽然还是回归模型,但却是一种分类学习方法。之前普遍翻译为逻辑回归,意义相去甚远,还是用对数几率回归比较符合一些。它的好处在于:
确定模型之后,接下来自然要做的就是确定w和b。这里要使用到的方法是极大似然法maximum likelihood method。
极大似然估计详解.
似然项可以用来衡量训练样本在多大程度上符合假设的分布。
如何理解似然函数?.
或者参考7.2节
不过我有点儿转不过来弯,(3.27)这里为什么要用最小化?先放这儿,看之后能不能解决。
LDA 的思想非常朴素: 给定训练样例集, 设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近、异类样例的投影点尽可能远离;
多分类学习可在二分类基础上进行。将原问题拆分为多个二分类任务,然后每个二分类训练一个分类器,然后再进行集成获得最终的多分类结果。核心就是拆分+集成。
具体选择哪一种拆分策略,要看具体情况下的存储和时间开销,以及性能高低。
一对一OvO
假设训练集有四类样本,C1,C2,C3,C4,训练时两两组合为二分类进行训练,新样本通过这 C N 2 C^2_N CN2个分类器后会得到N(N−1)2个分类结果,最终结果可根据这些分类结果投票产生。
一对其余OvR
训练时一个类作为正例,其余所有类作为反例。这样共有N个二分类器进行训练,新样本通过分类器时预测结果为正例的即为最终结果。
当新样本测试时,若只有一个分类器预测为正类,则该预测作为最终结果。若有多个分类器预测为正类,则此时应考虑各个分类器的预测置信度,选择置信度最大的类别标记作为分类结果。
多对多MvM
MvM策略是每次将若干个类视为正类,若干个类视为反类
本质上讲前两种情况都是MvM的特殊情况。基本思路是训练集每一类通过多个分类器训练会产生一组编码结果,新样本通过分类器产生的编码结果与每个分类器的结果求距离,距离最短者即为最终结果。
这里常用的MvM编码技术是:**纠错输出码ECOC Error Correcting Output Codes,**其关键在于:
ECOC工作过程分为两步
(1)编码,对N个类别进行M次划分,每次划分将一部分类别作为正类,一部分类别作为反类,形成一个二分类训练集。这样一共可以产生M个训练集,可以训练出M个分类器。
(2)解码,M个分类器分别对测试样本进行预测,预测标记组成一个编码,将该预测标记编码与各个类别各自的编码进行比较,返回其中距离(欧氏距离,海明距离)最小的类别作为最终预测结果。
ECOC的类别划分主要通过“编码矩阵”指定,而编码矩阵有多种形式,常见的有二元码(-1,+1)和三元码(-1,0,+1)
如图所示,共4个类别,进行了M=5次划分,共有f1,f2,f3,f4,f5这5个分类器。每个类别经过这5个分类器都会输出一个编码,例如3-5(a)中的C1类的输出编码为(-1,+1,-1,+1,+1),同理每个测试新样本也会输出一个5位的编码,通过测试编码与各个类别编码之间的距离,例如欧式距离,海明距离,选取距离最小的一个类别作为最终输出类别即可完成分类任务。
为什么说纠错输出码?一般来说ECOC在分类的时候因为有多位编码,存在一定的容错能力,如果训练类别与类别之间海明距离很大,那么即使测试样本在输出编码的时在某个或者某几个分类器输出的编码出错了,还是有可能能归到正确的类别中的。
不失一般性,ECOC编码越长,纠错能力越强,同时分类器的训练,存储开销也都会增大,同时ECOC编码也不可能无限长,因为类别的组合是有限的,超过一定范围后的编码是没有意义的。
类别不平衡class-imbalance即是不同类样本数相差很大,导致学习效果不佳。举个很简单的例子,1000个样本,有998个是反例,2个是正例,那么一个对样本永远只预测为反例的学习器也能实现99.8%的正确率,但这种学习器显然是没有用的。
一个基本策略是再缩放rescaling。
在之前的比率回归问题上,正例和反例可能性相同,
而在类别不平衡的样本中,假设正例数目为m+,反例数目为m−(一般正例数目小于反例数目)。我们可设定学习器的决策条件为(预测几率>观测几率)
在实际操作中,再缩放却没那么容易,主要原因是**不一定能有效的基于训练集观测几率去推断真实几率。**因而往往有三类做法:
2.试证明,对于参数w,对率回归(logistics回归)的目标函数(式1)是非凸的,但其对数似然函数(式2)是凸的。
如果一个多元函数是凸的,那么它的Hessian矩阵是半正定的。
如果一个多元函数是凸的,那么它的Hessian矩阵是半正定的
4和5
链接: link.
7.令码长为9,类别数为4,试给出海明距离意义下理论最优的EOOC二元码并证明之。
对于ECOC二元码,当码长为2n时,至少可以使2n个类别达到最优间隔,他们的海明距离为2(n−1)。比如长度为8时,可以的序列为
1 1 1 1 -1 -1 -1 -1
1 1 -1 -1 1 1 -1 -1
1 -1 1 -1 1 -1 1 -1
-1 -1 -1 -1 1 1 1 1
-1 -1 1 1 -1 -1 1 1
-1 1 -1 1 -1 1 -1 1
其中4,5,6行是对1,2,3行的取反。若分类数为4,一共可能的分类器共有24−2种(排除了全1和全0),在码长为88的最优分类器后添加一列没有出现过的分类器,就是码长为99的最优分类器。
8.EOOC编码能起到理想纠错作用的重要条件是:在每一位编码上出错的概率相当且独立。试析多分类任务经ECOC编码后产生的二类分类器满足该条件的可能性及由此产生的影响。
理论上的ECOCECOC码能理想纠错的重要条件是每个码位出错的概率相当,因为如果某个码位的错误率很高,会导致这位始终保持相同的结果,不再有分类作用,这就相当于全00或者全 11的分类器,这点和NFL的前提很像。但由于事实的样本并不一定满足这些条件,所以书中提到了有多种问题依赖的ECOCECOC被提出。
9.使用OvR和MvM将多分类任务分解为二分类任务求解时,试述为何无需专门针对类别不平衡性进行处理。
书中提到,对于OvR,MvM来说,由于对每个类进行了相同的处理,其拆解出的二分类任务中类别不平衡的影响会相互抵消,因此通常不需要专门处理。以ECOC编码为例,每个生成的二分类器会将所有样本分成较为均衡的二类,使类别不平衡的影响减小。当然拆解后仍然可能出现明显的类别不平衡现象,比如一个超级大类和一群小类。
10.试推出多分类代价敏感学习(仅考虑基于类别的错误分类代价)使用“再缩放”能获得理论最优解的条件。
题目提到仅考虑类别分类的误分类代价,那么就默认正确分类的代价为0。
于是得到分类表,(假设为3类)
0 c12c12 c13c13
c21c21 0 c23c23
c31c31 c32c32 0
对于二分类而言,将样本为正例的后验概率设为是p,那么预测为正的代价是(1−p)∗c12(1−p)∗c12, 预测为负的代价是p∗c21p∗c21。
当(1−p)∗c12≤p∗c21(1−p)∗c12≤p∗c21样本会被预测成正例,因为他的代价更小。
当不等式取等号时,得到了最优划分,这个阀值pr=c12c12+c21pr=c12c12+c21,这表示正例与反例的划分比例应该是初始的c12c21c12c21倍。
假设分类器预设的阀值是popo,
不考虑代价敏感时,当y1−y>po1−poy1−y>po1−po时取正例。
当考虑代价敏感,则应该是y1−y>1−prpr∗po1−po=c21c12∗po1−poy1−y>1−prpr∗po1−po=c21c12∗po1−po。
推广到对于多分类,任意两类的最优再缩放系数tij=cij/cjitij=cij/cji ,然而所有类别的最优缩放系数并不一定能同时满足。当代价表满足下面条件时,能通过再缩放得到最优解。
设tij=wi/wjtij=wi/wj,则wi/wj=cij/cjiwi/wj=cij/cji对所有i,ji,j成立,假设有kk类,共C2kCk2个等式,此时代价表中k∗(k−1)k∗(k−1)个数,最少只要知道2∗(k−1)2∗(k−1)就能推出整张表。