机器学习问题汇总(分类篇)

本篇博文主要介绍机器学习里面常遇到的一些分类相关问题。

  1. 监督学习和无监督学习的区别

监督学习的训练数据拥有标记信息,无监督学习的没有标记信息,分类和回归是监督学习的代表,聚类是无监督学习的代表。

  1. 如果数据有问题,怎么处理

第一种情况是数据存在缺失值,对缺失值的处理方法有:删除、统一值填充、统计值填充、前后向值填充、插值法填充、建模预测填充和具体分析几种方法。
第二种情况是数据存在异常值,可以删除或者修正填补。

  1. 相对熵公式

用于衡量同一个随机变量 X X X的两个分布 p ( x ) p(x) p(x) q ( x ) q(x) q(x)之间的差异, p ( x ) p(x) p(x)常用于描述样本的真实分布, q ( x ) q(x) q(x)用于表示预测的分布。

D K L p ∣ ∣ q ) = ∑ i = 1 n p ( x i ) l o g ( p ( x i ) q ( x i ) ) D_{KL}p||q)=\sum_{i=1}^{n}p(x_i)log(\frac{p(x_i)}{q(x_i)}) DKLpq)=i=1np(xi)log(q(xi)p(xi))

KL散度的值越小表示两个分布越接近。

  1. 交叉熵公式

把KL散度的公式变形,得到:

D K L p ∣ ∣ q ) = ∑ i = 1 n p ( x i ) l o g ( p ( x i ) ) − ∑ i = 1 n p ( x i ) l o g ( q ( x i ) ) = − H ( p ( x ) ) + [ − ∑ i = 1 n p ( x i ) l o g ( q ( x i ) ) ] D_{KL}p||q)=\sum_{i=1}^{n}p(x_i)log(p(x_i))-\sum_{i=1}^np(x_i)log(q(x_i))\\=-H(p(x))+[-\sum_{i=1}^np(x_i)log(q(x_i))] DKLpq)=i=1np(xi)log(p(xi))i=1np(xi)log(q(xi))=H(p(x))+[i=1np(xi)log(q(xi))]

前半部分是 p ( x ) p(x) p(x)的熵,后半部分是交叉熵

H ( p , q ) = − ∑ i = 1 n p ( x i ) l o g ( q ( x i ) ) H(p,q)=-\sum_{i=1}^np(x_i)log(q(x_i)) H(p,q)=i=1np(xi)log(q(xi))

  1. LR的推导,损失函数

s i g m o i d sigmoid sigmoid函数:

σ ( x ) = 1 1 + e − x \sigma(x)=\frac{1}{1+e^{-x}} σ(x)=1+ex1

其图像如下:
机器学习问题汇总(分类篇)_第1张图片
把线性回归的输出作为 s i g m o i d sigmoid sigmoid函数的输入:

σ ( f ( x ) ) = 1 1 + e − w T x \sigma(f(x))=\frac{1}{1+e^{-w^T}x} σ(f(x))=1+ewTx1

损失函数是衡量真实输出和模型输出的差别。
P = P ( y 1 ∣ x 1 ) P ( y 2 ∣ x 2 ) . . . P ( y N ∣ x N ) = ∏ n = 1 N p y n ( 1 − p ) 1 − y n P=P(y_1|x_1)P(y_2|x_2)...P(y_N|x_N)\\=\prod_{n=1}^{N}p^{y_n}{(1-p)^{1-y_n}} P=P(y1x1)P(y2x2)...P(yNxN)=n=1Npyn(1p)1yn

通过两边取对数把连乘变为连加的形式,即:
F ( w ) = l n ( P ) = ∑ n = 1 N ( y n l n ( p ) + ( 1 − y n ) l n ( 1 − p ) ) F(w)=ln(P)=\sum_{n=1}^N(y_nln(p)+(1-y_n)ln(1-p)) F(w)=ln(P)=n=1N(ynln(p)+(1yn)ln(1p))

这里损失函数的值等于事件发生的总概率,希望它越大越好,按照习惯吧,都是最小化损失函数,可以在 F ( w ) F(w) F(w)前面加个负号。

  1. LR和线性回归的区别与联系

都是广义上的线性回归。
线性回归的优化方法是最小二乘法,而LR是似然函数。
线性回归主要是解决回归问题,LR主要是解决分类问题。
线性回归的输出是实数域上的连续值,LR的输出被sigmoid函数映射到(0,1)之间,通过设置阈值转换为分类类别。

  1. 逻辑回归怎么实现多分类

方法一:
把多分类任务拆解成多个二分类任务,利用逻辑回归分类器进行投票求解。有三种拆分策略,OvO、OvR、MvM逻辑回归实现多分类

OvO:转化为多个二分类
OvR:一对其余,一个类别作为正例,其余所有类别作为反例
MvM:将若干个类作为正例,若干个其他类作为反例

方法二:
对传统的逻辑回归模型改造
机器学习问题汇总(分类篇)_第2张图片

  1. 什么是支持向量机

支持向量机SVM就是一种二类分类模型,基本模型是定义在特征空间上的间隔最大的线性分类器,其学习策略就是间隔最大化。
间隔的定义:
机器学习问题汇总(分类篇)_第3张图片
支持向量机的基本型:
机器学习问题汇总(分类篇)_第4张图片

  1. SVM的硬间隔,软间隔表达式

硬间隔表达式:
机器学习问题汇总(分类篇)_第5张图片
当训练数据中有一些特异点,不能满足函数间隔大于等于1的约束条件,引入松弛变量 ξ i ≥ 0 \xi_i\ge0 ξi0,约束条件变为: y i ( w i ∗ x i + b ) ≥ 1 − ξ i y_i(w_i*x_i+b)\ge1-\xi_i yi(wixi+b)1ξi,同时,对每个松弛变量 ξ i \xi_i ξi,支付一个代价 ξ i \xi_i ξi,目标函数变为下面的,这里的 C > 0 C>0 C>0称为惩罚参数,一般由应用问题决定, C C C值越大时对误分类的惩罚增大, C C C值越小时对误分类的惩罚减小。
软间隔表达式:
机器学习问题汇总(分类篇)_第6张图片

  1. SVM使用对偶计算的目的是什么,如何推出来的,手写推导;

9中的SVM基本型是一个凸二次规划问题,可以利用现成的优化计算包求解,但引入对偶问题更容易求解。“引入核函数,进而推广到非线性分类问题。”

9中的每条约束添加拉格朗日乘子 α i > = 0 \alpha_i>=0 αi>=0,该问题的拉格朗日函数可写为:
L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = 1 m α i ( 1 − y i ( w T x i + b ) ) L(w,b,\alpha)=\frac{1}{2}||w||^2+\sum_{i=1}^{m}\alpha_i(1-y_i(w^Tx_i+b)) L(w,b,α)=21w2+i=1mαi(1yi(wTxi+b))

θ i = m a x α i ≥ 0 L ( w , b , α ) \theta_i=max_{\alpha_i\geq0}L(w,b,\alpha) θi=maxαi0L(w,b,α),现在目标就是最小化 θ i \theta_i θi

分别求 L ( w , b , α ) L(w,b,\alpha) L(w,b,α) w w w b b b的偏导:
∂ L ∂ w = w − ∑ i = 1 m α i y i \frac{\partial L}{\partial w}=w-\sum^m_{i=1}\alpha_iy_i wL=wi=1mαiyi
∂ L ∂ b = − ∑ i = 1 m α i y i \frac{\partial L}{\partial b}=-\sum^m_{i=1}\alpha_iy_i bL=i=1mαiyi
令偏导都等于0可得:
w = ∑ i = 1 m α i y i w=\sum^m_{i=1}\alpha_iy_i w=i=1mαiyi
∑ i = 1 m α i y i = 0 \sum^m_{i=1}\alpha_iy_i=0 i=1mαiyi=0

最后代入拉格朗日函数可得:
L ( w , b , α ) = − 1 2 ∑ i m ∑ j m α i α j y i y j x i T x j + ∑ i = 1 m α i L(w,b,\alpha)=-\frac{1}{2}\sum_{i}^{m}\sum_{j}^{m}\alpha_i\alpha_jy_iy_jx_i^Tx_j+\sum^m_{i=1}\alpha_i L(w,b,α)=21imjmαiαjyiyjxiTxj+i=1mαi

所以对偶问题为:
m a x   1 2 ∑ i m ∑ j m α i α j y i y j x i T x j − ∑ i = 1 m α i max\ \frac{1}{2}\sum_{i}^{m}\sum_{j}^{m}\alpha_i\alpha_jy_iy_jx_i^Tx_j-\sum^m_{i=1}\alpha_i max 21imjmαiαjyiyjxiTxji=1mαi

  1. SVM的物理意义是什么

构造一个最优化的超平面,以充分大的确信度对训练数据进行分类,希望对于离超平面最近的点也有足够大的确信度将它们分开。

  1. SVM的损失函数

采用hinge损失时,损失函数为:

1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 m m a x ( 0 , 1 − y i ( w T x i + b ) ) \frac{1}{2}||w||^2+C\sum_{i=1}^{m}max(0,1-y_i(w^Tx_i+b)) 21w2+Ci=1mmax(0,1yi(wTxi+b))

指数损失: l e x p ( z ) = e x p ( − z ) l_{exp}(z)=exp(-z) lexp(z)=exp(z)
对率损失: l l o g ( z ) = l o g ( 1 + e x p ( − z ) ) l_{log}(z)=log(1+exp(-z)) llog(z)=log(1+exp(z))
机器学习问题汇总(分类篇)_第7张图片

  1. SVM核函数的作用、种类

核函数的作用就是把样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。如果原始空间是有限维的,即属性数有限,那么一定存在一个高维特征空间使样本可分。
机器学习问题汇总(分类篇)_第8张图片

  1. SVM中什么时候用线性核什么时候用高斯核?

线性核:主要用于线性可分、特征维数高的情形,参数少,速度快,对于一般数据,分类效果已经很理想。
高斯核:主要用于线性不可分、特征维数比较少的情形,参数多,分类结果非常依赖于参数。

  1. 为什么高斯核能够拟合无穷维度

高斯核函数:
在这里插入图片描述
根据泰勒展开式:
e x = ∑ n = 0 ∞ x n n ! e^x=\sum_{n=0}^{\infty}\frac{x^n}{n!} ex=n=0n!xn

代入上式第三项得:
机器学习问题汇总(分类篇)_第9张图片
映射函数为:
ϕ ( x ) = 1 n ! σ 2 n e x p ( − x 2 2 σ 2 ) x n \phi(x)=\sqrt{\frac{1}{n!\sigma^{2n}}}exp(-\frac{x^2}{2\sigma^2})x^n ϕ(x)=n!σ2n1 exp(2σ2x2)xn

即高斯核函数将输入空间映射到了无穷多维空间。

  1. SVM和全部数据有关还是和局部数据有关

SVM只和分类界限上的支持向量点有关,换而言之只和局部数据有关。

  1. LR和SVM 的区别与联系

都是有监督的分类算法。
LR是参数模型,SVM是非参数模型。
SVM不直接依赖数据分布,LR依赖。
LR的损失函数是交叉熵,而SVM是hinge函数。

  1. 机器学习中的距离计算方法

欧式距离:
d ( x , y ) = ∑ k = 1 n ( x k − y k ) 2 d(x,y)=\sqrt{\sum_{k=1}^n(x_k-y_k)^2} d(x,y)=k=1n(xkyk)2
n n n是维数,而 x k x_k xk y k y_k yk分别是 x x x y y y的第 k k k个属性

闵可夫斯基距离:(欧式距离的推广)
d ( x , y ) = ( ∑ k = 1 n ∣ x k − y k ∣ r ) 1 / r d(x,y)={(\sum_{k=1}^n|x_k-y_k|^r)}^{1/r} d(x,y)=(k=1nxkykr)1/r

r = 1 r=1 r=1时,称为街区距离(或曼哈顿距离, L 1 L_1 L1范数)
r = 2 r=2 r=2时,就是前面介绍的欧式距离(或 L 2 L_2 L2范数)
r → ∞ r\rightarrow\infty r时,称为切比雪夫距离(或 L m a x L_{max} Lmax范数)
d ( x , y ) = l i m r → ∞ ( ∑ k = 1 n ∣ x k − y k ∣ r ) 1 / r = m a x k ( ∣ x k − y k ∣ ) d(x,y)=lim_{r\rightarrow\infty}{(\sum_{k=1}^n|x_k-y_k|^r)}^{1/r}\\=max_k(|x_k-y_k|) d(x,y)=limr(k=1nxkykr)1/r=maxk(xkyk)

杰卡德相似系数(Jaccard):
J ( A , B ) = ∣ A ∩ B ∣ ∣ A ∪ B ∣ J(A,B)=\frac{|A\cap B|}{|A\cup B|} J(A,B)=ABAB

余弦相似度(cosine similarity):
c o s ( θ ) = a T b ∣ a ∣ ∗ ∣ b ∣ cos(\theta)=\frac{a^Tb}{|a|*|b|} cos(θ)=abaTb

Pearson相似系数(是对象之间线性联系的度量):
ρ X Y = c o v ( X , Y ) σ X σ Y = E [ ( X − μ X ) ( Y − u Y ) ] σ X σ Y \rho_{XY}=\frac{cov(X,Y)}{\sigma_X\sigma_Y}\\=\frac{E[(X-\mu_X)(Y-u_Y)]}{\sigma_X\sigma_Y} ρXY=σXσYcov(X,Y)=σXσYE[(XμX)(YuY)]

相对熵(K-L距离):
D ( p ∣ ∣ q ) = ∑ x p ( x ) l o g p ( x ) q ( x ) = E p ( x ) l o g p ( x ) q ( x ) D(p||q)=\sum_xp(x)log\frac{p(x)}{q(x)}\\=E_{p(x)}log\frac{p(x)}{q(x)} D(pq)=xp(x)logq(x)p(x)=Ep(x)logq(x)p(x)

Hellinger距离:
机器学习问题汇总(分类篇)_第10张图片

  1. 训练集中类别不均衡,哪个评价指标最不准确

在数据不均衡时,准确度accuracy这个评价指标最不标准,参考意义不大。

  1. ID3、C4.5和CART三种决策树的区别

ID3算法:信息增益

C4.5算法:信息增益率
特征A对训练数据集D的信息增益比 g R ( D , A ) g_R(D,A) gR(D,A)定义为其信息增益 g ( D , A ) g(D,A) g(D,A)与训练数据集D的经验熵 H ( A ) H(A) H(A)之比:
g R ( D , A ) = g ( D , A ) H ( A ) g_R(D,A)=\frac{g(D,A)}{H(A)} gR(D,A)=H(A)g(D,A)

CART算法:基尼指数
分类问题中,假设有 K K K个类,样本点属于第 K K K类的概率为 p k p_k pk,则概率分布的基尼指数定义为:
G i n i ( p ) = ∑ k = 1 K p k ( 1 − p k ) Gini(p)=\sum_{k=1}^Kp_k(1-p_k) Gini(p)=k=1Kpk(1pk)

对于二类分类问题,若样本点属于第1个类的概率是 p p p,则概率分布的基尼指数为:
G i n i ( p ) = 2 p ( 1 − p ) Gini(p)=2p(1-p) Gini(p)=2p(1p)

对于给定的样本集合 D D D,其基尼指数为:
G i n i ( D ) = 1 − ∑ k = 1 K ( ∣ C k ∣ ∣ D ∣ ) 2 Gini(D)=1-\sum_{k=1}^K(\frac{|C_k|}{|D|})^2 Gini(D)=1k=1K(DCk)2
其中, C k C_k Ck D D D中属于第 k k k类的样本子集, K K K是类的个数。

如果样本集合 D D D根据特征 A A A是否取某一可能值 a a a被分割为 D 1 D_1 D1 D 2 D_2 D2两部分,即:
D 1 = ( x , y ) ∈ D ∣ A ( x ) = a D_1={(x,y)\in D|A(x)=a} D1=(x,y)DA(x)=a D 2 = D − D 1 D_2=D-D_1 D2=DD1

则在特征 A A A的条件下,集合 D D D的基尼指数为:
G i n i ( D , A ) = ∣ D 1 ∣ ∣ D ∣ G i n i ( D 1 ) + ∣ D 2 ∣ ∣ D ∣ G i n i ( D 2 ) Gini(D,A)=\frac{|D_1|}{|D|}Gini(D_1)+\frac{|D_2|}{|D|}Gini(D_2) Gini(D,A)=DD1Gini(D1)+DD2Gini(D2)

基尼指数 G i n i ( D ) Gini(D) Gini(D)表示集合 D D D的不确定性,基尼指数 G i n i ( D , A ) Gini(D,A) Gini(D,A)表示经 A = a A=a A=a分割后集合 D D D的不确定性,基尼指数越大,样本集合的不确定性也就越大。

  1. 朴素贝叶斯基本原理和预测过程

朴素贝叶斯法分类时,对给定的输入 x x x,通过学习到的模型计算后验概率分布 P ( Y = c k ∣ X = x ) P(Y=c_k|X=x) P(Y=ckX=x),将后验概率最大的类作为 x x x的类输出,后验概率计算根据贝叶斯定理进行:
P ( Y = c k ∣ X = x ) = P ( X = x ∣ Y = c k ) P ( Y = c k ) ∑ k P ( X = x ∣ Y = c k ) P ( Y = c k ) P(Y=c_k|X=x)=\frac{P(X=x|Y=c_k)P(Y=c_k)}{\sum_kP(X=x|Y=c_k)P(Y=c_k)} P(Y=ckX=x)=kP(X=xY=ck)P(Y=ck)P(X=xY=ck)P(Y=ck)

由条件独立性假设可得:
y = f ( x ) = a r g m a x c k P ( Y = c k ) ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) ∑ k P ( Y = c k ) ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) y=f(x)=argmax_{c_k}\frac{P(Y=c_k)\prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_k)}{\sum_kP(Y=c_k)\prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_k)} y=f(x)=argmaxckkP(Y=ck)j=1nP(X(j)=x(j)Y=ck)P(Y=ck)j=1nP(X(j)=x(j)Y=ck)
上式中的分母对所有 c k c_k ck都是相同的,所以比较的时候只比较分母即可。
机器学习问题汇总(分类篇)_第11张图片

  1. 朴素贝叶斯(naive Bayes)法的要求

朴素贝叶斯对条件概率分布作了条件独立性的假设。
P ( X = x ∣ Y = c k ) = P ( X ( 1 ) = x ( 1 ) , . . . , X ( n ) = x ( n ) ∣ Y = c k ) = ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)},...,X^{(n)}=x^{(n)}|Y=c_k)\\=\prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_k) P(X=xY=ck)=P(X(1)=x(1),...,X(n)=x(n)Y=ck)=j=1nP(X(j)=x(j)Y=ck)

  1. 分类算法列一下有多少种?应用场景

没有最好的分类器,只有最合适的分类器。
感知机、决策树、逻辑回归、贝叶斯分类器、支持向量机、K近邻、随机森林

决策树应用场景:因为能够生成清晰的树状图,当希望更好的理解数据时可使用决策树

逻辑回归应用场景:需要具有概率意义的输出,LR的参数代表每个特征对输出的二影响,可解释性强。LR的计算量小,存储占用低,可以在大数据场景中使用。LR虽然效果一般,但模型清晰。

贝叶斯分类器应用场景:需要一个比较容易解释,而且不同维度之间相关性较小时,可以高效处理高维数据,但结果不能保证

支持向量机应用场景:在很多数据上表现优秀,可以尝试。

KNN应用场景:需要一个特别容易解释的模型的时候

随机森林应用场景:一种集成方法,能够解决大规模数据集的问题,还可以给变量重要性进行排序,刚拿到数据集不知道用什么方法的时候,也可尝试随机森林。

  1. 生成模型和判别模型基本形式,有哪些?

典型的生成模型有:朴素贝叶斯法和隐马尔可夫模型。
生成模型:
P ( Y ∣ X ) = P ( X , Y ) P ( X ) P(Y|X)=\frac{P(X,Y)}{P(X)} P(YX)=P(X)P(X,Y)

典型的判别模型有:k近邻法、感知机、决策树、逻辑斯蒂回归模型、最大熵模型、支持向量机、提升方法和条件随机场。
判别模型表示给定输入的 X X X产生输出 Y Y Y的生成关系。

本文参考文献:
机器学习算法的应用场景

你可能感兴趣的:(数据分析,机器学习,分类,人工智能)