西瓜书第三章习题


1.试分析在什么情况下,在式f(x) = w^Tx + b 式子中不比考虑偏置项b。

答 : 

ωT 和b有各自的意义,简单来说,ωT决定学习得到模型的方向,而b则决定截距,可以理解为模型不能解释的一部分,因此一般情况下是需要考虑偏置项的。当学习得到的模型恰好经过原点时,可以不考虑偏置项b。但如果对数据进行了归一化处理,学习到的模型会经过原点,那么此时b = 0,可以不考虑b。


2.试证明,对于参数w,对率回归(logistics回归)的目标函数(式1)  y=\frac{1}{ 1+e^{−(ω^Tx+b)}} 是非凸的,但其对数似然函数(式2)l(β)=∑^m_{i=1}(−y_iβ^Tx_i+ln(1+e^{β^T}x)) 是凸的。

答:

凸函数的定义:对区间[a,b]上定义的函数f(x),若它对区间中任意两点x1,x2均有f(\frac{x_1+x_2}{2} )≤\frac{f(x_1)+f(x_2)}{2}

则称f(x)为区间[a,b]上的凸函数。

证明式一函数为非凸的,这里根据其图像判断

图像的在【-  ∞,0】是凸函数,在【0,+ ∞ 】区间上是凹函数,函数有凸也有凹,因此式一函数为非凸。

logistics


对于式2      l(β)=∑^m_{i=1}(−y_iβ^Tx_i+ln(1+e^{β^T}x))

证明其函数为凸函数,可以证明其二阶导是非负

对于 β 的二阶导有 (原书p60)

        \frac{∂^2 l(β)}{∂β∂β^T}  = ∑_{i=1}^m​ x_i x_i^{T} p_1( x_i​ ;β)(1−p_ 1( x_i))=XPX^T

关于XPX^T,对于任意向量 z都有:

        z^TXPX^Tz=(X^Tz)^TP(X^Tz)=v^TPv=∑_i​P_{ii}​v_i^2​≥0

因此其二阶导非负。

3.编程实现对率回归,并给出西瓜数据集3.0α上的结果

西瓜数据集3.0α

代码思路:

1. 初始化变量

        定义学习率,模型参数w, 迭代次数

2. 定义训练函数

        接收输入的数据data

        根据输入的数据定义模型参数w的形状大小

        采用SGD算法对参数w进行计算

                每次选择样本集中的一个样本

                根据公式计算梯度 

                更新参数,直到迭代次数到达输入的迭代次数为止

3.定义预测函数

        根据模型计算输出的概率值

        判断该值是否大于阈值(0.5)判断其正负

代码执行结果


代码链接:我的码云

4.选择两个UCI数据集,比较10折交叉验证法和留一法所估计出的对率回归的错误率。

网络上大多采用 iris数据集,该数据集可有sklearn导入,因此本题的两个数据集,iris数据集,乳腺癌数据集,均由sklearn内置数据集导入

k折交叉验证法KFold将所有的样例划分为 k个组,称为折叠 (fold) ,都具有相同的大小(如果可能)。预测函数学习时使用 k-1  个折叠中的数据,最后一个剩下的折叠会用于测试。

留一法LOO 是一个简单的交叉验证。每个学习集都是通过除了一个样本以外的所有样本创建的,测试集是被留下的样本。 因此,对于  n个样本,我们有  n个不同的训练集和  n个不同的测试集。这种交叉验证程序不会浪费太多数据,因为只有一个样本是从训练集中删除掉的

代码结果

对应两种选择数据集集的方法,在乳腺癌数据集上者无明显区别,但在iris数据集上,留一法明显优于10折交叉验证法,出现该现象的原因我认为是

iris 的数据量大小为150条,乳腺癌数据的大小接近600条

每一次训练留一法可以考虑更多的样本的特征,因此在数据量小的情况下,留一法效果比 k 折交叉验证法要好,对于上了一定规模的数据,两者之间效果就没有很明显的差异。

因此用在小量的数据集上采用留一法可以达到更好的效果。

代码链接:我的码云

5.编程实现线性判别分析,并给出西瓜数据集3.0α上的结果。

代码思路:

1. 模型初始化

        接收模型最终降维的维度d

2. 定义求均值函数

        根据输入的数据计算每个类别对应的均值向量

3. 计算两个主要的矩阵

        类内散布矩阵

        类间散布矩阵

4.定义训练函数,求出lda模型的参数w

        接收输入的数据

        通过2,3计算得到必要的两个矩阵

        根据公式对两个矩阵的乘积做特征值分解

        根据其特征值的大小排序,组合前d个最大的对应的特征向量为模型参数w

5.定义预测函数

        将第4步得到的模型参数对预测的数据做线性运算得到降维后的输出

代码执行结果

代码链接:我的码云

6. LDA仅在线性可分数据上能获得理想结果,试设计一个改进方法,使其能较好地用于非线性可分数据。

答:

参考svm的算法设计,lda于svm两者之间有着共同的特性

1.两者都是线性模型

2.两者均可用于处理分类任务

当svm线性不可分的时候,会采用核函数的方法将低纬线性不可分的数据映射到高维,使得线性可分。

同理,lda出现当前维度线性不可分的时候,采取核函数的方法,将数据映射到高维,使之线性可分。

典型的方法有KLDA(核线性判别分析)


7.令码长为9,类别数为4,试给出海明距离意义下理论最优的EOOC二元码并证明之。

答:

问题的解决思路:

对同等长度的编码,理论上来说,任意两个类别之间的编码距离越远,则纠错能力越强。因此,在码长较小时可根据这个原则计算出理论最优编码。

假设任意两个类别之间最小的海明距离为 d,那么此纠错输出码最少能矫正  \left[\frac{d-1}{2}\right]


拿上图的例子解释一下,上图中,所有类别之间的海明距离都为4,假设一个样本正确的类别为 c1 ,那么codeword应该为 ‘0 0 1 1 0 0 1 1’,若此时有一个分类器输出错误,变成‘0 0 0 1 0 0 1 1’,那么此时距离最近的仍然为 c1,若有两个分类输出错误如‘0 0 0 0 0 0 1 1’,此时与 c1,c2的海明距离都为2,无法正确分类。即任意一个分类器将样本分类错误,最终结果依然正确,但如果有两个以上的分类器错误,结果就不一定正确了。这是  \left[\frac{d-1}{2}\right]的由来。

一个好的纠错输出码应该满足两个条件:

行分离。任意两个类别之间的codeword距离应该足够大。

列分离。任意两个分类器f_{i}, f_{j}的输出应相互独立,无关联。这一点可以通过使分类器 f_{i}编码与其他分类编码的海明距离足够大实现,且与其他分类编码的反码的海明距离也足够大。

下面引用的一篇文章中给出了构造编码的方法

按照这种方法,在类别为4时,其可行的编码有7种


当码长为9时,那么 f_6 之后加任意两个编码,即为最优编码,因为此时再加任意的编码都是先有编码的反码,此时,类别之间最小的海明距离都为4,不会再增加。



8.EOOC编码能起到理想纠错作用的重要条件是:在每一位编码上出错的概率相当且独立。试析多分类任务经ECOC编码后产生的二类分类器满足该条件的可能性及由此产生的影响。

答 :

问题拆解,一是出错的概率相当,二是出错的可能性相互独立。

第一 :出错的概率相当

满足该条件的可能性 :将多个类拆解为两个"类别子集“,所形成的两个类别子集的区分难度往往不同,即其导致的二分类问题的难度不同。所以每个编码拆解后类别之间的差异越相同(区分难度相当),则满足此条件的可能性越大。在实际中其实很难满足。(原书P66)

由此产生的影响 :因为如果某个码位的错误率很高,会导致这位始终保持相同的结果,不再有分类作用,这就相当于全0或者全 1的分类器。


第二:相互独立

满足该条件的可能性 :  当类别越多时,满足这个条件的可能性越大 。

由此产生的影响  :一个理论纠错牲质很好、但导致的三分类问题较难的编码,与另一个理论纠错性质差一些、但导致的二分类问题较简单的编码,最终产生的模型性能孰强孰弱很难说。(原书P66)


9.使用OvR和MvM将多分类任务分解为二分类任务求解时,试述为何无需专门针对类别不平衡性进行处理。

对 OvR 、 MvM 来说,由于对每个类进行了相同的处理,其拆解出的二分类任务中类别不平衡的影响会相互抵消,因此通常不需专门处理.(原书p66)


10.试推出多分类代价敏感学习(仅考虑基于类别的错误分类代价)使用“再缩放”能获得理论最优解的条件。

这个问题解决参考下面的文章

这道题目其实是周志华教授的一篇论文《On Multi-Class Cost-Sensitive Learning》

首先说一点关于“再缩放”的理解:无论是代价敏感学习还是非代价敏感学习中,“再缩放”各种方法(过采样、欠采样、阈值移动等)都是在调整各类别对模型的影响程度,即各类别的权重。







其伴随矩阵秩小于c。


参考文章:

https://zhuanlan.zhihu.com/p/43270830

https://blog.csdn.net/icefire_tyh/article/details/52069025

https://www.cnblogs.com/zwtgyh/p/10705603.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,273评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,349评论 3 398
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,709评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,520评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,515评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,158评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,755评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,660评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,203评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,287评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,427评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,122评论 5 349
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,801评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,272评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,393评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,808评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,440评论 2 359