机器学习(四):聚类算法

持续更新中。。。

查看更多

机器学习(三):SVM

持续更新中。。。

查看更多

机器学习(二):决策树、随机森林和提升算法

持续更新中。。。

查看更多

机器学习(一):回归算法

持续更新中。。。

查看更多

机器学习选择题集锦

回归

1、对于线性回归,我们应该有以下哪些假设?

  1. 找到离群点很重要, 因为线性回归对离群点很敏感
  2. 线性回归要求所有变量必须符合正态分布
  3. 线性回归假设数据没有多重线性相关性
    A 1 和 2
    B 2 和 3
    C 1,2 和 3
    D 以上都不是

答案:D
解析:第1个假设, 离群点要着重考虑, 第一点是对的
第2个假设, 正态分布不是必须的. 当然, 如果是正态分布, 训练效果会更好
第3个假设, 有少量的多重线性相关性也是可以的, 但是我们要尽量避免

只含有一个解释变量的线性回归模型称为“一元线性回归模型”。在一个方程式中含有一个以上的解释变量的线性回归模型称为“多元线性回归模型”。在多元线性回归模型中,各个解释变量之间不能存在线性相关关系。如果存在,则称该模型具有“多重共线性”。多重线性回归是简单直线回归的推广,研究一个因变量与多个自变量之间的数量依存关系。在建立多元线性回归模型时,在变量的选取上要避免出现多重共线性问题

2、当我们构造线性模型时, 我们注意变量间的相关性. 在相关矩阵中搜索相关系数时, 如果我们发现3对变量的相关系数是(Var1 和Var2, Var2和Var3, Var3和Var1)是-0.98, 0.45, 1.23 . 我们可以得出什么结论:

  1. Var1和Var2是非常相关的
  2. 因为Var1和Var2是非常相关的, 我们可以去除其中一个
  3. Var3和Var1的1.23相关系数是不可能的
    A 1 and 3
    B 1 and 2
    C 1,2 and 3
    D 1

答案:C
解析相关性系数范围应该是 [-1,1]一般如果相关系数大于0.7或者小于-0.7, 是高相关的.
Var1和Var2相关系数是接近负1, 所以这是多重线性相关, 我们可以考虑去除其中一个.
所以1, 2, 3个结论都是对的, 选C.

3、机器学习中L1正则化和L2正则化的区别是?
A 使用L1可以得到稀疏的权值
B 使用L1可以得到平滑的权值
C 使用L2可以得到稀疏的权值

答案:A
解析
L1 lasso回归,L2岭回归
L1正则化偏向于稀疏,它会自动进行特征选择,去掉一些没用的特征,也就是将这些特征对应的权重置为0.
L2主要功能是为了防止过拟合,当所求参数越小时,说明模型越简单,而模型越简单则,越趋向于平滑,从而防止过拟合。

L1正则化将系数w的l1范数作为惩罚项加到损失函数上,由于正则项非零,这就迫使那些弱的特征所对应的系数变成0。因此L1正则化往往会使学到的模型很稀疏(系数w经常为0),这个特性使得L1正则化成为一种很好的特征选择方法。

L2正则化将系数向量的L2范数添加到了损失函数中。由于L2惩罚项中系数是二次方的,这使得L2和L1有着诸多差异,最明显的一点就是,L2正则化会让系数的取值变得平均。对于关联特征,这意味着他们能够获得更相近的对应系数。还是以Y=X1+X2为例,假设X1和X2具有很强的关联,如果用L1正则化,不论学到的模型是Y=X1+X2还是Y=2X1,惩罚都是一样的,都是2alpha。但是对于L2来说,第一个模型的惩罚项是2alpha,但第二个模型的是4*alpha。可以看出,系数之和为常数时,各系数相等时惩罚是最小的,所以才有了L2会让各个系数趋于相同的特点。

可以看出,L2正则化对于特征选择来说一种稳定的模型,不像L1正则化那样,系数会因为细微的数据变化而波动。所以L2正则化和L1正则化提供的价值是不同的,L2正则化对于特征理解来说更加有用:表示能力强的特征对应的系数是非零。

因此,一句话总结就是:L1会趋向于产生少量的特征,而其他的特征都是0,而L2会选择更多的特征,这些特征都会接近于0。Lasso在特征选择时候非常有用,而Ridge就只是一种规则化而已。

4、你正在使用带有 L1 正则化的 logistic 回归做二分类,其中 C 是正则化参数,w1 和 w2 是 x1 和 x2 的系数。当你把 C 值从 0 增加至非常大的值时,下面哪个选项是正确的?
A 第一个 w2 成了 0,接着 w1 也成了 0
B 第一个 w1 成了 0,接着 w2 也成了 0
C w1 和 w2 同时成了 0
D 即使在 C 成为大值之后,w1 和 w2 都不能成 0

答案:C
解析:L1正则化的函数如下图,所以w1和w2可以为0。同时w1和w2是对称的,不会导致一个为0另一个不为0的状态。

5、如果在一个高度非线性并且复杂的一些变量中, 一个树模型可能比一般的回归模型效果更好. 这是()
A 对的
B 错的

答案:A

6、在Logistic Regression 中,如果同时加入L1和L2范数,不会产生什么效果()
A 以做特征选择,并在一定程度上防止过拟合
B 能解决维度灾难问题
C 能加快计算速度
D 可以获得更准确的结果

答案:D
解析
在代价函数后面加上正则项,L1即是Losso回归,L2是岭回归。L1范数是指向量中各个元素绝对值之和,用于特征选择。L2范数 是指向量各元素的平方和然后求平方根,用于 防止过拟合,提升模型的泛化能力。

L1范数具有系数解的特性,但是要注意的是,L1没有选到的特征不代表不重要,原因是两个高相关性的特征可能只保留一个。如果需要确定哪个特征重要,再通过交叉验证。它的优良性质是能产生稀疏性,导致 W 中许多项变成零。 稀疏的解除了计算量上的好处之外,更重要的是更具有“可解释性”。所以能加快计算速度和缓解维数灾难.

7、对数几率回归(logistics regression)和一般回归分析有什么区别?
A 对数几率回归是设计用来预测事件可能性的
B 对数几率回归可以用来度量模型拟合程度
C 对数几率回归可以用来估计回归系数
D 以上所有

答案:D
解析
A: 对数几率回归其实是设计用来解决分类问题的
B: 对数几率回归可以用来检验模型对数据的拟合度
C: 虽然对数几率回归是用来解决分类问题的,但是模型建立好后,就可以根据独立的特征,估计相关的回归系数。就我认为,这只是估计回归系数,不能直接用来做回归模型。

8、回归模型中存在多重共线性, 你如何解决这个问题?
1 去除这两个共线性变量
2 我们可以先去除一个共线性变量
3 计算VIF(方差膨胀因子), 采取相应措施
4 为了避免损失信息, 我们可以使用一些正则化方法, 比如, 岭回归和lasso回归
A 1
B 2
C 2和3
D 2, 3和4

答案:D
解析:解决多重公线性, 可以使用相关矩阵去去除相关性高于75%的变量 (有主观成分). 也可以VIF, 如果VIF值<=4说明相关性不是很高, VIF值>=10说明相关性较高.
我们也可以用 岭回归和lasso回归的带有惩罚正则项的方法. 我们也可以在一些变量上加随机噪声, 使得变量之间变得不同, 但是这个方法要小心使用, 可能会影响预测效果。

9、给线性回归模型添加一个不重要的特征可能会造成?
A 增加 R-square
B 减少 R-square

答案:A
解析:在给特征空间添加了一个特征后,不论特征是重要还是不重要,R-square 通常会增加。
R-square定义如下:

在给特征空间添加了一个特征后,分子会增加一个残差平方项, 分母会增加一个均值差平方项, 前者一般小于后者, 所以不论特征是重要还是不重要,R-square 通常会增加

10、对于线性回归模型,包括附加变量在内,以下的可能正确的是 :

  1. R-Squared 和 Adjusted R-squared都是递增的
  2. R-Squared 是常量的,Adjusted R-squared是递增的
  3. R-Squared 是递减的, Adjusted R-squared 也是递减的
  4. R-Squared 是递减的, Adjusted R-squared是递增的
    A 1 和 2
    B 1 和 3
    C 2 和 4
    D 以上都不是

答案:D
解析:R-squared不能决定系数估计和预测偏差,这就是为什么我们要估计残差图。但是,R-squared有R-squared 和 predicted R-squared 所没有的问题。
每次你为模型加入预测器,R-squared递增或不变.

11、线性回归的基本假设不包括哪个?
A 随机误差项是一个期望值为0的随机变量
B 对于解释变量的所有观测值,随机误差项有相同的方差
C 随机误差项彼此相关
D 解释变量是确定性变量不是随机变量,与随机误差项之间相互独立
E 随机误差项服从正态分布

答案:C

8、一监狱人脸识别准入系统用来识别待进入人员的身份,此系统一共包括识别4种不同的人员:狱警,小偷,送餐员,其他。下面哪种学习方法最适合此种应用需求:
A 二分类问题
B 多分类问题
C 层次聚类问题
D k-中心点聚类问题
E 回归问题
F 结构分析问题

答案:B
解析:二分类:每个分类器只能把样本分为两类。监狱里的样本分别为狱警、小偷、送餐员、其他。二分类肯 定行不通。瓦普尼克95年提出来基础的支持向量机就是个二分类的分类器,这个分类器学习过 程就是解一个基于正负二分类推导而来的一个最优规划问题(对偶问题),要解决多分类问题 就要用决策树把二分类的分类器级联,VC维的概念就是说的这事的复杂度。
层次聚类: 创建一个层次等级以分解给定的数据集。监狱里的对象分别是狱警、小偷、送餐员、或者其 他,他们等级应该是平等的,所以不行。此方法分为自上而下(分解)和自下而上(合并)两种操作方式。
K-中心点聚类:挑选实际对象来代表簇,每个簇使用一个代表对象。它是围绕中心点划分的一种规则,所以这里并不合适。
回归分析:处理变量之间具有相关性的一种统计方法,这里的狱警、小偷、送餐员、其他之间并没有什 么直接关系。
结构分析: 结构分析法是在统计分组的基础上,计算各组成部分所占比重,进而分析某一总体现象的内部结构特征、总体的性质、总体内部结构依时间推移而表现出的变化规律性的统计方法。结构分析法的基本表现形式,就是计算结构指标。这里也行不通。
多分类问题: 针对不同的属性训练几个不同的弱分类器,然后将它们集成为一个强分类器。这里狱警、 小偷、送餐员 以及他某某,分别根据他们的特点设定依据,然后进行区分识别。

贝叶斯 NB

1、Nave Bayes(朴素贝叶斯)是一种特殊的Bayes分类器,特征变量是X,类别标签是C,它的一个假定是()
A 各类别的先验概率P(C)是相等的
B 以0为均值,sqr(2)/2为标准差的正态分布
C 特征变量X的各个维度是类别条件独立随机变量
D P(X|C)是高斯分布

答案:C
解析:朴素贝叶斯的基本假设就是每个变量相互独立。

7、假定某同学使用Naive Bayesian(NB)分类模型时,不小心将训练数据的两个维度搞重复了,那么关于NB的说法中不正确的是?
A 模型效果相比无重复特征的情况下精确度会降低
B 如果所有特征都被重复一遍,得到的模型预测结果相对于不重复的情况下的模型预测结果一样
C 当两列特征高度相关时,无法用两列特征相同时所得到的结论来分析问题

答案:B
解析:朴素贝叶斯的条件就是每个变量相互独立。在贝叶斯理论系统中,都有一个重要的条件独立性假设:假设所有特征之间相互独立,这样才能将联合概率拆分。
此外,若高度相关的特征在模型中引入两次, 这样增加了这一特征的重要性, 则它的性能因数据包含高度相关的特征而下降。正确做法是评估特征的相关矩阵,并移除那些高度相关的特征。

7、符号集 a 、 b 、 c 、 d ,它们相互独立,相应概率为 1/2 、 1/4 、 1/8/ 、 1/16 ,其中包含信息量最小的符号是( )
A a
B b
C c
D d

答案:A
解析因为消息出现的概率越小,则消息中所包含的信息量就越大。因此选a,同理d信息量最大。


HMM

9、隐马尔可夫模型三个基本问题以及相应的算法说法错误的是( )
A 评估—前向后向算法
B 解码—维特比算法
C 学习—Baum-Welch算法
D 学习—前向后向算法

答案:D
解析
评估问题,可以使用前向算法、后向算法、前向后向算法。

9、解决隐马模型中预测问题的算法是
A 前向算法
B 后向算法
C Baum-Welch算法
D 维特比算法

答案:D
解析
@刘炫320,本题题目及解析来源:http://blog.csdn.net/column/details/16442.html
A、B:前向、后向算法解决的是一个评估问题,即给定一个模型,求某特定观测序列的概率,用于评估该序列最匹配的模型。
C:Baum-Welch算法解决的是一个模型训练问题,即参数估计,是一种无监督的训练方法,主要通过EM迭代实现;
D:维特比算法解决的是给定 一个模型和某个特定的输出序列,求最可能产生这个输出的状态序列。如通过海藻变化(输出序列)来观测天气(状态序列),是预测问题,通信中的解码问题。

6、在HMM中,如果已知观察序列和产生观察序列的状态序列,那么可用以下哪种方法直接进行参数估计()
A EM算法
B 维特比算法
C 前向后向算法
D 极大似然估计

答案:D
解析:EM算法: 只有观测序列,无状态序列时来学习模型参数,即Baum-Welch算法
维特比算法: 用动态规划解决HMM的预测问题,不是参数估计
前向后向算法:用来算概率
极大似然估计:即观测序列和相应的状态序列都存在时的监督学习算法,用来估计参数
注意的是在给定观测序列和对应的状态序列估计模型参数,可以利用极大似然发估计。如果给定观测序列,没有对应的状态序列,才用EM,将状态序列看不不可测的隐数据。

5、在HMM中,如果已知观察序列和产生观察序列的状态序列,那么可用以下哪种方法直接进行参数估计()
A EM算法
B 维特比算法
C 前向后向算法
D 极大似然估计

答案:D
解析
EM算法: 只有观测序列,无状态序列时来学习模型参数,即Baum-Welch算法
维特比算法: 用动态规划解决HMM的预测问题,不是参数估计
前向后向算法:用来算概率
极大似然估计:即观测序列和相应的状态序列都存在时的监督学习算法,用来估计参数
注意的是在给定观测序列和对应的状态序列估计模型参数,可以利用极大似然发估计。如果给定观测序列,没有对应的状态序列,才用EM,将状态序列看不不可测的隐数据。

8、请选择下面可以应用隐马尔科夫(HMM)模型的选项
A 基因序列数据集
B 电影浏览数据集
C 股票市场数据集
D 所有以上

答案:D
解析:只要是和时间序列问题有关的 , 都可以试试HMM

6、下列哪个不属于CRF模型对于HMM和MEMM模型的优势( )
A 特征灵活
B 速度快
C 可容纳较多上下文信息
D 全局最优
答案: B
解析:CRF 的优点:特征灵活,可以容纳较多的上下文信息,能够做到全局最优CRF 的缺点:速度慢
CRF没有HMM那样严格的独立性假设条件,因而可以容纳任意的上下文信息。特征设计灵活(与ME一样) ————与HMM比较
同时,由于CRF计算全局最优输出节点的条件概率,它还克服了最大熵马尔可夫模型标记偏置(Label-bias)的缺点。 ­­————与MEMM比较

CRF是在给定需要标记的观察序列的条件下,使用维特比算法,计算整个标记序列的联合概率分布,而不是在给定当前状态条件下,定义下一个状态的状态分布。————与ME比较


SVM

5、假如我们使用非线性可分的SVM目标函数作为最优化对象, 我们怎么保证模型线性可分?
A 设C=1
B 设C=0
C 设C=无穷大
D 以上都不对

答案:C
解析:无穷大保证了所有的线性不可分都是可以忍受的.
最大间距分类只有当参数 C 是非常大的时候才起效,模型会过拟合。

6、训练完SVM模型后, 不是支持向量的那些样本我们可以丢掉, 也可以继续分类
A 正确
B 错误

答案:A
解析:SVM模型中, 真正影响决策边界的是支持向量

4、关于支持向量机SVM,下列说法错误的是()
A L2正则项,作用是最大化分类间隔,使得分类器拥有更强的泛化能力
B Hinge 损失函数,作用是最小化经验分类错误
C 分类间隔为1/||w||,||w||代表向量的模
D 当参数C越小时,分类间隔越大,分类错误越多,趋于欠学习

答案:C
解析:A正确。考虑加入正则化项的原因:想象一个完美的数据集,y>1是正类,y<-1是负类,决策面y=0,加入一个y=-30的正类噪声样本,那么决策面将会变“歪”很多,分类间隔变小,泛化能力减小。加入正则项之后,对噪声样本的容错能力增强,前面提到的例子里面,决策面就会没那么“歪”了,使得分类间隔变大,提高了泛化能力。

Hinge 可以用来解 间距最大化 的问题,最有代表性的就是SVM 问题,详见:https://blog.csdn.net/u010976453/article/details/78488279

10、有两个样本点,第一个点为正样本,它的特征向量是(0,-1);第二个点为负样本,它的特征向量是(2,3),从这两个样本点组成的训练集构建一个线性SVM分类器的分类面方程是( )
A 2x+y=4
B x+2y=5
C x+2y=3
D 2x-y=0

答案:C
解析:这道题简化了,对于两个点来说,最大间隔就是垂直平分线,因此求出垂直平分线即可。斜率是两点连线的斜率的负倒数-1/((-1-3)/(0-2)) = -1/2, 可得y=-(1/2)x + c, 过中点((0+2)/2, (-1+3)/2) = (1, 1), 可得c=3/2, 故选C.

10、关于logit 回归和SVM 不正确的是( ) 和下题矛盾
A Logit回归本质上是一种根据样本对权值进行极大似然估计的方法,而后验概率正比于先验概率和似然函数的乘积。logit仅仅是最大化似然函数,并没有最大化后验概率,更谈不上最小化后验概率。
B Logit回归的输出就是样本属于正类别的几率,可以计算出概率。
C SVM的目标是找到使得训练数据尽可能分开且分类间隔最大的超平面,应该属于结构风险最小化。
D SVM可以通过正则化系数控制模型的复杂度,避免过拟合。

答案:A
解析Logit回归目标函数是最小化后验概率,SVM目标是结构风险最小化,SVM可以有效避免模型过拟合。

9、关于 logit 回归和 SVM 不正确的是()
A Logit回归目标函数是最小化后验概率
B Logit回归可以用于预测事件发生概率的大小
C SVM目标是结构风险最小化
D SVM可以有效避免模型过拟合

答案:A
解析:A. Logit回归本质上是一种根据样本对权值进行极大似然估计的方法,而后验概率正比于先验概率和似然函数的乘积。logit仅仅是最大化似然函数,并没有最大化后验概率,更谈不上最小化后验概率。而最小化后验概率是朴素贝叶斯算法要做的。A错误
B. Logit回归的输出就是样本属于正类别的几率,可以计算出概率,正确
C. SVM的目标是找到使得训练数据尽可能分开且分类间隔最大的超平面,应该属于结构风险最小化。
D. SVM可以通过正则化系数控制模型的复杂度,避免过拟合。

10、下图是同一个SVM模型, 但是使用了不同的径向基核函数的gamma参数, 依次是g1, g2, g3 , 下面大小比较正确的是

A
g1 > g2 > g3
B
g1 = g2 = g3
C
g1 < g2 < g3
D
g1 >= g2 >= g3E. g1 <= g2 <= g3

答案:C
解析
所谓径向基函数 (Radial Basis Function 简称 RBF), 就是某种沿径向对称的标量函数。 通常定义为空间中任一点x到某一中心点xc之间欧氏距离的单调函数 , 可记作 k(||x-xc||), 其作用往往是局部的 , 即当x远离xc时函数取值很小。最常用的径向基函数是高斯核函数 ,形式为 k(||x-xc||)=exp{- ||x-xc||^2/(2σ^2) } 其中xc为核函数中心,σ为函数的宽度参数 , 控制了函数的径向作用范围。由radial basis: exp(-gamma|u-v|^2)可知, gamma越小, 模型越简单, 平滑度越好, 分类边界越不容易过拟合, 所以选C。

8、下列不是SVM核函数的是
A 多项式核函数
B logistic核函数
C 径向基核函数
D Sigmoid核函数

答案: B
解析
SVM核函数包括线性核函数、多项式核函数、径向基核函数、高斯核函数、幂指数核函数、拉普拉斯核函数、ANOVA核函数、二次有理核函数、多元二次核函数、逆多元二次核函数以及Sigmoid核函数.

核函数的定义并不困难,根据泛函的有关理论,只要一种函数 K(xi, xj) 满足Mercer条件,它就对应某一变换空间的内积.对于判断哪些函数是核函数到目前为止也取得了重要的突破,得到Mercer定理和以下常用的核函数类型:
(1)线性核函数
K ( x , x i ) = x ⋅ x i
(2)多项式核
K ( x , x i ) = ( ( x ⋅ x i ) + 1 ) d
(3)径向基核(RBF)
K ( x , x i ) = exp ( − ∥ x − x i ∥ 2 σ 2 )
Gauss径向基函数则是局部性强的核函数,其外推能力随着参数 σ 的增大而减弱。多项式形式的核函数具有良好的全局性质。局部性较差。
(4)傅里叶核
K ( x , x i ) = 1 − q 2 2 ( 1 − 2 q cos ( x − x i ) + q 2 )
(5)样条核
K ( x , x i ) = B 2 n + 1 ( x − x i )
(6)Sigmoid核函数
K ( x , x i ) = tanh ( κ ( x , x i ) − δ )
采用Sigmoid函数作为核函数时,支持向量机实现的就是一种多层感知器神经网络,应用SVM方法,隐含层节点数目(它确定神经网络的结构)、隐含层节点对输入节点的权值都是在设计(训练)的过程中自动确定的。而且支持向量机的理论基础决定了它最终求得的是全局最优值而不是局部最小值,也保证了它对于未知样本的良好泛化能力而不会出现过学习现象。

核函数的选择
在选取核函数解决实际问题时,通常采用的方法有:
一是利用专家的先验知识预先选定核函数;
二是采用Cross-Validation方法,即在进行核函数选取时,分别试用不同的核函数,归纳误差最小的核函数就是最好的核函数.如针对傅立叶核、RBF核,结合信号处理问题中的函数回归问题,通过仿真实验,对比分析了在相同数据条件下,采用傅立叶核的SVM要比采用RBF核的SVM误差小很多.
三是采用由Smits等人提出的混合核函数方法,该方法较之前两者是目前选取核函数的主流方法,也是关于如何构造核函数的又一开创性的工作.将不同的核函数结合起来后会有更好的特性,这是混合核函数方法的基本思想.


决策树、随机森林、提升算法

2、对于信息增益, 决策树分裂节点, 下面说法正确的是()
1 纯度高的节点需要更多的信息去区分
2 信息增益可以用”1比特-熵”获得
3 如果选择一个属性具有许多归类值, 那么这个信息增益是有偏差的
A 1
B 2
C 2和3
D 所有以上

答案:C

3、我们想在大数据集上训练决策树, 为了使用较少时间, 我们可以
A 增加树的深度
B 增加学习率 (learning rate)
C 减少树的深度
D 减少树的数量

答案:C
解析
增加树的深度, 会导致所有节点不断分裂, 直到叶子节点是纯的为止. 所以, 增加深度, 会延长训练时间.
决策树没有学习率参数可以调. (不像集成学习和其它有步长的学习方法)
决策树只有一棵树, 不是随机森林。

4、对于随机森林和GradientBoosting Trees, 下面说法正确的是:
1.在随机森林的单个树中, 树和树之间是有依赖的, 而GradientBoosting Trees中的单个树之间是没有依赖的.
2.这两个模型都使用随机特征子集, 来生成许多单个的树.
3.我们可以并行地生成GradientBoosting Trees单个树, 因为它们之间是没有依赖的, GradientBoosting Trees训练模型的表现总是比随机森林好
A 2
B 1 and 2
C 1 and 3
D 2 and 3

答案:A
解析:1.随机森林是基于bagging的, 而Gradient Boosting trees是基于boosting的, 所有说反了,在随机森林的单个树中, 树和树之间是没有依赖的, 而GradientBoosting Trees中的单个树之间是有依赖关系.
2.这两个模型都使用随机特征子集, 来生成许多单个的树.
所以A是正确的

3、bootstrap数据是什么意思?(提示:考“bootstrap”和“boosting”区别)
A 有放回地从总共M个特征中抽样m个特征
B 无放回地从总共M个特征中抽样m个特征
C 有放回地从总共N个样本中抽样n个样本
D 无放回地从总共N个样本中抽样n个样本

答案:C
解析
boostrap是提鞋自举的意思(武侠小说作者所说的左脚踩右脚腾空而起). 它的过程是对样本(而不是特征)进行有放回的抽样, 抽样次数等同于样本总数. 这个随机抽样过程决定了最终抽样出来的样本, 去除重复之后, 占据原有样本的1/e比例.

5、数据科学家可能会同时使用多个算法(模型)进行预测, 并且最后把这些算法的结果集成起来进行最后的预测(集成学习),以下对集成学习说法正确的是
A 单个模型之间有高相关性
B 单个模型之间有低相关性
C 在集成学习中使用“平均权重”而不是“投票”会比较好
D 单个模型都是用的一个算法

答案:B

2、以下说法中错误的是()
A SVM对噪声(如来自其他分部的噪声样本)具备鲁棒性
B 在adaboost算法中,所有被分错样本的权重更新比例不相同
C boosting和bagging都是组合多个分类器投票的方法,二者都是根据单个分类器的正确率确定其权重
D 给定n个数据点,如果其中一半用于训练,一半用户测试,则训练误差和测试误差之间的差别会随着n的增加而减少的

答案:C
解析
A 软间隔分类器对噪声是有鲁棒性的。
B 请参考http://blog.csdn.net/v_july_v/article/details/40718799
C boosting是根据分类器正确率确定权重,bagging不是。
D 训练集变大会提高模型鲁棒性。

8、下面对集成学习模型中的弱学习者描述错误的是?
A 他们经常不会过拟合
B 他们通常带有高偏差,所以其并不能解决复杂学习问题
C 他们通常会过拟合

答案:C
解析:弱学习者是问题的特定部分。所以他们通常不会过拟合,这也就意味着弱学习者通常拥有低方差和高偏差。

8、下面关于ID3算法中说法错误的是()
A ID3算法要求特征必须离散化
B 信息增益可以用熵,而不是GINI系数来计算
C 选取信息增益最大的特征,作为树的根节点
D ID3算法是一个二叉树模型

答案:D
解析
ID3算法(IterativeDichotomiser3迭代二叉树3代)是一个由RossQuinlan发明的用于决策树的算法。可以归纳为以下几点:
使用所有没有使用的属性并计算与之相关的样本熵值
选取其中熵值最小的属性
生成包含该属性的节点

D3算法对数据的要求:
1)所有属性必须为离散量;
2)所有的训练例的所有属性必须有一个明确的值;
3)相同的因素必须得到相同的结论且训练例必须唯一。


条件熵

1、一个二进制源X发出符号集为{-1,1},经过离散无记忆信道传输,由于信道中噪音的存在,接收端Y收到符号集为{-1,1,0}。已知P(x=-1)=1/4,P(x=1)=3/4,P(y=-1|x=-1)=4/5,P(y=0|x=-1)=1/5,P(y=1|x=1)=3/4,P(y=0|x=1)=1/4,求条件熵H(Y|X)( )
A 0.2375
B 0.3275
C 0.5273
D 0.5372

答案:A
解析
信息熵公式:H(X)= -∑P(x)log(x)
条件熵公式:H(Y|X)= -∑P(y,x)logP(y|x)= -∑P(y|x)P(x)logP(y|x),
将(y=-1,x=-1), (y=0,x=-1), (y=1,x=1), (y=0,x=1)四种情况带入公式求和,
得 H(Y|X)≈-(-0.01938-0.03495-0.07028-0.11289)=0.2375。

9、目标变量在训练集上的 8 个实际值 [0,0,0,1,1,1,1,1],目标变量的熵是多少?
A -(5/8 log(5/8) + 3/8 log(3/8))
B 5/8 log(5/8) + 3/8 log(3/8)
C 3/8 log(5/8) + 5/8 log(3/8)
D 5/8 log(3/8) – 3/8 log(5/8)

答案:A


特征选择

1、下列哪个不属于常用的文本分类的特征选择算法?
A 卡方检验值
B 互信息
C 信息增益
D 主成分分析

答案:D
解析:主成分分析是特征转换算法(特征抽取),而不是特征选择
常采用特征选择方法。常见的六种特征选择方法:
1)DF(Document Frequency) 文档频率
DF:统计特征词出现的文档数量,用来衡量某个特征词的重要性
2)MI(Mutual Information) 互信息法
互信息法用于衡量特征词与文档类别直接的信息量。
如果某个特征词的频率很低,那么互信息得分就会很大,因此互信息法倾向”低频”的特征词。
相对的词频很高的词,得分就会变低,如果这词携带了很高的信息量,互信息法就会变得低效。
3)(Information Gain) 信息增益法
通过某个特征词的缺失与存在的两种情况下,语料中前后信息的增加,衡量某个特征词的重要性。
4)CHI(Chi-square) 卡方检验法
利用了统计学中的”假设检验”的基本思想:首先假设特征词与类别直接是不相关的
如果利用CHI分布计算出的检验值偏离阈值越大,那么更有信心否定原假设,接受原假设的备则假设:特征词与类别有着很高的关联度。
5)WLLR(Weighted Log Likelihood Ration)加权对数似然
6)WFO(Weighted Frequency and Odds)加权频率和可能性
本题解析来源:http://blog.csdn.net/ztf312/article/details/50890099

1、机器学习中做特征选择时,可能用到的方法有?
A 卡方
B 信息增益
C 平均互信息
D 期望交叉熵
E 以上都有

答案:E


降维

2、为了得到和 SVD 一样的投射(projection),你需要在 PCA 中怎样做?
A 将数据转换成零均值
B 将数据转换成零中位数
C 无法做到

答案:A
解析:当数据有一个 0 均值向量时,PCA 有与 SVD 一样的投射,否则在使用 SVD 之前,你必须将数据均值归 0。

2、下列方法中,不可以用于特征降维的方法包括
A 主成分分析PCA
B 线性判别分析LDA
C 深度学习SparseAutoEncoder
D 矩阵奇异值分解SVD

答案:C

解析:特征降维方法主要有:
PCA,LLE,Isomap
SVD和PCA类似,也可以看成一种降维方法
LDA:线性判别分析,可用于降维
AutoEncoder:AutoEncoder的结构与神经网络的隐含层相同,由输入L1,输出 L2组成,中间则是权重连接。Autoencoder通过L2得到输入的重构L3,最小化L3与L1的差别 进行训练得到权重。在这样的权重参数下,得到的L2可以尽可能的保存L1的信息。
Autoencoder的输出L2的维度由输出的神经元个数决定。当输出维度大于L1时,则需要在训练目标函数中加入sparse 惩罚项,避免L2直接复制L1(权重全为1)。所以称为sparseAutoencoder( Andrew Ng提出的)。
结论:SparseAutoencoder大多数情况下都是升维的,所以称之为特征降维的方法不准确。

4、下列哪些不特别适合用来对高维数据进行降维
A LASSO
B 主成分分析法
C 聚类分析
D 小波分析法
E 线性判别法
F 拉普拉斯特征映射

答案:C
解析
lasso通过参数缩减达到降维的目的;
pca就不用说了
线性鉴别法即LDA通过找到一个空间使得类内距离最小类间距离最大所以可以看做是降维;
小波分析有一些变换的操作降低其他干扰可以看做是降维
拉普拉斯请看这个http://f.dataguru.cn/thread-287243-1-1.html

9、我们建立一个5000个特征, 100万数据的机器学习模型. 我们怎么有效地应对这样的大数据训练 :
A 我们随机抽取一些样本, 在这些少量样本之上训练
B 我们可以试用在线机器学习算法
C 我们应用PCA算法降维, 减少特征数
D B 和 C
E A 和 B
F 以上所有

答案:F
解析:样本数过多, 或者特征数过多, 而不能单机完成训练, 可以用小批量样本训练, 或者在线累计式训练, 或者主成分PCA降维方式减少特征数量再进行训练.

10、我们想要减少数据集中的特征数, 即降维. 选择以下适合的方案 :

  1. 使用前向特征选择方法
  2. 使用后向特征排除方法
  3. 我们先把所有特征都使用, 去训练一个模型, 得到测试集上的表现. 然后我们去掉一个特征, 再去训练, 用交叉验证看看测试集上的表现. 如果表现比原来还要好, 我们可以去除这个特征.
  4. 查看相关性表, 去除相关性最高的一些特征
    A 1 和 2
    B 2, 3和4
    C 1, 2和4
    D All

答案:D
解析
1.前向特征选择方法和后向特征排除方法是我们特征选择的常用方法
2.如果前向特征选择方法和后向特征排除方法在大数据上不适用, 可以用这里第三种方法.
3.用相关性的度量去删除多余特征, 也是一个好方法
所有D是正确的

2、对于PCA(主成分分析)转化过的特征 , 朴素贝叶斯的”不依赖假设”总是成立, 因为所有主要成分是正交的, 这个说法是 :
A 正确的
B 错误的

答案:B
解析:这个说法是错误的, 首先, “不依赖”和”不相关”是两回事, 其次, 转化过的特征, 也可能是相关的

3、对于PCA说法正确的是 :

  1. 我们必须在使用PCA前规范化数据
  2. 我们应该选择使得模型有最大variance的主成分
  3. 我们应该选择使得模型有最小variance的主成分
  4. 我们可以使用PCA在低维度上做数据可视化
    A 1, 2 and 4
    B 2 and 4
    C 3 and 4
    D 1 and 3
    E 1, 3 and 4

答案:A
解析
1)PCA对数据尺度很敏感, 打个比方, 如果单位是从km变为cm, 这样的数据尺度对PCA最后的结果可能很有影响(从不怎么重要的成分变为很重要的成分).
2)我们总是应该选择使得模型有最大variance的主成分
3)有时在低维度上左图是需要PCA的降维帮助的

4、对于下图, 最好的主成分选择是多少 ?

A 7
B 30
C 35
D Can’t Say

答案:B
解析:主成分选择使variance越大越好, 在这个前提下, 主成分越少越好。

10、最出名的降维算法是 PCA 和 t-SNE。将这两个算法分别应用到数据「X」上,并得到数据集「X_projected_PCA」,「X_projected_tSNE」。下面哪一项对「X_projected_PCA」和「X_projected_tSNE」的描述是正确的?
A X_projected_PCA 在最近邻空间能得到解释
B X_projected_tSNE 在最近邻空间能得到解释
C 两个都在最近邻空间能得到解释
D 两个都不能在最近邻空间得到解释

答案:B
解析:t-SNE 算法考虑最近邻点而减少数据维度。所以在使用 t-SNE 之后,所降的维可以在最近邻空间得到解释。但 PCA 不能。


KNN

3、使用k=1的knn算法, 下图二类分类问题, “+” 和 “o” 分别代表两个类, 那么, 用仅拿出一个测试样本的交叉验证方法, 交叉验证的错误率是多少:

A 0%
B 100%
C 0%到100
D 以上都不是

答案: B
解析:knn算法就是, 在样本周围看k个样本, 其中大多数样本的分类是A类, 我们就把这个样本分成A类. 显然, k=1 的knn在上图不是一个好选择, 分类的错误率始终是100%。

9、以下哪个图是KNN算法的训练边界

A B
B A
C D
D C
E 都不是

答案:B
解析KNN算法肯定不是线性的边界, 所以直的边界就不用考虑了。另外这个算法是看周围最近的k个样本的分类用以确定分类,所以边界一定是坑坑洼洼的。

10、一般,k-NN最近邻方法在()的情况下效果较好
A 样本较多但典型性不好
B 样本较少但典型性好
C 样本呈团状分布
D 样本呈链状分布

答案: B(也有选A的),答案待定
解析
K近邻算法主要依靠的是周围的点,因此如果样本过多,那肯定是区分不出来的。因此应当选择B
样本呈团状颇有迷惑性,这里应该指的是整个样本都是呈团状分布,这样kNN就发挥不出其求近邻的优势了,整体样本应该具有典型性好,样本较少,比较适宜。


分类方法

1、以下哪些方法不可以直接来对文本分类?
A Kmeans
B 决策树
C 支持向量机
D KNN

答案:A
解析:Kmeans是聚类方法,典型的无监督学习方法。分类是监督学习方法,BCD都是常见的分类方法。

2、以下( )不属于线性分类器最佳准则?
A 感知准则函数
B 贝叶斯分类
C 支持向量机
D Fisher准则

答案:B
解析:线性分类器有三大类:感知器准则函数、SVM、Fisher准则,而贝叶斯分类器不是线性分类器。
感知准则函数 :准则函数以使错分类样本到分界面距离之和最小为原则。其优点是通过错分类样本提供的信息对分类器函数进行修正,这种准则是人工神经元网络多层感知器的基础。
支持向量机 :基本思想是在两类线性可分条件下,所设计的分类器界面使两类之间的间隔为最大,它的基本出发点是使期望泛化风险尽可能小。(使用核函数可解决非线性问题)
Fisher 准则 :更广泛的称呼是线性判别分析(LDA),将所有样本投影到一条远点出发的直线,使得同类样本距离尽可能小,不同类样本距离尽可能大,具体为最大化“广义瑞利商”。
根据两类样本一般类内密集,类间分离的特点,寻找线性分类器最佳的法线向量方向,使两类样本在该方向上的投影满足类内尽可能密集,类间尽可能分开。这种度量通过类内离散矩阵 Sw 和类间离散矩阵 Sb 实现。

1、下面有关分类算法的准确率,召回率,F1 值的描述,错误的是?
A 准确率是检索出相关文档数与检索出的文档总数的比率,衡量的是检索系统的查准率
B 召回率是指检索出的相关文档数和文档库中所有的相关文档数的比率,衡量的是检索系统的查全率
C 正确率、召回率和 F 值取值都在0和1之间,数值越接近0,查准率或查全率就越高
D 为了解决准确率和召回率冲突问题,引入了F1分数

答案:C
解析:对于二类分类问题常用的评价指标是精准度(precision)与召回率(recall)。通常以关注的类为正类,其他类为负类,分类器在测试数据集上的预测或正确或不正确,4种情况出现的总数分别记作:
TP——将正类预测为正类数
FN——将正类预测为负类数
FP——将负类预测为正类数
TN——将负类预测为负类数
由此:
精准率定义为:P = TP / (TP + FP)
召回率定义为:R = TP / (TP + FN)
F1值定义为: F1 = 2 P R / (P + R)
精准率和召回率和F1取值都在0和1之间,精准率和召回率高,F1值也会高,不存在数值越接近0越高的说法,应该是数值越接近1越高。

3、假设我们要解决一个二类分类问题, 我们已经建立好了模型, 输出是0或1, 初始时设阈值为0.5, 超过0.5概率估计, 就判别为1, 否则就判别为0 ; 如果我们现在用另一个大于0.5的阈值, 那么现在关于模型说法, 正确的是 :
1 模型分类的召回率会降低或不变
2 模型分类的召回率会升高
3 模型分类准确率会升高或不变
4 模型分类准确率会降低
A 1
B 2
C 1和3
D 2和4
E 以上都不是

答案:A
解析
精确率, 准确率和召回率是广泛用于信息检索和统计学分类领域的度量值,用来评价结果的质量。下图可以帮助理解和记忆它们之间的关系, 其中精确率(precision)和准确率(accuracy)都是关于预测效果的描述. 召回率是关于预测样本的描述。
精确率表示的是预测为正的样本中有多少是真正的正样本。那么预测为正就有两种可能了,一种就是把正类预测为正类(TP),另一种就是把负类预测为正类(FP), 也就是P = TP / (TP + FP)。

准确率表示的是预测的正负样本有多少是真实的正和负, 预测正确的数量占全部预测数量的比例, 也就是A = (TP + TN) / (TP + FP + TN + FN) = (TP + TN) / 全部样本。

召回率表示的是样本中的正例有多少被预测正确了。那也有两种可能,一种是把原来的正类预测成正类(TP),另一种就是把原来的正类预测为负类(FN), 也就是R = TP / (TP + FN)。
精确率和召回率二者计算方法其实就是分母不同,一个分母是预测为正的样本数,另一个是原来样本中所有的正样本数。
提高分界阈值大于0.5, 则预测为正的样本数要降低, 相当于把图中圆圈变小, 按下图则可计算

召回率的分子变小分母不变, 所以召回率会变小或不变;
精确率的分子分母同步变化, 所以精确率的变化不能确定;
准确率的分子为圆内绿色加圆外右侧矩形面积所围样本, 两者之和变化不能确定; 分母为矩形所含全部样本不变化, 所以准确率的变化不能确定;
综上, 所以选A。


聚类算法

答案:D
解析:所有都可以用来调试以找到全局最小。

1、模式识别中,不属于马式距离(协方差距离)较之于欧式距离的优点的是( )
A 平移不变性
B 尺度不变性
C 考虑了模式的分布

答案:A
还有一种距离叫做曼哈顿距离

7、以下属于欧式距离特性的有()
A 旋转不变性
B 尺度缩放不变性
C 不受量纲影响的特性

答案:A

2、以下不属于影响聚类算法结果的主要因素有()
A 已知类别的样本质量
B 分类准则
C 特征选取
D 模式相似性测度

答案:A

4、在 k-均值算法中,以下哪个选项可用于获得全局最小?
A 尝试为不同的质心(centroid)初始化运行算法
B 调整迭代的次数
C 找到集群的最佳数量
D 以上所有

3、影响基本K-均值算法的主要因素有()
A 样本输入顺序
B 模式相似性测度
C 聚类准则

答案:B

5、如果以特征向量的相关系数作为模式相似性测度,则影响聚类算法结果的主要因素有( )
A 已知类别样本质量
B 分类准则
C 量纲

答案: B

5、以下对k-means聚类算法解释正确的是
A 能自动识别类的个数,随即挑选初始点为中心点计算
B 能自动识别类的个数,不是随即挑选初始点为中心点计算
C 不能自动识别类的个数,随即挑选初始点为中心点计算
D 不能自动识别类的个数,不是随即挑选初始点为中心点计算

答案:C
解析
(1)适当选择c个类的初始中心;
(2)在第k次迭代中,对任意一个样本,求其到c个中心的距离,将该样本归到距离最短的中心所在的类;
(3)利用均值等方法更新该类的中心值;
(4)对于所有的c个聚类中心,如果利用(2)(3)的迭代法更新后,值保持不变,则迭代结束,否则继续迭代。
以上是KMeans(C均值)算法的具体步骤,可以看出需要选择类别数量,但初次选择是随机的,最终的聚类中心是不断迭代稳定以后的聚类中心。所以答案选C。


其他

4、在统计模式分类问题中,当先验概率未知时,可以使用()
A 最小损失准则
B 最小最大损失准则
C 最小误判概率准则

答案:B

2、以下几种模型方法属于判别式模型(Discriminative Model)的有( )
1)混合高斯模型
2)条件随机场模型
3)区分度训练
4)隐马尔科夫模型
A 2,3
B 3,4
C 1,4
D 1,2

答案:A
解析
常见的判别式模型有:
Logistic regression(logistical 回归)
Linear discriminant analysis(线性判别分析)
Supportvector machines(支持向量机)
Boosting(集成学习)
Conditional random fields(条件随机场)
Linear regression(线性回归)
Neural networks(神经网络)

常见的生成式模型有:
Gaussian mixture model and othertypes of mixture model(高斯混合及其他类型混合模型)
Hidden Markov model(隐马尔可夫)
NaiveBayes(朴素贝叶斯)
AODE(平均单依赖估计)
Latent Dirichlet allocation(LDA主题模型)
Restricted Boltzmann Machine(限制波兹曼机)
生成式模型是根据概率乘出结果,而判别式模型是给出输入,计算出结果。

10、在其他条件不变的前提下,以下哪种做法容易引起机器学习中的过拟合问题?
A 增加训练集量
B 减少神经网络隐藏层节点数
C 删除稀疏的特征
D SVM算法中使用高斯核/RBF核代替线性核

答案:D
解析
一般情况下,越复杂的系统,过拟合的可能性就越高,一般模型相对简单的话泛化能力会更好一点。
B.一般认为,增加隐层数可以降低网络误差(也有文献认为不一定能有效降低),提高精度,但也使网络复杂化,从而增加了网络的训练时间和出现“过拟合”的倾向, svm高斯核函数比线性核函数模型更复杂,容易过拟合
D.径向基(RBF)核函数/高斯核函数的说明,这个核函数可以将原始空间映射到无穷维空间。对于参数 ,如果选的很大,高次特征上的权重实际上衰减得非常快,实际上(数值上近似一下)相当于一个低维的子空间;反过来,如果选得很小,则可以将任意的数据映射为线性可分——当然,这并不一定是好事,因为随之而来的可能是非常严重的过拟合问题。不过,总的来说,通过调整参数 ,高斯核实际上具有相当高的灵活性,也是 使用最广泛的核函数 之一。

4、“过拟合”只在监督学习中出现,在非监督学习中,没有“过拟合”,这是()
A 对的
B 错的

答案: B
解析
我们可以评估无监督学习方法通过无监督学习的指标,如:我们可以评估聚类模型通过调整兰德系数(adjusted rand score)
https://en.wikipedia.org/wiki/Rand_index#Adjusted_Rand_index

8、下面哪个/些超参数的增加可能会造成随机森林数据过拟合?
A 树的数量
B 树的深度
C 学习速率

答案:B
解析:通常情况下,我们增加树的深度有可能会造成模型过拟合。学习速率并不是随机森林的超参数。增加树的数量可能会造成欠拟合。

5、假设你使用 log-loss 函数作为评估标准。下面这些选项,哪些是对作为评估标准的 log-loss 的正确解释。
A 如果一个分类器对不正确的分类很自信,log-loss 会严重的批评它
B 对一个特别的观察而言,分类器为正确的类别分配非常小的概率,然后对 log-loss 的相应分布会非常大
C log-loss 越低,模型越好
D 以上都是

答案:D

6、下面哪个选项中哪一项属于确定性算法?
A PCA
B K-Means
C 以上都不是

答案:A
解析:确定性算法表明在不同运行中,算法输出并不会改变。如果我们再一次运行算法,PCA 会得出相同的结果,而 k-means 不会。
PCA没有需要调试的参数,Kmeans之所以每次的结果不同,因为初始化的点是随机的

7、两个变量的 Pearson 相关性系数为零,但这两个变量的值同样可以相关。这句描述是正确还是错误?
A 正确
B 错误

答案:A
解析Pearson相关系数只能衡量线性相关性,但无法衡量非线性关系。如y=x^2,x和y有很强的非线性关系。

5、下列属于无监督学习的是
A k-means
B SVM
C 最大熵
D CRF

答案:A
解析:A是聚类,属于无监督学习。BC是分类,属于监督学习。至于D是序列化标注,也是有监督学习。

1、在一个n维的空间中, 最好的检测outlier(离群点)的方法是()
A 作正态分布概率图
B 作盒形图
C 马氏距离
D 作散点图

5、对于k折交叉验证, 以下对k的说法正确的是()
A k越大, 不一定越好, 选择大的k会加大评估时间
B 选择更大的k, 就会有更小的bias偏差(因为训练集更加接近总数据集)
C 在选择k时, 要最小化数据集之间的方差
D 以上所有

答案:D
解析:k越大, bias越小, 训练时间越长. 在训练时, 也要考虑数据集间方差差别不大的原则. 比如, 对于二类分类问题, 使用2-折交叉验证, 如果测试集里的数据都是A类的, 而训练集中数据都是B类的, 显然, 测试效果会很差.
高方差,表名数据扰动所造成的影响大,没有排除噪音影响,过拟合
高偏差,说明学习能力弱,不能很好的分类或者回归,欠拟合

7、模型的高bias是什么意思, 我们如何降低它 ?
A 在特征空间中减少特征
B 在特征空间中增加特征
C 增加数据点
D B和C
E 以上所有

答案:B
解析:bias太高说明模型太简单了, 数据维数不够, 无法准确预测数据, 所以, 升维吧 !

2、“点击率问题”是这样一个预测问题, 99%的人是不会点击的, 而1%的人是会点击进去的, 所以这是一个非常不平衡的数据集. 假设, 现在我们已经建了一个模型来分类, 而且有了99%的预测准确率, 我们可以下的结论是
A 模型预测准确率已经很高了, 我们不需要做什么了
B 模型预测准确率不高, 我们需要做点什么改进模型
C 无法下结论
D 以上都不对

答案: B
解析
99%的预测准确率可能说明, 你预测的没有点进去的人很准确 (因为有99%的人是不会点进去的, 这很好预测). 不能说明你的模型对点进去的人预测准确, 所以, 对于这样的非平衡数据集, 我们要把注意力放在小部分的数据上, 即那些点击进去的人.
详细可以参考这篇文章:https://www.analyticsvidhya.com/blog/2016/03/practical-guide-deal-imbalanced-classification-problems/

6、(假设precision=TP/(TP+FP),recall=TP/(TP+FN)。)在二分类问题中,当测试集的正例和负例数量不均衡时,以下评价方案哪个是相对不合理的()
A Accuracy:(TP+TN)/all
B F-value:2recallprecision/(recall+precision)
C G-mean:sqrt(precision*recall)
D AUC:曲线下面积

答案:A
解析:题目提到测试集正例和负例数量不均衡,那么假设正例数量很少占10%,负例数量占大部分90%。
而且算法能正确识别所有负例,但正例只有一半能正确判别。
那么TP=0.05×all,TN=0.9×all,Accuracy=95%。
虽然Accuracy很高,precision是100%,但正例recall只有50%

7、以下哪些算法, 可以用神经网络去构造:

  1. KNN
  2. 线性回归
  3. 对数几率回归
    A 1和 2
    B 2 和 3
    C 1, 2 和 3
    D 以上都不是

答案: B
解析

  1. KNN算法不需要训练参数, 而所有神经网络都需要训练参数, 因此神经网络帮不上忙
  2. 最简单的神经网络, 感知器, 其实就是线性回归的训练
  3. 我们可以用一层的神经网络构造对数几率回归

6、在有监督学习中, 我们如何使用聚类方法?

  1. 我们可以先创建聚类类别, 然后在每个类别上用监督学习分别进行学习
  2. 我们可以使用聚类“类别id”作为一个新的特征项, 然后再用监督学习分别进行学习
  3. 在进行监督学习之前, 我们不能新建聚类类别
  4. 我们不可以使用聚类“类别id”作为一个新的特征项, 然后再用监督学习分别进行学习
    A 2 和 4
    B 1 和 2
    C 3 和 4
    D 1 和 3

答案:B
解析:我们可以为每个聚类构建不同的模型, 提高预测准确率。
“类别id”作为一个特征项去训练, 可以有效地总结了数据特征。

7、以下说法正确的是

  1. 一个机器学习模型,如果有较高准确率,总是说明这个分类器是好的
  2. 如果增加模型复杂度, 那么模型的测试错误率总是会降低
  3. 如果增加模型复杂度, 那么模型的训练错误率总是会降低
  4. 我们不可以使用聚类“类别id”作为一个新的特征项, 然后再用监督学习分别进行学习
    A 1
    B 2
    C 3
    D 1 and 3

答案:C
解析
1的模型中, 如果负样本占比非常大,也会有很高的准确率, 对正样本的分类不一定很好;
2,3的模型中, 增加复杂度则对训练集, 而不是测试集, 有过拟合, 所以训练错误率总会降低;
4的模型中, “类别id”可以作为一个特征项去训练, 这样会有效地总结了数据特征。

8、对应GradientBoosting tree算法, 以下说法正确的是:

  1. 当增加最小样本分裂个数,我们可以抵制过拟合
  2. 当增加最小样本分裂个数,会导致过拟合
  3. 当我们减少训练单个学习器的样本个数,我们可以降低variance
  4. 当我们减少训练单个学习器的样本个数,我们可以降低bias
    A 2 和 4
    B 2 和 3
    C 1 和 3
    D 1 和 4

答案:C
解析:最小样本分裂个数是用来控制“过拟合”参数。太高的值会导致“欠拟合”,这个参数应该用交叉验证来调节。
第二点是靠bias和variance概念的。

10、如果一个训练好的模型在测试集上有100%的准确率, 这是不是意味着在一个新的数据集上,也会有同样好的表现?
A 是的,这说明这个模型的范化能力已经足以支持新的数据集合了
B 不对,依然后其他因素模型没有考虑到,比如噪音数据

答案:B
解析:没有一个模型是可以总是适应新数据的。我们不可能可到100%准确率。

2、变量选择是用来选择最好的判别器子集, 如果要考虑模型效率,我们应该做哪些变量选择的考虑?

  1. 多个变量其实有相同的用处
  2. 变量对于模型的解释有多大作用
  3. 特征携带的信息
  4. 交叉验证
    A 1 和 4
    B 1, 2 和 3
    C 1,3 和 4
    D 以上所有

答案:C
解析:注意, 这题的题眼是考虑模型效率,所以不要考虑选项2.

4、对于下面三个模型的训练情况, 下面说法正确的是:

  1. 第一张图的训练错误与其余两张图相比,是最大的
  2. 最后一张图的训练效果最好,因为训练错误最小
  3. 第二张图比第一和第三张图鲁棒性更强,是三个里面表现最好的模型
  4. 第三张图相对前两张图过拟合了
  5. 三个图表现一样,因为我们还没有测试数据集
    A 1 和 3
    B 1 和 3
    C 1, 3 和 4
    D 5

答案:C
解析:最后一张过拟合, 训练错误最小, 第一张相反, 训练错误就是最大了. 所以1是对的;
仅仅训练错误最小往往说明过拟合, 所以2错, 4对;
第二张图平衡了拟合和过拟合, 所以3对;

9、下面哪个/些选项对 K 折交叉验证的描述是正确的?
1.增大 K 将导致交叉验证结果时需要更多的时间
2.更大的 K 值相比于小 K 值将对交叉验证结构有更高的信心
3.如果 K=N,那么其称为留一交叉验证,其中 N 为验证集中的样本数量
A 1 和 2
B 2 和 3
C 1 和 3
D 1、2 和 3

答案:D
解析:大 K 值意味着对过高估计真实预期误差(训练的折数将更接近于整个验证集样本数)拥有更小的偏差和更多的运行时间(并随着越来越接近极限情况:留一交叉验证)。我们同样在选择 K 值时需要考虑 K 折准确度和方差间的均衡。

1、给定三个变量 X,Y,Z。(X, Y)、(Y, Z) 和 (X, Z) 的 Pearson 相关性系数分别为 C1、C2 和 C3。现在 X 的所有值加 2(即 X+2),Y 的全部值减 2(即 Y-2),Z 保持不变。那么运算之后的 (X, Y)、(Y, Z) 和 (X, Z) 相关性系数分别为 D1、D2 和 D3。现在试问 D1、D2、D3 和 C1、C2、C3 之间的关系是什么?
A D1= C1, D2 < C2, D3 > C3
B D1 = C1, D2 > C2, D3 > C3
C D1 = C1, D2 > C2, D3 < C3
D D1 = C1, D2 < C2, D3 < C3
E D1 = C1, D2 = C2, D3 = C3

答案:E
解析特征之间的相关性系数不会因为特征加或减去一个数而改变。

3、假设我们有一个数据集,在一个深度为 6 的决策树的帮助下,它可以使用 100% 的精确度被训练。现在考虑一下两点,并基于这两点选择正确的选项。
注意:所有其他超参数是相同的,所有其他因子不受影响。
1.深度为 4 时将有高偏差和低方差
2.深度为 4 时将有低偏差和低方差
A 只有 1
B 只有 2
C 1 和 2
D 没有一个

答案:A
解析:如果在这样的数据中你拟合深度为 4 的决策树,这意味着其更有可能与数据欠拟合。因此,在欠拟合的情况下,你将获得高偏差和低方差。

4、在以下不同的场景中,使用的分析方法不正确的有
A 根据商家最近一年的经营及服务数据,用聚类算法判断出天猫商家在各自主营类目下所属的商家层级
B 根据商家近几年的成交数据,用聚类算法拟合出用户未来一个月可能的消费金额公式
C 用关联规则算法分析出购买了汽车坐垫的买家,是否适合推荐汽车脚垫
D 根据用户最近购买的商品信息,用决策树算法识别出淘宝买家可能是男还是女

答案:B
解析:预测消费更合适的算法是用回归模型来做。而不是聚类算法。

10、在大规模的语料中,挖掘词的相关性是一个重要的问题。以下哪一个信息不能用于确定两个词的相关性。
A 互信息
B 最大熵
C 卡方检验
D 最大似然比

答案:B
解析:最大熵代表了整体分布的信息,通常具有最大熵的分布作为该随机变量的分布,不能体现两个词的相关性,但是卡方是检验两类事务发生的相关性。所以选B【正解】

1、基于统计的分词方法为()
A 正向最大匹配法
B 逆向最大匹配法
C 最少切分
D 条件随机场

答案:D
解析:第一类是基于语法和规则的分词法。其基本思想就是在分词的同时进行句法、语义分析,利用句法信息和语义信息来进行词性标注,以解决分词歧义现象。因为现有的语法知识、句法规则十分笼统、复杂,基于语法和规则的分词法所能达到的精确度远远还不能令人满意,目前这种分词系统还处在试验阶段。

第二类是机械式分词法(即基于词典)。机械分词的原理是将文档中的字符串与词典中的词条进行逐一匹配,如果词典中找到某个字符串,则匹配成功,可以切分,否则不予切分。基于词典的机械分词法,实现简单,实用性强,但机械分词法的最大的缺点就是词典的完备性不能得到保证。据统计,用一个含有70000个词的词典去切分含有15000个词的语料库,仍然有30%以上的词条没有被分出来,也就是说有4500个词没有在词典中登录。

第三类是基于统计的方法。基于统计的分词法的基本原理是根据字符串在语料库中出现的统计频率来决定其是否构成词。词是字的组合,相邻的字同时出现的次数越多,就越有可能构成一个词。因此字与字相邻共现的频率或概率能够较好的反映它们成为词的可信度。

2、在下面的图像中,哪一个是多元共线(multi-collinear)特征?

A 图 1 中的特征
B 图 2 中的特征
C 图 3 中的特征
D 图 1、2 中的特征
E 图 2、3 中的特征
F 图 1、3 中的特征

答案:D
解析:在图 1 中,特征之间有高度正相关,图 2 中特征有高度负相关。所以这两个图的特征是多元共线特征。


陌生的知识点

6、关于 ARMA 、 AR 、 MA 模型的功率谱,下列说法正确的是( )
A MA模型是同一个全通滤波器产生的
B MA模型在极点接近单位圆时,MA谱是一个深谷
C AR模型在零点接近单位圆时,AR谱是一个尖峰
D RMA谱既有尖峰又有深谷

答案:D

4、下列哪个不属于CRF(conditional random field algorithm条件随机场算法)模型对于HMM和MEMM模型的优势
A 特征灵活
B 速度快
C 可容纳较多上下文信息
D 全局最优

答案:B
解析:HMM模型是对转移概率和表现概率直接建模,统计共现概率。而MEMM模型是对转移概率和表现概率建立联合概率,统计时统计的是条件概率。CRF是在给定需要标记的观察序列的条件下,计算整个标记序列的联合概率分布,而不是在给定当前状态条件下,定义下一个状态的状态分布。MEMM容易陷入局部最优,是因为MEMM只在局部做归一化。CRF模型中,统计了全局概率,在做归一化时,考虑了数据在全局的分布,而不是仅仅在局部归一化,这样就解决了MEMM中的标记偏置的问题。

CRF没有HMM那样严格的独立性假设条件,因而可以容纳任意的上下文信息,特征设计灵活。CRF需要训练的参数更多,与MEMM和HMM相比,它存在训练代价大、复杂度高的缺点。

9、已知一组数据的协方差矩阵P,下面关于主分量说法错误的是()
A 主分量分析的最佳准则是对一组数据进行按一组正交基分解, 在只取相同数量分量的条件下,以均方误差计算截尾误差最小
B 在经主分量分解后,协方差矩阵成为对角矩阵
C 主分量分析就是K-L变换
D 主分量是通过求协方差矩阵的特征值得到

答案:C
解析:K-L变换与PCA变换是不同的概念,PCA的变换矩阵是协方差矩阵,K-L变换的变换矩阵可以有很多种(二阶矩阵、协方差矩阵、总类内离散度矩阵等等)。当K-L变换矩阵为协方差矩阵时,等同于PCA。

8、位势函数法的积累势函数K(x)的作用相当于Bayes判决中的()
A 后验概率
B 先验概率
C 类概率密度
D 类概率密度与先验概率的和

答案:A
解析
具体的,势函数详解请看——《势函数法》。

7、以下哪个是常见的时间序列算法模型
A RSI
B MACD
C ARMA
D KDJ

答案:C
解析:自回归滑动平均模型(ARMA)
其建模思想可概括为:逐渐增加模型的阶数,拟合较高阶模型,直到再增加模型的阶数而剩余残差方差不再显著减小为止。

其他三项都不是一个层次的。
A.相对强弱指数 (RSI, Relative Strength Index) 是通过比较一段时期内的平均收盘涨数和平均收盘跌数来分析市场买沽盘的意向和实力 , 从而作出未来市场的走势 .
B.移动平均聚散指标 (MACD, Moving Average Convergence Divergence), 是根据均线的构造原理 , 对股票价格的收盘价进行平滑处理 , 求出算术平均值以后再进行计算 , 是一种趋向类指标 .
D. 随机指标 (KDJ) 一般是根据统计学的原理 , 通过一个特定的周期 ( 常为 9 日 ,9 周等 ) 内出现过的最高价 , 最低价及最后一个计算周期的收盘价及这三者之间的比例关系 , 来计算最后一个计算周期的未成熟随机值 RSV, 然后根据平滑移动平均线的方法来计算 K 值 , D 值与 J 值 , 并绘成曲线图来研判股票走势 .

1、下列时间序列模型中,哪一个模型可以较好地拟合波动性的分析和预测。
A AR模型
B MA模型
C ARMA模型
D GARCH模型

答案:D
解析
AR模型是一种线性预测,即已知N个数据,可由模型推出第N点前面或后面的数据(设推出P点),所以其本质类似于插值。
MA模型(moving average model)滑动平均模型,其中使用趋势移动平均法建立直线趋势的预测模型。
ARMA模型(auto regressive moving average model)自回归滑动平均模型,模型参量法高分辨率谱分析方法之一。这种方法是研究平稳随机过程有理谱的典型方法。它比AR模型法与MA模型法有较精确的谱估计及较优良的谱分辨率性能,但其参数估算比较繁琐。
GARCH模型称为广义ARCH模型,是ARCH模型的拓展,由Bollerslev(1986)发展起来的。它是ARCH模型的推广。GARCH(p,0)模型,相当于ARCH(p)模型。GARCH模型是一个专门针对金融数据所量体订做的回归模型,除去和普通回归模型相同的之处,GARCH对误差的方差进行了进一步的建模。特别适用于波动性的分析和预测,这样的分析对投资者的决策能起到非常重要的指导性作用,其意义很多时候超过了对数值本身的分析和预测。

2、Fisher线性判别函数的求解过程是将M维特征矢量投影在( )中进行求解。
A M-1维空间
B 一维空间
C 三维空间
D 二维空间

答案:B
解析:Fisher线性判别函数是将多维空间中的特征矢量投影到一条直线上,也就是把维数压缩到一维。寻找这条最优直线的准则是Fisher准则:两类样本在一维空间的投影满足类内尽可能密集,类间尽可能分开,也就是投影后两类样本均值之差尽可能大,类内部方差尽可能小。一般而言,对于数据分布近似高斯分布的情况,Fisher线性判别准则能够得到很好的分类效果。

3、类域界面方程法中,不能求线性不可分情况下分类问题近似或精确解的方法是( )
A 势函数法
B 基于二次准则的H-K算法
C 伪逆法
D 感知器算法

答案:D
解析:线性分类器的设计就是利用训练样本集建立线性判别函数式,也就是寻找最优的权向量的过程。求解权重的过程就是训练过程,训练方法的共同点是,先给出准则函数,再寻找是准则函数趋于极值的优化方法。ABC方法都可以得到线性不可分情况下分类问题近似解。感知器可以解决线性可分的问题,但当样本线性不可分时,感知器算法不会收敛。

吴恩达2014机器学习教程笔记目录

17年开始,网上的机器学习教程逐渐增多,国内我所了解的就有网易云课堂、七月、小象学院和北风。他们的课程侧重点各有不同,有些侧重理论,有些侧重实践,结合起来学习事半功倍。但是论经典,还是首推吴恩达的机器学习课程。

吴大大14年在coursera的课程通俗易懂、短小精悍,在讲解知识点的同时,还会穿插相关领域的最新动态,并向你推荐相关论文。课程10周共18节课,每个课程都有PPT和课后习题,当然,也有中文字幕。

百度网盘(视频 + 英文字幕 + 中文字幕 + 练习 + PPT):
链接:https://pan.baidu.com/s/1ggWjzFH 密码:bk1g

查看更多

在Hexo中渲染MathJax数学公式

最近学机器学习涉及很多的数学公式,公式如果用截图显示,会比较low而且不方便。因此需要对Hexo做些配置,支持公式渲染。同时文末整理了各种公式的书写心得,比如矩阵、大小括号、手动编号、上下角标和多行对其等,有兴趣的可以看看。


通过hexo-math插件安装MathJax

有个插件hexo-math,可以给Hexo博客添加MathJax公式支持,GitHub地址 https://github.com/hexojs/hexo-math

安装方法可其他hexo插件一样,在博客根目录执行npm install hexo-math –save安装,配置见GitHub说明页,这里我没有通过这种方式安装,而是直接在主题配置中添加MathJax的js来安装的。


在主题中手动添加js安装MathJax

类似所有第三方js插件,js加载方式有两种:

  • 第一种,通过连接CDN加载js代码。好处是省了本地配置js代码,并且每次加载都是最新的,缺点是一旦连接的CDN出问题,可能卡住页面的js加载。
  • 第二种,将js代码下载下来,放到主题的js文件夹中,通过本地相对目录加载。优缺点和第一种方法正相反。

这里我选择通过CDN加载,因为把代码下载下来后发现有好多js,搞不清楚其中的引用关系,还是直接用官方给出的通过CDN加载的简便方法吧:Getting Started with MathJax

查看更多

Redis开启AOF导致的删库事件

事件背景

Redis主从开启AOF,错误操作导致数据被清空。
Redis主要作用:缓存、队列。

事故过程

Redis搭建了主从,持久化方式为RDB,RDB没有定时备份,且AOF都没有开启。
考虑到开启AOF会使Redis安全性更高,所以尝试先在从机做测试,没问题后再上主机。

Redis开启AOF的方式非常简单,打开Redis的conf文件,找到【appendonly】配置项,将【no】改为【yes】重启服务即可。

Redis从机重启后,成功在数据目录生成了百M以上的【appendonly.aof】文件,以该aof文件单独启动Redis实例,生成的数据和单独以RDB文件启动生成的数据一样,因此判断从机AOF配置成功。

接着直接上了主机,Redis主机以同样的方式配置AOF后,结果实例重启的瞬间,Redis主从数据被清空,主从AOF及RDB文件大小接近0M。


查看更多

从表扩展增加列属性说起

需求背景

产品第一版,用户有用户名、密码、昵称等三个属性,对应表设计:
user(uid, name, passwd, nick)
产品第二版,产品经理增加了年龄,性别两个属性,表结构可能要变成:
user(uid, name, passwd, nick, age, sex)

讨论问题域
1)数据量大、并发量高场景,在线数据库属性扩展
2)数据库表结构扩展性设计


哪些方案一定不行

1、alter table add column
要坚持这个方案的,也不多解释了,大数据高并发情况下,一定不可行

2、通过增加表的方式扩展,通过外键join来查询
大数据高并发情况下,join性能较差,一定不可行

查看更多

Linux服务器性能检测命令集锦

uptime

1
2
$ uptime
23:51:26 up 21:31, 1 user, load average: 30.02, 26.43, 19.02

这个命令可以快速查看机器的负载情况。在Linux系统中,这些数据表示等待CPU资源的进程和阻塞在不可中断IO进程(进程状态为D)的数量。这些数据可以让我们对系统资源使用有一个宏观的了解。

命令的输出分别表示1分钟、5分钟、15分钟的平均负载情况。通过这三个数据,可以了解服务器负载是在趋于紧张还是区域缓解。如果1分钟平均负载很高,而15分钟平均负载很低,说明服务器正在命令高负载情况,需要进一步排查CPU资源都消耗在了哪里。反之,如果15分钟平均负载很高,1分钟平均负载较低,则有可能是CPU资源紧张时刻已经过去。

上面例子中的输出,可以看见最近1分钟的平均负载非常高,且远高于最近15分钟负载,因此我们需要继续排查当前系统中有什么进程消耗了大量的资源。可以通过下文将会介绍的vmstat、mpstat等命令进一步排查。


dmesg | tail

1
2
3
4
5
6
7
8
$ dmesg | tail
[1880957.563150] perl invoked oom-killer: gfp_mask=0x280da, order=0, oom_score_adj=0
[...]
[18694] 48 31550 101579 3871 0 0 0 服务名称
[...]
[1880957.563400] Out of memory: Kill process 18694 (perl) score 246 or sacrifice child
[1880957.563408] Killed process 18694 (perl) total-vm:1972392kB, anon-rss:1953348kB, file-rss:0kB
[2320864.954447] TCP: Possible SYN flooding on port 7001. Dropping request. Check SNMP counters.

该命令会输出系统日志的最后10行。通过【dmesg | tail -100f】还可以调整看到的日志总行数。
示例中的输出,可以看见一次内核的oom kill和一次TCP丢包。这些日志可以帮助排查性能问题。
比如线上某个服务突然异常,你怀疑是机器内存过高,系统自动杀死了这个服务的进程,那么可以通过系统日志排查。

查看更多