1.机器学习方法概论
1.1 监督学习关于数据的基本假设是什么?
- X和Y具有联合概率分布,训练数据与测试数据按照联合概率分布P(X,Y)独立同分布产生。
1.2 模型的假设空间是什么?
- 模型属于输入空间到输出空间映射的集合,这个集合就是假设空间,假设空间的确定意味着学习范围的确定。由决策函数或者条件概率表示。
1.3 统计学习三要素
- 方法=模型+策略+算法
1.4 损失函数的定义,有哪些损失函数,风险函数的定义?
- 损失函数是决策函数的做一次预测的错误的度量
- 常用的损失函数有0-1损失,平方损失,绝对值损失,对数似然损失- − l o g P ( Y ∣ X ) -logP(Y|X) −logP(Y∣X)
- 损失函数在样本联合概率分布下的期望叫做风险函数或期望损失。学习的目标就是最小化期望损失。
1.5 经验风险与结构风险是什么?
- 模型关于训练数据集的平均损失叫做经验风险。根据大数定律,当训练集样本量趋于无穷时,经验风险趋于期望风险。当损失函数是对数似然函数时,最小化经验风险等价于极大似然估计。
- 结构风险=经验风险+模型复杂度的正则化项。当损失函数是对数似然函数时,最小化结构风险等价于最大后验概率的估计。
1.6 什么是过拟合?
- 学习时模型的复杂度过高,导致训练误差与测试误差的差别太大。训练误差与测试误差的曲线:\|U。
1.7 模型选择的方法有哪些?
- 正则化。最小化结构风险。
- 交叉验证。随机将数据切分为S个互不相交的子集,利用S-1个子集训练,余下的子集测试,选出平均测试误差最小的模型。
1.8 什么是Hoeffding不等式?
- 设 S n = ∑ i = 1 n X i 是 独 立 随 机 变 量 X i 之 和 , X i ∈ [ a i , b i ] , 则 对 任 意 t > 0 , 以 下 不 等 式 成 立 : P ( S n − E S n ≥ t ) ≤ e x p ( − 2 t 2 ∑ i = 1 n ( b i 2 − a i 2 ) ) P ( E S n − S n ≥ t ) ≤ e x p ( − 2 t 2 ∑ i = 1 n ( b i 2 − a i 2 ) ) 设S_n=\sum_{i=1}^{n}{X_i}是独立随机变量X_i之和,X_i\in[a_i,b_i],\\则对任意t>0,以下不等式成立:\\ P(S_n-ES_n \ge t) \le exp(\frac{-2t^2}{\sum_{i=1}^{n}{(b_i^2-a_i^2)}}) \\ P(ES_n-S_n \ge t) \le exp(\frac{-2t^2}{\sum_{i=1}^{n}{(b_i^2-a_i^2)}}) 设Sn=i=1∑nXi是独立随机变量Xi之和,Xi∈[ai,bi],则对任意t>0,以下不等式成立:P(Sn−ESn≥t)≤exp(∑i=1n(bi2−ai2)−2t2)P(ESn−Sn≥t)≤exp(∑i=1n(bi2−ai2)−2t2)
1.9 什么是泛化能力?泛化能力跟什么有关?
- 泛化能力是学习到的模型对未知数据的预测能力,泛化误差是模型的期望风险。
- (泛化误差的上界)对于二分类问题,假设空间是由有限个函数的集合 F = { f 1 , f 2 , . . . , f d } F=\{f_1,f_2, ...,f_d\} F={f1,f2,...,fd}时,对任意函数 f ∈ F f \in F f∈F,至少以概率 1 − δ 1-\delta 1−δ,以下不等式成立: R ( f ) ≤ R ^ ( f ) + 1 2 N ( log d + log 1 δ ) R(f) \le \hat{R}(f)+\sqrt{\frac{1}{2N}(\log d+\log \frac{1}{\delta})} \\ R(f)≤R^(f)+2N1(logd+logδ1)其中左端是泛化误差,右端是上界,N是训练样本数。
- 训练样本越多,泛化能力越好。假设空间越大,泛化能力越差。
1.10 生成模型与判别模型的区别
- 生成方法由数据学习联合概率分布,然后求出条件概率分布。判别方法直接学习决策函数或者条件概率分布。
- 生成方法学习收敛速度更快,当样本容量增加时,模型更快的收敛于真实模型,当存在隐变量时,只能用生成模型。
- 判别方法往往学习的准确率更高,可以对数据进行特征抽象。
1.11 准确率,精确率,召回率与F1值是什么?
- 准确率是分类器正确分类样本数与总样本数之比。
- 记TP-将正类预测为正类;FN-将正类预测为负类;FP-将负类预测为正类;TN-将负类预测为正类,那么 精 确 率 : P = T P T P + F P 召 回 率 : R = T P T P + F N F 1 值 : 2 F 1 = 1 P + 1 R 精确率:P= \frac {TP}{TP+FP} \\ 召回率:R=\frac {TP}{TP+FN} \\ F1值:\frac{2}{F1}=\frac{1}{P}+\frac{1}{R} 精确率:P=TP+FPTP召回率:R=TP+FNTPF1值:F12=P1+R1一般来说,P与R是一对相互矛盾的量。
1.12 ROC,AUC是什么?
- ROC全称是受试者工作特征,
真 正 例 率 表 示 预 测 的 正 类 中 实 际 正 实 例 占 所 有 正 实 例 的 比 例 T P R = T P T P + F N 假 正 例 率 预 测 的 正 类 中 实 际 负 实 例 占 所 有 负 实 例 的 比 例 F P R = F P T P + F P 真正例率表示预测的正类中实际正实例占所有正实例的比例\\ TPR=\frac{TP}{TP+FN} \\ 假正例率预测的正类中实际负实例占所有负实例的比例 \\ FPR=\frac{FP}{TP+FP} \\ 真正例率表示预测的正类中实际正实例占所有正实例的比例TPR=TP+FNTP假正例率预测的正类中实际负实例占所有负实例的比例FPR=TP+FPFPROC就是TPR-FPR曲线。 - AUC是ROC曲线下的面积。首先AUC值是一个概率值,当你随机挑选一个正样本以及负样本,当前的分类算法根据计算得到的Score值将这个正样本排在负样本前面的概率就是AUC值,AUC值越大,当前分类算法越有可能将正样本排在负样本前面,从而能够更好地分类。
1.13 监督学习的重要问题有哪些?
- 分类,回归,标注
2.感知机
2.1 什么是感知机?(模型,策略,算法)
- 模型:一种线性分类模型 f ( x ) = s i g n ( w ⋅ x + b ) f(x)=sign(w \cdot x+b) f(x)=sign(w⋅x+b)将样本空间的正负样本分离的超平面。
- 策略:误分类点到超平面的总距离 L ( w , b ) = − ∑ x i ∈ M y i ( w ⋅ x i + b ) , 其 中 M 是 误 分 类 样 本 点 的 集 合 。 L(w,b)=-\sum_{x_i \in M}{y_i(w \cdot x_i+b)} ,其中M是误分类样本点的集合。 L(w,b)=−xi∈M∑yi(w⋅xi+b),其中M是误分类样本点的集合。
- 算法:随机梯度下降,一次随机选取一个误分类点使其梯度下降
∇ w L ( w , b ) = − ∑ x i ∈ M y i x i ∇ b L ( w , b ) = − ∑ x i ∈ M y i 随 机 选 取 一 个 误 分 类 点 ( x i , y i ) , 对 w , b 更 新 w ← w + η x i y i b ← b + η y i \nabla_w{L(w,b)}=-\sum_{x_i \in M}{y_ix_i} \\ \nabla_b{L(w,b)}=-\sum_{x_i \in M}{y_i} \\ 随机选取一个误分类点(x_i,y_i),对w,b更新 \\ w \gets w+\eta x_iy_i \\ b \gets b+\eta y_i \\ ∇wL(w,b)=−xi∈M∑yixi∇bL(w,b)=−xi∈M∑yi随机选取一个误分类点(xi,yi),对w,b更新w←w+ηxiyib←b+ηyi采用不同的初值或选取不同的误分类点,感知机的解可以不同。
2.2 感知机学习算法的对偶形式是什么?
- 模型:一种线性分类模型 f ( x ) = s i g n ( ∑ j = 1 N α j y j x j ⋅ x + b ) f(x)=sign(\sum_{j=1}^N{\alpha_jy_jx_j} \cdot x+b) f(x)=sign(j=1∑Nαjyjxj⋅x+b)将样本空间的正负样本分离的超平面。
- 策略:误分类点到超平面的总距离 L ( w , b ) = − ∑ x i ∈ M y i ( ∑ j = 1 N α j y j x j ⋅ x + b ) , 其 中 M 是 误 分 类 样 本 点 的 集 合 。 L(w,b)=-\sum_{x_i \in M}{y_i(\sum_{j=1}^N{\alpha_jy_jx_j} \cdot x+b)} ,其中M是误分类样本点的集合。 L(w,b)=−xi∈M∑yi(j=1∑Nαjyjxj⋅x+b),其中M是误分类样本点的集合。
- 算法:随机梯度下降,一次随机选取一个误分类点使其梯度下降
随 机 选 取 一 个 误 分 类 点 ( x i , y i ) , 对 α i , b 更 新 α i ← α i + η b ← b + η y i 随机选取一个误分类点(x_i,y_i),对\alpha_i,b更新 \\ \alpha_i \gets \alpha_i+\eta \\ b \gets b+\eta y_i \\ 随机选取一个误分类点(xi,yi),对αi,b更新αi←αi+ηb←b+ηyi
3.k近邻法
3.1 什么是k-NN?
给定训练实例点跟输入实例点,首先确定输入实例点的k个最近邻训练实例点,然后利用k个训练实例点的类的多数预测输入实例点的类。模型解释:每个训练样本点对应于特征空间的一个划分,该区域的标记就是该训练点对应的标记。
3.2 什么是k-NN的三要素?
- 距离度量: L p L_p Lp距离的定义, p = 1 ( 曼 哈 顿 距 离 ) , 2 ( 欧 氏 距 离 ) , ∞ ( 最 大 值 距 离 ) p=1(曼哈顿距离),2(欧氏距离),\infty(最大值距离) p=1(曼哈顿距离),2(欧氏距离),∞(最大值距离)
- k值的选择:交叉验证选择k值。k值太小,不够鲁棒,容易过拟合;k值太大,近似误差变大。
- 分类决策:多数表决
3.3 k-NN算法的优缺点?
- 思想简单,理论成熟,既可以用来做分类也可以用来做回归;可用于非线性分类;不需要训练时间;准确度高,对数据没有假设,对outlier不敏感。
- 计算量大;样本不平衡问题;需要大量的内存。
3.4 列举k-NN的实现(kd树)
- kd树的构造:1.构造根节点,根节点包含整个k维空间的实例点;2.选择一维的中位数作为切分点,将父区域划分为左右子区域,将切分点作为树的一个节点;3.重复划分子区域,直到不可划分。
- kd树的搜索:1.从根节点出发,找到包含目标点的叶节点;2.递归向上回溯,若回溯点距离更近,则更新最近点,若检查另一子节点区域与以目标点为中心,当前最短距离为半径的球是否相交,若相交,则向下查找另一子节点区域,若不相交,则继续递归向上;3.直到回退到根节点。
4.朴素贝叶斯
4.1 贝叶斯法是什么?
- 朴素贝叶斯法是典型的生成学习的方法,由训练数据求得联合概率分布 P ( X , Y ) P(X,Y) P(X,Y),然后求得条件概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X)。具体是利用训练数据学习 P ( Y ) P(Y) P(Y)和 P ( X ∣ Y ) P(X|Y) P(X∣Y)的估计,得到联合概率分布。
4.2 朴素贝叶斯法的基本假设是什么?
- 条件独立性: P ( X ∣ Y ) = P ( x 1 , x 2 , . . . , x n ∣ Y ) = ∏ i = 1 n P ( x i ∣ Y ) P(X|Y)=P(x_1,x_2,...,x_n|Y)=\prod_{i=1}^{n}P(x_i|Y) P(X∣Y)=P(x1,x2,...,xn∣Y)=i=1∏nP(xi∣Y)为了缩减模型参数空间。
4.3 怎么证明后验概率最大化等价于期望风险最小化(假设0-1损失函数)?
- R e x p ( f ) = E [ L ( Y , f ( X ) ) ] = E X ∑ k = 1 K [ L ( c k , f ( X ) ) ] P ( c k ∣ X ) f ( x ) = a r g m i n y ∈ Y ∑ k = 1 K [ L ( c k , y ) ] P ( c k ∣ X = x ) = a r g m a x y ∈ Y P ( y = c k ∣ X = x ) R_{exp}(f)=E[L(Y,f(X))]=E_X \sum_{k=1}^K{[L(c_k,f(X))]P(c_k|X)} \\ f(x)=argmin_{y \in Y}{\sum_{k=1}^K{[L(c_k,y)]P(c_k|X=x)}} \\ =argmax_{y \in Y}P(y=c_k|X=x) Rexp(f)=E[L(Y,f(X))]=EXk=1∑K[L(ck,f(X))]P(ck∣X)f(x)=argminy∈Yk=1∑K[L(ck,y)]P(ck∣X=x)=argmaxy∈YP(y=ck∣X=x)
4.4 朴素贝叶斯法的参数估计方法有哪些?
- 极大似然估计: P ( Y = c k ) = ∑ i = 1 n I ( y i = c k ) N , k = 1 , 2 , . . . , K P ( X ( j ) = a j l ∣ Y = c k ) = ∑ i = 1 N I ( x i ( i ) = a j l , y i = c k ) ∑ i = 1 N I ( y i = c k ) , a j l 是 第 j 个 特 征 可 能 取 第 l 个 值 。 P(Y=c_k)=\frac{\sum_{i=1}^n{I(y_i=c_k)}}{N},k=1,2,...,K \\ P(X^{(j)}=a_{jl}|Y=c_k)=\frac{\sum_{i=1}^N{I(x_i^{(i)}=a_{jl},y_i=c_k)}}{\sum_{i=1}^N{I(y_i=c_k)}},a_{jl}是第j个特征可能取第l个值。 P(Y=ck)=N∑i=1nI(yi=ck),k=1,2,...,KP(X(j)=ajl∣Y=ck)=∑i=1NI(yi=ck)∑i=1NI(xi(i)=ajl,yi=ck),ajl是第j个特征可能取第l个值。
- 贝叶斯估计: P λ ( Y = c k ) = ∑ i = 1 n I ( y i = c k ) + λ N + K λ , k = 1 , 2 , . . . , K P ( X ( j ) = a j l ∣ Y = c k ) = ∑ i = 1 N I ( x i ( i ) = a j l , y i = c k ) + λ ∑ i = 1 N I ( y i = c k ) + S j λ , a j l 是 第 j 个 特 征 可 能 取 第 l 个 值 。 P_{\lambda}(Y=c_k)=\frac{\sum_{i=1}^n{I(y_i=c_k)}+ \lambda}{N+K \lambda},k=1,2,...,K \\ P(X^{(j)}=a_{jl}|Y=c_k)=\frac{\sum_{i=1}^N{I(x_i^{(i)}=a_{jl},y_i=c_k)}+ \lambda}{\sum_{i=1}^N{I(y_i=c_k)}+S_j \lambda},a_{jl}是第j个特征可能取第l个值。 Pλ(Y=ck)=N+Kλ∑i=1nI(yi=ck)+λ,k=1,2,...,KP(X(j)=ajl∣Y=ck)=∑i=1NI(yi=ck)+Sjλ∑i=1NI(xi(i)=ajl,yi=ck)+λ,ajl是第j个特征可能取第l个值。
4.5 朴素贝叶斯法的优缺点?
- 对小规模的数据表现很好,适合多分类任务,适合增量式训练。
- 对输入数据的表达形式很敏感(离散、连续,值极大极小之类的)。
5.决策树
5.1 什么是分类决策树模型?
- 基于特征对实例进行分类的树形结构,从根节点开始,对实例的某一特征及其取值进行测试,根据测试结果,选取特征及其值将实例分配到子节点,递归的对实例进行分配,直至达到叶节点。
5.2 决策树模型与if-then规则的联系?
- 决策树的每个叶节点到根节点的路径构成一条规则,路径上的内部节点对应于形成规则的条件,叶节点则是规则导出的结论。它们都具有互斥完备性:每个实例都被仅有的一条路径覆盖。
5.3 决策树模型与条件概率的联系?
- 决策树可以表示为给定特征下类的条件概率分布。
5.4 熵,条件熵是什么?
- 熵:概率分布的负对数的期望;表示随机变量的不确定性。 H ( p ) = − E p [ log p ] 或 H ( X ) = − ∑ i = 1 n p ( X = x i ) log p ( X = x i ) H(p)=-E_p[\log p] \\ 或 \\ H(X)=-\sum_{i=1}^n{p(X=x_i)\log p(X=x_i)} H(p)=−Ep[logp]或H(X)=−i=1∑np(X=xi)logp(X=xi)
- 条件熵:给定X条件下,Y的条件概率分布的熵对X的期望;表示给定X条件下,随机变量Y的不确定性。 H ( Y ∣ X ) = ∑ i = 1 n p ( X = x i ) H ( Y ∣ X = x i ) H(Y|X)=\sum_{i=1}^n{p(X=x_i)H(Y|X=x_i)} H(Y∣X)=i=1∑np(X=xi)H(Y∣X=xi)
5.5 信息增益,信息增益比是什么?
- 信息增益:特征A对数据集D的信息增益g(D,A)定义为集合D的经验熵H(D)与在给定特征A条件下集合D的经验条件熵H(D|A)之差。又称为互信息。 g ( D , A ) = H ( D ) − H ( D ∣ A ) H ( D ) = − ∑ k = 1 K ∣ C k ∣ ∣ D ∣ log 2 ∣ C k ∣ ∣ D ∣ H ( D ∣ A ) = ∑ i = 1 n ∣ D i ∣ D H ( D i ) g(D,A)=H(D)-H(D|A) \\ H(D)=-\sum_{k=1}^K{\frac{|C_k|}{|D|}\log_2 \frac{|C_k|}{|D|}} \\ H(D|A)=\sum_{i=1}^n{\frac{|D_i|}{D}H(D_i)} g(D,A)=H(D)−H(D∣A)H(D)=−k=1∑K∣D∣∣Ck∣log2∣D∣∣Ck∣H(D∣A)=i=1∑nD∣Di∣H(Di)
- 信息增益比:信息增益g(D,A)与集合D关于特征A的熵之比。 g R ( D , A ) = g ( D , A ) H A ( D ) H A ( D ) = − ∑ i = 1 n ∣ D i ∣ ∣ D ∣ log 2 ∣ D i ∣ ∣ D ∣ , n 是 特 征 A 的 取 值 个 数 。 g_R(D,A)=\frac{g(D,A)}{H_A(D)} \\ H_A(D)=-\sum_{i=1}^n{\frac{|D_i|}{|D|}\log_2\frac{|D_i|}{|D|}},n是特征A的取值个数。 gR(D,A)=HA(D)g(D,A)HA(D)=−i=1∑n∣D∣∣Di∣log2∣D∣∣Di∣,n是特征A的取值个数。
5.6 基尼指数是什么?
- 对于k分类问题,概率分布的基尼指数为 G i n i ( p ) = ∑ k = 1 K p k ( 1 − p k ) = ∑ k = 1 K 1 − p k 2 对 于 样 本 集 合 D , G i n i ( D ) = 1 − ∑ k = 1 K ( ∣ C k ∣ ∣ D ∣ ) 2 在 特 征 A 的 条 件 下 , 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(p)=\sum_{k=1}^K{p_k(1-p_k)}=\sum_{k=1}^K{1-p_k^2} \\ 对于样本集合D,Gini(D)=1-\sum_{k=1}^K{(\frac{|C_k|}{|D|})^2} \\ 在特征A的条件下,D的基尼指数为 Gini(D,A)=\frac{|D_1|}{|D|}Gini(D_1)+\frac{|D_2|}{|D|}Gini(D_2) \\ Gini(p)=k=1∑Kpk(1−pk)=k=1∑K1−pk2对于样本集合D,Gini(D)=1−k=1∑K(∣D∣∣Ck∣)2在特征A的条件下,D的基尼指数为Gini(D,A)=∣D∣∣D1∣Gini(D1)+∣D∣∣D2∣Gini(D2)基尼指数越大,样本集合不确定性越大。
5.7 决策树学习算法有哪些组成,常见的决策树算法有哪些?
- 包括特征选取,决策树生成以及剪枝过程。
- ID3算法:选取当前数据集下信息增益最大的特征作为划分点。
- C4.5算法:选取当前数据集下信息增益比最大的特征作为划分点。
- CART分类树算法:选取基尼指数最小的特征及特征值作为切分点。
5.8 决策树的简单剪枝过程?
- 决策树的损失函数 C α ( T ) = ∑ t = 1 ∣ T ∣ { N t H t ( T ) + α ∣ T ∣ } H t ( T ) = − ∑ k N t k N t log N t k N t C_\alpha(T)=\sum_{t=1}^{|T|}{N_tH_t(T)+\alpha |T|}\\ H_t(T)=-\sum_{k}\frac{N_{tk}}{N_{t}}{\log \frac{N_{tk}}{N_{t}}} \\ Cα(T)=t=1∑∣T∣{NtHt(T)+α∣T∣}Ht(T)=−k∑NtNtklogNtNtk其中t是叶节点的索引, N t N_{t} Nt是第t个叶节点含有样本的总个数, N t k N_{tk} Ntk是第t个叶节点含有第k类样本的个数
- 具体剪枝过程:1.计算当前数的损失函数;2.递归从叶节点向上回缩,比较当前状态的损失,如果更小则将该父节点变为叶节点;3.直到不能继续,得到损失最小的决策树结构。
5.9 简述CART算法
CART树其实是二叉决策树,每个节点的特征取值只有是和否。
- 回归树的生成:1.给定切分特征和切分值,使特征空间划分为大于切分值和小于等于切分值的子空间;2.求得切分后的子空间的样本点的标签值与空间的均值的残差,寻找残差最小的切分;3.直至不可划分。
- 分类数的生成:将选取切分点的规则变为基尼指数最小即可。
- 决策树剪枝:1.自下而上计算内部节点t的 C ( T t ) , ∣ T t ∣ , g ( t ) = C ( t ) − C ( T t ) ∣ T t ∣ − 1 , α = m i n ( α , g ( t ) ) C(T_t),|T_t|,g(t)=\frac{C(t)-C(T_t)}{|T_t|-1},\alpha =min(\alpha,g(t)) C(Tt),∣Tt∣,g(t)=∣Tt∣−1C(t)−C(Tt),α=min(α,g(t)) 2.自上而下的访问内部节点t,如果有 g ( t ) = α g(t)=\alpha g(t)=α,则进行剪枝。
5.10 决策树的优缺点
- 计算量简单,可解释性强,比较适合处理有缺失属性值的样本,能够处理不相关的特征。
- 单颗决策树分类能力弱;容易过拟合。
5.11 GBDT
- 用于回归任务
- 1.初始化决策树, f 0 ( x ) = a r g min c ∑ i = 1 N L ( y i , c ) f_0(x)=arg\min_c{\sum_{i=1}^N{L(y_i,c)}} f0(x)=argminc∑i=1NL(yi,c)
- 2.计算负梯度 r m i = − [ ∂ L ( y i , f ( x i ) ) ∂ f ( x i ) ] f ( x ) = f m − 1 ( x ) r_{mi}=-[\frac{\partial L(y_i,f(x_i))}{\partial f(x_i)}]_{f(x)=f_{m-1}(x)} rmi=−[∂f(xi)∂L(yi,f(xi))]f(x)=fm−1(x),对于 r m i r_{mi} rmi拟合回归树,得到第m颗树的叶节点区域 R m j R_{mj} Rmj
- 3.计算 c m j = a r g min c ∑ x i ∈ R m j L ( y i , f m − 1 ( x i ) + c ) c_{mj}=arg\min_c{\sum_{x_i \in R_{mj}}{L(y_i,f_{m-1}(x_i)+c)}} cmj=argminc∑xi∈RmjL(yi,fm−1(xi)+c),更新 f m ( x ) = f m − 1 ( x ) + ∑ j = 1 J c m j I ( x ∈ R m j ) f_m(x)=f_{m-1}(x)+\sum_{j=1}^J{c_{mj}I(x\in R_{mj})} fm(x)=fm−1(x)+∑j=1JcmjI(x∈Rmj)
- 用于分类任务
- 1.对于每一类,初始化每类的F函数 F K , 0 ( x ) = 0 , k = 1 , . . , K F_{K,0}(x)=0,k=1,..,K FK,0(x)=0,k=1,..,K
- 2.计算当前概率值 p k ( x ) = e x p ( F k , m − 1 ( x ) ) ∑ k = 1 K e x p ( F k , m − 1 ( x ) ) p_k(x)=\frac{exp(F_{k,m-1}(x))}{\sum_{k=1}^K{exp(F_{k,m-1}(x)})} pk(x)=∑k=1Kexp(Fk,m−1(x))exp(Fk,m−1(x))
- 3.计算概率残差 y ~ i k = y i k − p k ( x i ) \tilde{y}_{ik}=y_{ik}-p_k(x_i) y~ik=yik−pk(xi),用残差拟合具有L个叶节点的回归树
- 4. γ k l m = K − 1 K ∑ x i ∈ R k l m y ~ i k ∑ x i ∈ R k l m ∣ y ~ i k ∣ ( 1 − ∣ y ~ i k ∣ ) F k , m ( x ) = F k , m − 1 ( x ) + γ k l m 1 ( x ∈ R k l m ) \gamma_{klm}=\frac{K-1}{K}\frac{\sum_{x_i\in R_{klm}}{\tilde{y}_{ik}}}{\sum_{x_i\in R_{klm}}{|\tilde{y}_{ik}|(1-|\tilde{y}_{ik}|)}} \\ F_{k,m}(x)=F_{k,m-1}(x)+\gamma_{klm}1(x\in R_{klm}) γklm=KK−1∑xi∈Rklm∣y~ik∣(1−∣y~ik∣)∑xi∈Rklmy~ikFk,m(x)=Fk,m−1(x)+γklm1(x∈Rklm)
- GBDT就是GB+DT,弱分类器一般用CART树。
5.12 XGBoost
- xgboost在GBDT基础上加了正则项 L ( ϕ ) = ∑ i l ( y ~ i , y i ) + ∑ k Ω ( f k ) Ω ( f ) = γ T + 1 2 λ ∣ ∣ ω ∣ ∣ 2 L(\phi)=\sum_i{l(\tilde{y}_i,y_i)}+\sum_k{\Omega (f_k)} \\ \Omega(f)=\gamma T+\frac{1}{2}\lambda ||\omega||^2 L(ϕ)=i∑l(y~i,yi)+k∑Ω(fk)Ω(f)=γT+21λ∣∣ω∣∣2
- 对loss函数做二阶泰勒展开
L
(
t
)
=
∑
i
=
1
n
l
(
y
i
,
y
^
i
(
t
−
1
)
+
f
t
(
x
i
)
)
+
Ω
(
f
t
)
=
∑
i
=
1
n
l
(
y
i
,
y
^
i
(
t
−
1
)
)
+
g
i
f
t
(
x
i
)
+
1
2
h
i
f
t
2
(
x
i
)
+
Ω
(
f
t
)
=
∑
j
=
1
T
[
(
∑
i
∈
I
j
g
i
)
ω
j
+
1
2
(
∑
i
∈
I
j
h
i
+
λ
)
ω
j
2
]
+
γ
T
L^{(t)}=\sum_{i=1}^n{l(y_i,\hat{y}_i^{(t-1)}+f_t(x_i))}+\Omega (f_t) \\ =\sum_{i=1}^n{l(y_i,\hat{y}_i^{(t-1)})+g_if_t(x_i)+\frac{1}{2}h_if_t^2(x_i)}+\Omega (f_t) \\ =\sum_{j=1}^T{[(\sum_{i \in I_j} g_i)\omega_j+\frac{1}{2}(\sum_{i \in I_j}h_i+\lambda)\omega_j^2]}+\gamma T
L(t)=i=1∑nl(yi,y^i(t−1)+ft(xi))+Ω(ft)=i=1∑nl(yi,y^i(t−1))+gift(xi)+21hift2(xi)+Ω(ft)=j=1∑T[(i∈Ij∑gi)ωj+21(i∈Ij∑hi+λ)ωj2]+γT
所以结果 ω j ∗ = − G j H j + λ , L = − 1 2 ∑ j = 1 T G j 2 H j + λ + γ T \omega_j^*=-\frac{G_j}{H_j+\lambda} ,L=-\frac{1}{2}\sum_{j=1}^T\frac{G_j^2}{H_j+\lambda}+\gamma T ωj∗=−Hj+λGj,L=−21j=1∑THj+λGj2+γT - 用上述的目标函数值取拟合回归树,从而得到进一步的集成。
5.13 XGBoost与GBDT的比较
-
在寻找最佳分割点时,考虑传统的枚举每个特征的所有可能分割点的贪心法效率太低,xgboost实现了一种近似的算法。大致的思想是根据百分位法列举几个可能成为分割点的候选者,然后从候选者中根据上面求分割点的公式计算找出最佳的分割点。
-
xgboost考虑了训练数据为稀疏值的情况,可以为缺失值或者指定的值指定分支的默认方向,这能大大提升算法的效率。
-
特征列排序后以块的形式存储在内存中,在迭代中可以重复使用;虽然boosting算法迭代必须串行,但是在处理每个特征列时可以做到并行。
-
按照特征列方式存储能优化寻找最佳的分割点,但是当以行计算梯度数据时会导致内存的不连续访问,严重时会导致cache miss,降低算法效率。paper中提到,可先将数据收集到线程内部的buffer,然后再计算,提高算法的效率。
-
(1)GBDT是机器学习算法,XGBOOST是该算法的工程实现;
-
(2)在使用CART作为基分类器时,XGBOOST显式地加入了正则项来控制模型的复杂度,有利于防止过拟合,从而提高模型的泛化能力;
-
(3)GBDT在模型训练时只使用了代价函数的一阶导数信息,XGBOOST对代价函数进行二阶泰勒展开,可以同时使用一阶和二阶导数;
-
(4)传统的GBDT采用CART作为基分类器,XGBOOST支持多种类型的基分类器,比如线性分类器;
-
(5)传统的GBDT在每轮迭代时使用全部的数据,XGBOOST则采用了与随机森林相似的策略,支持对数据进行采样;
-
(6)传统的GBDT没有设计对缺失值进行处理,XGBOOST能够自动学习出缺失值的处理策略。
5.14 lightGBM
- 根据直方图的离散值,遍历寻找最优的分割点。
6.逻辑回归与最大熵模型
6.1 什么是逻辑回归模型(模型,策略,算法)
- 模型:由条件概率表示的分类模型,输出的对数几率是输入的线性函数。 P ( Y = k ∣ x ) = exp ( w k ⋅ x ) 1 + ∑ k = 1 K − 1 exp ( w k ⋅ x ) , k = 1 , 2 , . . , K − 1 P ( Y = K ∣ x ) = 1 1 + ∑ k = 1 K − 1 exp ( w k ⋅ x ) , k = K P(Y=k|x)=\frac{\exp(w_k \cdot x)}{1+\sum_{k=1}^{K-1}{\exp{(w_k \cdot x)}}},k=1,2,..,K-1 \\ P(Y=K|x)=\frac{1}{1+\sum_{k=1}^{K-1}{\exp{(w_k \cdot x)}}},k=K \\ P(Y=k∣x)=1+∑k=1K−1exp(wk⋅x)exp(wk⋅x),k=1,2,..,K−1P(Y=K∣x)=1+∑k=1K−1exp(wk⋅x)1,k=K
- 策略:损失函数(二分类) L ( w ) = ∑ i = 1 N [ y i log π ( x i ) + ( 1 − y i ) log ( 1 − π ( x i ) ) ] = ∑ i = 1 N [ y i ( w ⋅ x i ) − log ( 1 + exp ( w ⋅ x i ) ) ] L(w)=\sum_{i=1}^N{[y_i\log \pi(x_i)+(1-y_i)\log (1-\pi(x_i))]} \\ =\sum_{i=1}^N{[y_i(w \cdot x_i)-\log (1+\exp (w \cdot x_i))]} L(w)=i=1∑N[yilogπ(xi)+(1−yi)log(1−π(xi))]=i=1∑N[yi(w⋅xi)−log(1+exp(w⋅xi))]
- 算法:梯度下降或者拟牛顿法
6.2 逻辑回归的优缺点
- 实现简单;分类时计算量非常小,速度很快,存储资源低。
- 容易欠拟合,一般准确度不太高;要求数据集线性可分。
6.3 一个k分类softmax回归器与k个二分类逻辑回归器对比?
- 如果类别之间互斥,就用softmax;如果类别之间有联系,就用另一个。
6.4 什么是最大熵原理
- 在学习概率模型时,在所有可能的概率模型集合中,熵最大的模型是最好的。在满足约束条件下,选取熵最大的模型。
6.5 什么是最大熵模型
- P w ( y ∣ x ) = 1 Z w ( x ) exp ( ∑ i = 1 n w i f i ( x , y ) ) , 其 中 f 是 特 征 函 数 。 P_w(y|x)=\frac{1}{Z_w(x)}\exp(\sum_{i=1}^n{w_if_i(x,y)}),其中f是特征函数。 Pw(y∣x)=Zw(x)1exp(i=1∑nwifi(x,y)),其中f是特征函数。
6.6 由最大熵原理推导最大熵模型
- 问题等价于 min p ∈ C − H ( P ) = ∑ x , y P ~ ( x ) P ( y ∣ x ) log P ( y ∣ x ) s . t . E p ( f i ) − E P ~ ( f i ) = 0 , i = 1 , 2 , . . . , n ∑ y P ( y ∣ x ) = 1 \min_{p \in C} -H(P)=\sum_{x,y}{\tilde{P}(x)P(y|x)\log P(y|x)} \\ s.t. \ E_p(f_i)-E_{\tilde {P}}(f_i)=0,i=1,2,...,n \\ \sum_y{P(y|x)}=1 p∈Cmin−H(P)=x,y∑P~(x)P(y∣x)logP(y∣x)s.t. Ep(fi)−EP~(fi)=0,i=1,2,...,ny∑P(y∣x)=1
- 转换为对偶问题
min
P
∈
C
max
w
L
(
P
,
w
)
→
max
w
min
P
∈
C
L
(
P
,
w
)
\min_{P \in C}\max_w L(P,w) \to \max_w\min_{P \in C} L(P,w)
minP∈CmaxwL(P,w)→maxwminP∈CL(P,w)
L ( P , w ) = − H ( P ) + w 0 ( 1 − ∑ y P ( y ∣ x ) ) + ∑ i = 1 n w i ( E P ~ ( f i ) − E p ( f i ) ) = ∑ x , y P ~ ( x ) P ( y ∣ x ) log P ( y ∣ x ) + w 0 ( 1 − ∑ y P ( y ∣ x ) ) + ∑ i = 1 n w i ( ∑ x , y P ~ ( x , y ) f i ( x , y ) − ∑ x , y P ~ ( x ) P ( y ∣ x ) f i ( x , y ) ) L(P,w)=-H(P)+w_0(1-\sum_y{P(y|x)})+\sum_{i=1}^n{w_i(E_{\tilde {P}}(f_i)-E_p(f_i))} \\ =\sum_{x,y}{\tilde{P}(x)P(y|x)\log P(y|x)+w_0(1-\sum_y{P(y|x)}) \\ +\sum_{i=1}^n{w_i(\sum_{x,y}{\tilde{P}(x,y)f_i(x,y)-\sum_{x,y}{\tilde{P}(x)P(y|x)f_i(x,y)}})}} L(P,w)=−H(P)+w0(1−y∑P(y∣x))+i=1∑nwi(EP~(fi)−Ep(fi))=x,y∑P~(x)P(y∣x)logP(y∣x)+w0(1−y∑P(y∣x))+i=1∑nwi(x,y∑P~(x,y)fi(x,y)−x,y∑P~(x)P(y∣x)fi(x,y))另L对P的导数为零,导出最大熵模型。
6.7 证明对偶函数的极大化等价于最大熵模型的极大似然估计
- 写出定义即可证明
7.支持向量机
7.1 什么是函数间隔,什么是几何间隔?
- 函数间隔:
样
本
点
(
x
i
,
y
i
)
距
离
超
平
面
(
w
,
b
)
的
函
数
间
隔
定
义
为
样本点(x_i,y_i)距离超平面(w,b)的函数间隔定义为
样本点(xi,yi)距离超平面(w,b)的函数间隔定义为
τ i = y i ( w ⋅ x i + b ) \tau_i=y_i(w \cdot x_i+b) τi=yi(w⋅xi+b) 超 平 面 ( w , b ) 关 于 数 据 集 T 的 函 数 间 隔 为 数 据 集 中 所 有 点 的 函 数 间 隔 的 最 小 值 超平面(w,b)关于数据集T的函数间隔为数据集中所有点的函数间隔的最小值 超平面(w,b)关于数据集T的函数间隔为数据集中所有点的函数间隔的最小值 - 几何间隔:
τ i ˉ = τ i ∣ ∣ w ∣ ∣ \bar{\tau_i}=\frac{\tau_i}{||w||} τiˉ=∣∣w∣∣τi
7.2 什么是线性可分SVM(模型,策略,算法)
- 模型:
f ( x ) = s i g n ( w ⋅ x + b ) f(x)=sign(w \cdot x+b) f(x)=sign(w⋅x+b) - 策略:最大化几何间隔
min w , b 1 2 ∣ ∣ w ∣ ∣ 2 s . t . y i ( w ⋅ x i + b ) − 1 ≥ 0 , i = 1 , 2 , . . . , n \min_{w,b} \frac{1}{2}{||w||^2} \\ s.t. \ y_i(w \cdot x_i+b)-1 \ge0,i=1,2,...,n w,bmin21∣∣w∣∣2s.t. yi(w⋅xi+b)−1≥0,i=1,2,...,n - 算法:求解二次规划问题的对偶形式
首先求解对偶问题的 α ∗ \alpha^* α∗, min 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i s . t . ∑ i = 1 N α i y i = 0 α i ≥ 0 , i = 1 , 2 , . . , N \min \frac{1}{2}{\sum_{i=1}^N\sum_{j=1}^N}{\alpha_i \alpha_jy_iy_j(x_i\cdot x_j)}-\sum_{i=1}^N{\alpha_i} \\ s.t. \sum_{i=1}^{N}{\alpha_iy_i}=0 \\ \alpha_i \ge 0,i=1,2,..,N min21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαis.t.i=1∑Nαiyi=0αi≥0,i=1,2,..,N然后求得 w ∗ w^* w∗, b ∗ b^* b∗,得出分离超平面和分类决策函数,
w ∗ = ∑ i α i ∗ y i x i b ∗ = y j − ∑ i = 1 N α i ∗ y i ( x i ⋅ x j ) w^*=\sum_i{\alpha_i^*y_ix_i} \\ b^*=y_j-\sum_{i=1}^N{\alpha_i^*y_i(x_i \cdot x_j)} w∗=i∑αi∗yixib∗=yj−i=1∑Nαi∗yi(xi⋅xj)
将训练集中 α i ∗ > 0 \alpha_i^*>0 αi∗>0的样本点,称为支持向量,只有他们对决策函数的优化起作用。由KKT条件可以导出 ∣ w ∗ ⋅ x i + b ∗ ∣ = 1 |w^* \cdot x_i+b^*|=1 ∣w∗⋅xi+b∗∣=1。
7.3 线性SVM(模型,策略,算法)
- 模型
f ( x ) = s i g n ( w ⋅ x + b ) f(x)=sign(w \cdot x+b) f(x)=sign(w⋅x+b) - 策略
min w , b , ξ 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i s . t . y i ( w ⋅ x i + b ) ≥ 1 − ξ i , i = 1 , 2 , . . . , n ξ i ≥ 0 , i = 1 , 2 , . . , n \min_{w,b,\xi} \frac{1}{2}{||w||^2}+C\sum_{i=1}^N{\xi_i} \\ s.t. \ y_i(w \cdot x_i+b) \ge1-\xi_i,i=1,2,...,n \\ \xi_i \ge 0,i=1,2,..,n w,b,ξmin21∣∣w∣∣2+Ci=1∑Nξis.t. yi(w⋅xi+b)≥1−ξi,i=1,2,...,nξi≥0,i=1,2,..,n - 算法:求解二次规划问题的对偶形式
首先求解对偶问题的 α ∗ \alpha^* α∗, min 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i s . t . ∑ i = 1 N α i y i = 0 0 ≤ α i ≤ C , i = 1 , 2 , . . , N \min \frac{1}{2}{\sum_{i=1}^N\sum_{j=1}^N}{\alpha_i \alpha_jy_iy_j(x_i\cdot x_j)}-\sum_{i=1}^N{\alpha_i} \\ s.t. \sum_{i=1}^{N}{\alpha_iy_i}=0 \\ 0 \le \alpha_i \le C,i=1,2,..,N min21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαis.t.i=1∑Nαiyi=00≤αi≤C,i=1,2,..,N然后求得 w ∗ w^* w∗, b ∗ b^* b∗,得出分离超平面和分类决策函数,
w ∗ = ∑ i α i ∗ y i x i b ∗ = y j − ∑ i = 1 N α i ∗ y i ( x i ⋅ x j ) w^*=\sum_i{\alpha_i^*y_ix_i} \\ b^*=y_j-\sum_{i=1}^N{\alpha_i^*y_i(x_i \cdot x_j)} w∗=i∑αi∗yixib∗=yj−i=1∑Nαi∗yi(xi⋅xj)
将训练集中 α i ∗ > 0 \alpha_i^*>0 αi∗>0的样本点,称为软间隔的支持向量,只有他们对决策函数的优化起作用。
1.若 α i ∗ < C \alpha^*_i<C αi∗<C,则 ξ i = 0 \xi_i=0 ξi=0,支持向量落在间隔边界上;
2.若 α i ∗ = C \alpha^*_i=C αi∗=C, 0 ≤ ξ i ≤ 1 0 \le \xi_i \le 1 0≤ξi≤1,分类正确,支持向量落在间隔边界与分离超平面之间;
3.若 α i ∗ = C \alpha^*_i=C αi∗=C, ξ i = 1 \xi_i =1 ξi=1,支持向量落在分离超平面上;
4.若 α i ∗ = C \alpha^*_i=C αi∗=C, ξ i ≥ 1 \xi_i \ge 1 ξi≥1,分类错误,支持向量落在错误间隔边界与分离超平面之间;
7.4 线性SVM的原始优化问题等价于加了正则的合页损失函数
- min w , b ∑ i = 1 N [ 1 − y i ( w ⋅ x i + b ) ] + + λ ∣ ∣ w ∣ ∣ 2 \min_{w,b}{\sum_{i=1}^{N}{[1-y_i(w \cdot x_i+b)]_+}}+\lambda ||w||^2 w,bmini=1∑N[1−yi(w⋅xi+b)]++λ∣∣w∣∣2我们可以认为SVM是优化0-1损失函数的上界-合页损失函数构成的目标函数。
7.5 核技巧在线性SVM中的应用
- 在对偶问题中,与x有关的项都可以写成内积的形式,所以可以定义在内积空间上非线性变换: K ( x i , x j ) K(x_i,x_j) K(xi,xj),来代替原来的内积,达到非线性SVM的效果。
- 核函数为正定核的充要条件:
任 意 x i ∈ X , i = 1 , 2 , . . . , m , K ( x , z ) 对 应 的 G r a m 矩 阵 半 正 定 . 任意x_i \in X,i=1,2,...,m,K(x,z)对应的Gram矩阵半正定. 任意xi∈X,i=1,2,...,m,K(x,z)对应的Gram矩阵半正定.
7.6 常用核函数
- 多项式核函数:
K ( x , z ) = ( x ⋅ z + 1 ) p K(x,z)=(x\cdot z+1)^p K(x,z)=(x⋅z+1)p - 高斯核函数:
K ( x , z ) = exp ( − ∣ ∣ x − z ∣ ∣ 2 2 δ 2 ) K(x,z)=\exp{(-\frac{||x-z||^2}{2\delta^2})} K(x,z)=exp(−2δ2∣∣x−z∣∣2)
7.7 SMO算法的思路
- 如果所有变量的解满足KKT条件,那么当前解就是最优解。
- 否则,选择两个变量,其中一个是严重违反KKT条件的变量,固定其他变量,对这两个变量的优化问题进行解析求解。
- 分解子问题迭代求解,直至满足KKT条件。
7.8 SVM的优缺点
- 使用核函数可以向高维空间进行映射,使用核函数可以解决非线性的分类;分类效果较好。
- 对大规模数据训练比较困难;无法直接支持多分类,但是可以使用间接的方法来做。
8.集成学习
8.1 什么是Bagging?
-从N个样本中有放回的采样N个样本;对采样进行弱学习器的学习;学习多个弱学习器,预测用投票的方法得到结果。
8.2 什么是AdaBoost算法?
- 原理:通过反复修改数据的权值分布,构建一系列基本分类器,将这些弱分类器线性组合得到强分类器。
- 具体操作:
1.初始化训练数据的权值分布,在该权值分布的数据集上训练弱分类器 G m ( x ) : X → { − 1 , + 1 } G_m(x):X \to \{-1,+1\} Gm(x):X→{−1,+1};
2.计算分类器在数据集上的误差分类率 e m = P ( G m ( x i ) ≠ y i ) = ∑ i = 1 N w m i I ( G m ( x i ) ≠ y i ) e_m=P(G_m(x_i) \ne y_i)=\sum_{i=1}^N{w_{mi}I(G_m(x_i) \ne y_i)} em=P(Gm(xi)̸=yi)=∑i=1NwmiI(Gm(xi)̸=yi);
3.计算 G m ( x ) G_m(x) Gm(x)的系数 α m = 1 2 log 1 − e m e m \alpha_m=\frac{1}{2}\log {\frac{1-e_m}{e_m}} αm=21logem1−em;
4.更新权值分布 w m + 1 , i = w m i Z m exp ( − α m y i G m ( x i ) ) , i = 1 , 2 , . . . , N w_{m+1,i}=\frac{w_{mi}}{Z_m}{\exp{(-\alpha_my_iG_m(x_i))}},i=1,2,...,N wm+1,i=Zmwmiexp(−αmyiGm(xi)),i=1,2,...,N;
5.构建弱分类器的线性组合 s i g n ( f ( x ) ) = s i g n ( ∑ m = 1 M α m G m ( x ) ) sign(f(x))=sign(\sum_{m=1}^M{\alpha_mG_m(x)}) sign(f(x))=sign(∑m=1MαmGm(x));
8.3 为何AdaBoost具有适应性?
- AdaBoost训练误差有界
1 N ∑ i = 1 N I ( G ( x i ) ≠ y i ) ≤ 1 N ∑ i exp ( − y i f ( x i ) ) = ∏ m Z m \frac{1}{N}{\sum_{i=1}^N{I(G(x_i) \ne y_i)} \le \frac{1}{N}{\sum_{i}{\exp{(-y_if(x_i))}}}}=\prod_mZ_m N1i=1∑NI(G(xi)̸=yi)≤N1i∑exp(−yif(xi))=m∏Zm对于二分类问题:
∏ m Z m = ∏ m [ 2 e m ( 1 − e m ) ] = ∏ m = 1 M 1 − 4 γ m 2 ≤ exp ( − 2 ∑ m = 1 M γ m 2 ) \prod_mZ_m=\prod_m[2\sqrt{e_m(1-e_m)}]=\prod_{m=1}^{M}{\sqrt{1-4{\gamma_m}^2}}\le \exp{(-2\sum_{m=1}^M{\gamma_m^2})} m∏Zm=m∏[2em(1−em)]=m=1∏M1−4γm2≤exp(−2m=1∑Mγm2)若存在 γ > 0 , 对 所 有 m , 有 γ m ≥ γ \gamma>0,对所有m,有\gamma_m \ge \gamma γ>0,对所有m,有γm≥γ,那么
1 N ∑ i = 1 N I ( G ( x i ) ≠ y i ) ≤ exp ( − M γ 2 ) \frac{1}{N}\sum_{i=1}^N{I(G(x_i) \ne y_i)} \le \exp{(-M\gamma^2)} N1i=1∑NI(G(xi)̸=yi)≤exp(−Mγ2)训练误差指数级下降,且不需要知道下界 γ \gamma γ。
8.4 前向分布算法是什么?它与AdaBoost的关联?
- 前向分布算法:可以将决策函数表示为一系列基函数的线性组合,每次只学习一个基函数及其系数,逐步降低损失函数。
- 当损失函数是指数函数 L ( y , f ( x ) ) = exp ( − y f ( x ) ) L(y,f(x))=\exp{(-yf(x))} L(y,f(x))=exp(−yf(x))时,前向分布算法具象为AdaBoost。
8.5 提升树
- 二分类提升树:弱分类器为决策树的AdaBoost
- 回归提升树:在前向分布算法中,每次更新当前基函数以及系数时,简单拟合当前模型的残差即可。
- 梯度提升树:在前向分布算法中,每次更新当前基函数以及系数时,拟合损失函数的负梯度在当前模型下的值。
8.6 随机森林
- 利用Bagging的思想,多次建立决策树,对采样的数据用完全分裂的方式建树;采用投票的方式进行预测或者均值(回归)。
- 泛化误差的估计:将各个树的未采样样本作为预测样本。
8.7 什么是stacking集成算法?
- 首先通过bootstrapping等采样的方法训练一系列弱分类器,再将弱分类器的输出当做输入,训练另一个模型得到最终的输出。
- 可以增加模型的非线性,从而减少模型的偏差。还可以降低泛化误差。
9.EM算法
9.1 EM算法简述
- EM算法是含有隐变量的概率模型的极大似然估计或极大后验概率估计的迭代算法,通过迭代求解观测数据的对数似然函数的极大化,实现估计。每次迭代分为两步:
1.E步,求期望,即求 log P ( Y , Z ∣ θ ) 对 P ( Z ∣ Y , θ ( i ) ) \log P(Y,Z|\theta)对P(Z|Y,\theta^{(i)}) logP(Y,Z∣θ)对P(Z∣Y,θ(i))的期望,称为Q函数( Q ( θ , θ ( i ) ) Q(\theta,\theta^{(i)}) Q(θ,θ(i)));
2.M步,求极大,即极大化Q函数得到新参数的估计值。
9.2 为什么EM算法能近似实现对观测数据的极大似然估计?
- 对观测数据的对数似然函数可以写为
L ( θ ) = log P ( Y ∣ θ ) = log ∑ Z P ( Y , Z ∣ θ ) = log ( ∑ Z P ( Y ∣ Z , θ ) P ( Z ∣ θ ) ) L(\theta)=\log P(Y|\theta)=\log{\sum_Z{P(Y,Z|\theta)}}=\log{(\sum_Z{P(Y|Z,\theta)P(Z|\theta)})} L(θ)=logP(Y∣θ)=logZ∑P(Y,Z∣θ)=log(Z∑P(Y∣Z,θ)P(Z∣θ)) - 在第i次迭代得到的参数估计值是
θ
(
i
)
\theta^{(i)}
θ(i),那么
L ( θ ) − L ( θ ( i ) ) = log ( ∑ Z P ( Y ∣ Z , θ ) P ( Z ∣ θ ) ) − log ( P ( Y ∣ θ ( i ) ) ) L ( θ ) ≥ L ( θ ( i ) ) + ∑ Z P ( Z ∣ Y , θ ( i ) ) log P ( Y , Z ∣ θ ) P ( Z ∣ θ ) P ( Z ∣ Y , θ ( i ) ) P ( Y ∣ θ ( i ) ) = B ( θ , θ ( i ) ) L(\theta)-L(\theta^{(i)})=\log{(\sum_Z{P(Y|Z,\theta)P(Z|\theta)})}-\log{(P(Y|\theta^{(i)}))} \\ L(\theta) \ge L(\theta^{(i)})+\sum_Z{P(Z|Y,\theta^{(i)})\log{\frac{P(Y,Z|\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})}}}=B(\theta,\theta^{(i)}) L(θ)−L(θ(i))=log(Z∑P(Y∣Z,θ)P(Z∣θ))−log(P(Y∣θ(i)))L(θ)≥L(θ(i))+Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y∣θ(i))P(Y,Z∣θ)P(Z∣θ)=B(θ,θ(i))那么我们极大化下界 B ( θ , θ ( i ) ) B(\theta,\theta^{(i)}) B(θ,θ(i)),就能达到对极大似然估计的效果 - 现在对B进行简化
θ ( i + 1 ) = a r g max θ ( L ( θ ( i ) ) + ∑ Z P ( Z ∣ Y , θ ( i ) ) log P ( Y , Z ∣ θ ) P ( Z ∣ θ ) P ( Z ∣ Y , θ ( i ) ) P ( Y ∣ θ ( i ) ) ) = a r g max θ ( ∑ Z P ( Z ∣ Y , θ ( i ) ) log P ( Y ∣ Z , θ ) P ( Z ∣ θ ) ) = a r g max θ Q ( θ , θ ( i ) ) \theta^{(i+1)}=arg\max_{\theta}{(L(\theta^{(i)})+\sum_Z{P(Z|Y,\theta^{(i)})\log{\frac{P(Y,Z|\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})}}})} \\ =arg\max_{\theta}(\sum_Z{P(Z|Y,\theta^{(i)})\log P(Y|Z,\theta)P(Z|\theta)}) \\ =arg\max_{\theta}Q(\theta,\theta^{(i)}) θ(i+1)=argθmax(L(θ(i))+Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y∣θ(i))P(Y,Z∣θ)P(Z∣θ))=argθmax(Z∑P(Z∣Y,θ(i))logP(Y∣Z,θ)P(Z∣θ))=argθmaxQ(θ,θ(i))
9.3 EM算法收敛性
- EM算法每次迭代后均能提高观测数据的似然函数值,一般条件下,EM算法是收敛的,但不能保证收敛到全局最优。
9.4 怎么用EM算法求解高斯混合模型
- 高斯混合模型
P ( y ∣ θ ) = ∑ k = 1 K α k ϕ ( y ∣ θ k ) 其 中 α k 是 混 合 系 数 , α k ≥ 0 , ∑ k α k = 1 ; ϕ 是 高 斯 分 布 ϕ ( y ∣ θ k ) = 1 2 π δ k exp ( − ( y − μ k ) 2 2 δ k 2 ) P(y|\theta)=\sum_{k=1}^K{\alpha_k\phi(y|\theta_k)} \\ 其中\alpha_k是混合系数,\alpha_k \ge 0,\sum_k{\alpha_k}=1;\\ \phi是高斯分布\phi(y|\theta_k)=\frac{1}{\sqrt{2\pi}\delta_k}{\exp{(-\frac{(y-\mu_k)^2}{2\delta_k^2}})} P(y∣θ)=k=1∑Kαkϕ(y∣θk)其中αk是混合系数,αk≥0,k∑αk=1;ϕ是高斯分布ϕ(y∣θk)=2πδk1exp(−2δk2(y−μk)2) - EM算法估计GMM步骤
1.首先确定隐变量,观测数据 y j y_j yj来自第k个分模型记为隐变量 γ j k \gamma_{jk} γjk,那么完全数据的对数似然函数为 log P ( y , γ ∣ θ ) = ∑ k = 1 K { n k log α k + ∑ j = 1 N γ j k [ log ( 1 2 π ) − log δ k − 1 2 δ k 2 ( y j − μ k ) 2 ] } 其 中 n k = ∑ j = 1 N γ j k , ∑ k = 1 K n k = N \log{P(y,\gamma |\theta)}=\sum_{k=1}^K{\{n_k\log{}\alpha_k+\sum_{j=1}^N{\gamma_{jk}{[\log(\frac{1}{\sqrt{2\pi}})-\log{\delta_k}-\frac{1}{2\delta_k^2}(y_j-\mu_k)^2]}}\}} \\ 其中n_k=\sum_{j=1}^N{\gamma_{jk}},\sum_{k=1}^K{n_k}=N logP(y,γ∣θ)=k=1∑K{nklogαk+j=1∑Nγjk[log(2π1)−logδk−2δk21(yj−μk)2]}其中nk=j=1∑Nγjk,k=1∑Knk=N2.确定Q函数 Q ( θ , θ ( i ) ) = ∑ k = 1 K { n k log α k + ∑ j = 1 N γ ^ j k [ log ( 1 2 π ) − log δ k − 1 2 δ k 2 ( y j − μ k ) 2 ] } γ ^ j k = α k ϕ ( y j ∣ θ k ) Z , j = 1 , 2 , . . , N ; k = 1 , 2 , . . , K , 是 当 前 模 型 参 数 下 的 概 率 , 称 为 响 应 度 。 Q(\theta,\theta^{(i)})=\sum_{k=1}^K{\{n_k\log{}\alpha_k+\sum_{j=1}^N{\hat\gamma_{jk}{[\log(\frac{1}{\sqrt{2\pi}})-\log{\delta_k}-\frac{1}{2\delta_k^2}(y_j-\mu_k)^2]}}\}} \\ \hat\gamma_{jk}=\frac{\alpha_k\phi(y_j|\theta_k)}{Z},j=1,2,..,N;k=1,2,..,K,是当前模型参数下的概率,称为响应度。 Q(θ,θ(i))=k=1∑K{nklogαk+j=1∑Nγ^jk[log(2π1)−logδk−2δk21(yj−μk)2]}γ^jk=Zαkϕ(yj∣θk),j=1,2,..,N;k=1,2,..,K,是当前模型参数下的概率,称为响应度。3.极大化Q函数,得到结果 μ k ^ = ∑ j = 1 N γ ^ j k y j ∑ j = 1 N γ ^ j k , k = 1 , 2 , . . , K δ k ^ 2 = ∑ j = 1 N γ ^ j k ( y j − μ k ) 2 ∑ j = 1 N γ ^ j k , k = 1 , 2 , . . , K α ^ k = n k N = ∑ j = 1 N γ ^ j k N , k = 1 , 2 , . . , K \hat{\mu_k}=\frac{\sum_{j=1}^N{\hat{\gamma}_{jk}y_j}}{\sum_{j=1}^N{\hat{\gamma}_{jk}}},k=1,2,..,K \\ \hat{\delta_k}^2=\frac{\sum_{j=1}^N{\hat{\gamma}_{jk}(y_j-\mu_k)^2}}{\sum_{j=1}^N{\hat{\gamma}_{jk}}},k=1,2,..,K \\ \hat{\alpha}_k=\frac{n_k}{N}=\frac{\sum_{j=1}^N{\hat{\gamma}_{jk}}}{N},k=1,2,..,K μk^=∑j=1Nγ^jk∑j=1Nγ^jkyj,k=1,2,..,Kδk^2=∑j=1Nγ^jk∑j=1Nγ^jk(yj−μk)2,k=1,2,..,Kα^k=Nnk=N∑j=1Nγ^jk,k=1,2,..,K
9.5 F函数的极大-极大算法
- F函数:
假
设
隐
变
量
Z
的
概
率
分
布
为
P
~
(
Z
)
,
定
义
分
布
P
~
与
参
数
θ
的
函
数
F
(
P
~
,
θ
)
如
下
假设隐变量Z的概率分布为\tilde{P}(Z),定义分布\tilde{P}与参数\theta的函数F(\tilde{P},\theta)如下
假设隐变量Z的概率分布为P~(Z),定义分布P~与参数θ的函数F(P~,θ)如下
F ( P ~ , θ ) = E P ~ [ log P ( Y , Z ∣ θ ) ] + H ( P ~ ) F(\tilde{P},\theta)=E_{\tilde{P}}[\log{P(Y,Z|\theta)}]+H(\tilde{P}) F(P~,θ)=EP~[logP(Y,Z∣θ)]+H(P~)称为F函数,其中 H ( P ~ ) = − E P ~ log P ~ ( Z ) H(\tilde{P})=-E_{\tilde{P}}\log{\tilde{P}(Z)} H(P~)=−EP~logP~(Z)是分布 P ~ ( Z ) 的 熵 \tilde{P}(Z)的熵 P~(Z)的熵。 - EM算法的一次迭代可由F函数的极大-极大算法实现。
(1)对固定的 θ ( i ) \theta^{(i)} θ(i),求 P ~ ( i + 1 ) \tilde{P}^{(i+1)} P~(i+1)使 F ( P ~ , θ ( i + 1 ) ) F(\tilde{P},\theta^{(i+1)}) F(P~,θ(i+1))极大化;
(2)对固定的 P ~ ( i + 1 ) \tilde{P}^{(i+1)} P~(i+1),求 θ ( i + 1 ) \theta^{(i+1)} θ(i+1)使
F ( P ~ ( i + 1 ) , θ ) F(\tilde{P}^{(i+1)},\theta) F(P~(i+1),θ)极大化;
9.6 广义EM算法
- 有时候直接极大化Q函数比较困难,我们可以寻找一个 θ ( i + 1 ) \theta^{(i+1)} θ(i+1)使得 Q ( θ ( i + 1 ) , θ ( i ) ) > Q ( θ ( i ) , θ ( i ) ) Q(\theta^{(i+1)},\theta^{(i)})>Q(\theta^{(i)},\theta^{(i)}) Q(θ(i+1),θ(i))>Q(θ(i),θ(i)),我们可以每次只改变参数的一维,其余分量不变(d次条件最大化)。
10.隐马尔科夫模型与条件随机场
10.1 隐马尔科夫模型的基本过程是怎样的?
- 是关于时序的概率模型,一个隐藏的马尔科夫链随机生成不可观测的状态随机序列,再由各个状态生成可观测的观测序列。
- 基本假设:
(1)齐次马尔科夫性假设。t时刻的状态只依赖于t-1时刻的状态,与其他时刻的状态及观测无关。
(2)观测独立性假设。t时刻的观测只依赖于t时刻的状态。 - 形式定义: λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π),其中 π \pi π是初始状态的概率向量,B是状态转移概率矩阵,A是观测概率矩阵。
10.2 隐马尔科夫模型的三个基本问题
- 概率计算问题:前向-后向算法
(1)前向概率:t时刻部分观测序列为 o 1 , o 2 , . . , o t o_1,o_2,..,o_t o1,o2,..,ot,状态为 q i q_i qi的概率 α t ( i ) = P ( o 1 , o 2 , . . , o t , i t = q i ∣ λ ) \alpha_t(i)=P(o_1,o_2,..,o_t,i_t=q_i|\lambda) αt(i)=P(o1,o2,..,ot,it=qi∣λ)计算过程: 初 值 : α 1 ( i ) = π i b i ( o 1 ) , i = 1 , 2 , . . , N 递 推 : α t + 1 ( i ) = [ ∑ j = 1 N α t ( j ) α j i ] b i ( o t + 1 ) 终 止 : P ( O ∣ λ ) = ∑ i = 1 N α T ( i ) 初值:\alpha_1(i)=\pi_ib_i(o_1) ,i=1,2,..,N \\ 递推:\alpha_{t+1}(i)=[\sum_{j=1}^N\alpha_t(j)\alpha_{ji}]b_i(o_{t+1}) \\ 终止:P(O|\lambda)=\sum_{i=1}^N{\alpha_T(i)} 初值:α1(i)=πibi(o1),i=1,2,..,N递推:αt+1(i)=[j=1∑Nαt(j)αji]bi(ot+1)终止:P(O∣λ)=i=1∑NαT(i)
(2)后向概率:在t时刻状态为 q i q_i qi的条件下,从t+1到T的部分观测序列为 o t + 1 , o t + 2 , . . . , o T o_{t+1},o_{t+2},...,o_{T} ot+1,ot+2,...,oT的概率 β t ( i ) = P ( o t + 1 , o t + 2 , . . . , o T ∣ i t = q i , λ ) \beta_t(i)=P(o_{t+1},o_{t+2},...,o_T|i_t=q_i,\lambda) βt(i)=P(ot+1,ot+2,...,oT∣it=qi,λ)计算过程: 初 值 : β T ( i ) = 1 , i = 1 , 2 , . . , N 递 推 : β t ( i ) = ∑ j = 1 N α i j b j ( o t + 1 ) β t + 1 ( j ) , i = 1 , 2 , . . , N 终 止 : P ( O ∣ λ ) = ∑ i = 1 N π i b i ( o 1 ) β 1 ( i ) 初值:\beta_T(i)=1,i=1,2,..,N \\ 递推:\beta_t(i)=\sum_{j=1}^N{\alpha_{ij}b_j(o_{t+1})\beta_{t+1}(j)},i=1,2,..,N \\ 终止:P(O|\lambda)=\sum_{i=1}^N{\pi_ib_i(o_1)\beta_1(i)} 初值:βT(i)=1,i=1,2,..,N递推:βt(i)=j=1∑Nαijbj(ot+1)βt+1(j),i=1,2,..,N终止:P(O∣λ)=i=1∑Nπibi(o1)β1(i)(3)前向-后向算法
给 定 模 型 λ , 观 测 序 列 为 O 的 概 率 是 P ( O ∣ λ ) = ∑ i = 1 N ∑ j = 1 N α t ( i ) a i j b j ( o t + 1 ) β t + 1 ( j ) t = 1 , 2 , . . , T − 1 给 定 模 型 λ 和 观 测 O , 在 时 刻 t 状 态 处 于 q i 的 概 率 γ t ( i ) = α t ( i ) β t ( i ) ∑ j = 1 N α t ( j ) β t ( j ) 给 定 模 型 λ 和 观 测 O , 在 时 刻 t 状 态 处 于 q i 的 概 率 且 t + 1 时 刻 状 态 处 于 q j 的 概 率 ζ t ( i , j ) = α t ( i ) a i j b j ( o t + 1 ) β t + 1 ( j ) ∑ i = 1 N ∑ j = 1 N α t ( i ) a i j b j ( o t + 1 ) β t + 1 ( j ) 给定模型\lambda,观测序列为O的概率是 \\ P(O|\lambda)=\sum_{i=1}^N\sum_{j=1}^N{\alpha_t(i)a_{ij}b_j(o_{t+1})\beta_{t+1}(j)} t=1,2,..,T-1 \\ 给定模型\lambda和观测O,在时刻t状态处于q_i的概率 \\ \gamma_t(i)=\frac{\alpha_t(i)\beta_t(i)}{\sum_{j=1}^N{\alpha_t(j)\beta_t(j)}} \\ 给定模型\lambda和观测O,在时刻t状态处于q_i的概率且t+1时刻状态处于q_j的概率 \\ \zeta_t(i,j)=\frac{\alpha_t(i)a_{ij}b_j(o_{t+1})\beta_{t+1}(j)}{\sum_{i=1}^N\sum_{j=1}^N{\alpha_t(i)a_{ij}b_j(o_{t+1})\beta_{t+1}(j)}} 给定模型λ,观测序列为O的概率是P(O∣λ)=i=1∑Nj=1∑Nαt(i)aijbj(ot+1)βt+1(j)t=1,2,..,T−1给定模型λ和观测O,在时刻t状态处于qi的概率γt(i)=∑j=1Nαt(j)βt(j)αt(i)βt(i)给定模型λ和观测O,在时刻t状态处于qi的概率且t+1时刻状态处于qj的概率ζt(i,j)=∑i=1N∑j=1Nαt(i)aijbj(ot+1)βt+1(j)αt(i)aijbj(ot+1)βt+1(j) - 学习问题
(1)监督学习的方法:经验估计近似
(2)Baum-Welch算法(EM算法)
参数更新公式: a i j = ∑ t = 1 T − 1 ζ t ( i , j ) ∑ t = 1 T − 1 γ t ( i ) b j ( k ) = ∑ t = 1 , o t = v k T − 1 γ t ( j ) ∑ t = 1 T − 1 γ t ( j ) π i = γ 1 ( i ) a_{ij}=\frac{\sum_{t=1}^{T-1}{\zeta_t(i,j)}}{\sum_{t=1}^{T-1}{\gamma_t(i)}} \\ b_j(k)=\frac{\sum_{t=1,o_t=v_k}^{T-1}{\gamma_t(j)}}{\sum_{t=1}^{T-1}{\gamma_t(j)}} \\ \pi_i=\gamma_1(i) aij=∑t=1T−1γt(i)∑t=1T−1ζt(i,j)bj(k)=∑t=1T−1γt(j)∑t=1,ot=vkT−1γt(j)πi=γ1(i) - 预测问题
(1)近似算法:在每个t时刻选择在该时刻最有可能出现的状态(根据 γ t ( i ) \gamma_t(i) γt(i)),从而得到一个状态序列。
(2)维特比算法(动态规划):从t=1时刻开始,递归的计算时刻t状态为i 的路径集合的最大概率,直至T时刻;T时刻概率最大的路径即为最优路径;向前递归找出路径的每个节点。
10.3 什么是马尔科夫随机场?
- 又称概率无向图模型,由无向图表示的联合概率分布,结点之间的链接关系表示了联合分布随机变量之间的条件独立性,因此,马尔科夫随机场的联合概率分布可以分解为无向图上最大团上的正值函数的乘积形式。
10.4 什么是条件随机场?什么是线性链条件随机场?
- 条件随机场是给定输入随机变量X的条件下,输出随机变量Y的条件概率分布模型;条件随机场的最大特点是假设输出变量之间的联合概率分布构成马尔科夫随机场;条件随机场是判别模型。
- 线性链条件随机场是定义在观测序列与标记序列的条件随机场,一般表示为给定观测序列条件下的标记序列的条件概率分布。满足马尔科夫性
P
(
Y
i
∣
X
,
Y
1
,
.
.
,
Y
i
−
1
,
Y
i
+
1
,
.
.
,
Y
n
)
=
P
(
Y
i
∣
X
,
Y
i
−
1
,
Y
i
+
1
)
P(Y_i|X,Y_1,..,Y_{i-1},Y_{i+1},..,Y_n)=P(Y_i|X,Y_{i-1},Y_{i+1})
P(Yi∣X,Y1,..,Yi−1,Yi+1,..,Yn)=P(Yi∣X,Yi−1,Yi+1)(1)条件随机场的参数化形式
P
(
y
∣
x
)
=
1
Z
(
x
)
exp
(
∑
i
,
k
λ
k
t
k
(
y
i
−
1
,
y
i
,
x
,
i
)
+
∑
i
,
l
μ
l
s
l
(
y
i
,
x
,
i
)
)
P(y|x)=\frac{1}{Z(x)}{\exp{(\sum_{i,k}{\lambda_kt_k(y_{i-1},y_i,x,i)}+\sum_{i,l}{\mu_ls_l(y_i,x,i)})}}
P(y∣x)=Z(x)1exp(i,k∑λktk(yi−1,yi,x,i)+i,l∑μlsl(yi,x,i))其中
t
k
t_k
tk是定义在边上的特征函数,称为转移特征;
s
l
s_l
sl是定义在点上的特征函数,称为状态特征。都是局部特征函数。
(2)条件随机场的简化形式
将转移特征和状态特征合并成一个向量,然后对i求和得到F P w ( y ∣ x ) = 1 Z w ( x ) exp ( w ⋅ F ( y , x ) ) F ( y , x ) = ( f 1 ( y , x ) , f 2 ( y , x ) , . . , f K ( y , x ) ) T f k ( y , x ) = ∑ i = 1 n f k ( y i − 1 , y i , x , i ) P_w(y|x)=\frac{1}{Z_w(x)}{\exp{(w \cdot F(y,x))}} \\ F(y,x)=(f_1(y,x),f_2(y,x),..,f_K(y,x))^T \\ f_k(y,x)=\sum_{i=1}^nf_k(y_{i-1},y_i,x,i) Pw(y∣x)=Zw(x)1exp(w⋅F(y,x))F(y,x)=(f1(y,x),f2(y,x),..,fK(y,x))Tfk(y,x)=i=1∑nfk(yi−1,yi,x,i)(3)条件随机场的矩阵形式
P w ( y ∣ x ) = 1 Z w ( x ) ∏ i = 1 n + 1 M i ( y i − 1 , y i ∣ x ) M i ( y i − 1 , y i ∣ x ) = exp ( ∑ k = 1 K w k f k ( y i − 1 , y i , x , i ) ) P_w(y|x)=\frac{1}{Z_w(x)}{\prod_{i=1}^{n+1}M_i(y_{i-1},y_i|x)} \\ M_i(y_{i-1},y_i|x)=\exp{(\sum_{k=1}^K{w_kf_k(y_{i-1},y_i,x,i)})} Pw(y∣x)=Zw(x)1i=1∏n+1Mi(yi−1,yi∣x)Mi(yi−1,yi∣x)=exp(k=1∑Kwkfk(yi−1,yi,x,i))
10.5 条件随机场的三个基本问题
- 概率计算问题(前向-反向算法)
α i T ( x ) = α i − 1 T ( x ) M i ( x ) β i ( x ) = M i + 1 ( x ) β i + 1 ( x ) P ( Y i = y i ∣ x ) = 1 Z ( x ) α i T ( y i ∣ x ) β i ( y i ∣ x ) P ( Y i − 1 = y i − 1 , Y i = y i ∣ x ) = 1 Z ( x ) α i − 1 T ( y i − 1 ∣ x ) M i ( y i − 1 , y i ∣ x ) β i ( y i ∣ x ) Z ( x ) = α n T ( x ) ⋅ 1 \alpha_i^T(x)=\alpha_{i-1}^T(x)M_i(x) \\ \beta_i(x)=M_{i+1}(x)\beta_{i+1}(x) \\ P(Y_i=y_i|x)=\frac{1}{Z(x)}\alpha_i^T(y_i|x)\beta_i(y_i|x) \\ P(Y_{i-1}=y_{i-1},Y_i=y_i|x)=\frac{1}{Z(x)}\alpha_{i-1}^T(y_{i-1}|x)M_i(y_{i-1},y_i|x)\beta_i(y_i|x) \\ Z(x)=\alpha_n^T(x) \cdot{1} αiT(x)=αi−1T(x)Mi(x)βi(x)=Mi+1(x)βi+1(x)P(Yi=yi∣x)=Z(x)1αiT(yi∣x)βi(yi∣x)P(Yi−1=yi−1,Yi=yi∣x)=Z(x)1αi−1T(yi−1∣x)Mi(yi−1,yi∣x)βi(yi∣x)Z(x)=αnT(x)⋅1还可以计算特征函数关于条件概率分布和联合概率分布的期望。 - 学习算法
采用最大似然估计的策略,具体有梯度下降,IIS,拟牛顿法。 - 预测问题(维特比算法)
(1)首先从前向后递推求出非规范概率的最大值,并记录路径。 δ i ( l ) = max 1 ≤ j ≤ m δ i − 1 ( j ) + w ⋅ F i ( y i − 1 = j , y i = l , x ) , l = 1 , 2 , . . , m ψ i ( l ) = a r g max 1 ≤ j ≤ m { δ i − 1 ( j ) + w ⋅ F i ( y i − 1 = j , y i = l , x ) } , l = 1 , 2 , . . . , m \delta_i(l)=\max_{1 \le j \le m}{\delta_{i-1}(j)+w \cdot F_i(y_{i-1}=j,y_i=l,x)},l=1,2,..,m \\ \psi_i(l)=arg\max_{1 \le j \le m}\{\delta_{i-1}(j)+w \cdot F_i(y_{i-1}=j,y_i=l,x)\},l=1,2,...,m δi(l)=1≤j≤mmaxδi−1(j)+w⋅Fi(yi−1=j,yi=l,x),l=1,2,..,mψi(l)=arg1≤j≤mmax{δi−1(j)+w⋅Fi(yi−1=j,yi=l,x)},l=1,2,...,m(2)从后往前寻找最优路径的节点。
11.聚类方法
11.1 什么是k-means算法?
- k-means算法原理:对于给定的样本集,按照样本之间的距离大小,将样本集划分为K个簇。让簇内的点尽量紧密的连在一起,而让簇间的距离尽量的大。即最小化 E = ∑ i = 1 k ∑ x ∈ C i ∣ ∣ x − μ i ∣ ∣ 2 2 μ i = 1 ∣ C i ∣ ∑ x ∈ C i x E=\sum_{i=1}^k\sum_{x \in C_i}{||x-\mu_i||_2^2} \\ \mu_i=\frac{1}{|C_i|}{\sum_{x \in C_i}x} E=i=1∑kx∈Ci∑∣∣x−μi∣∣22μi=∣Ci∣1x∈Ci∑x
- 具体操作:
(1)随机选择k个样本作为初始均值向量;
(2)计算每个样本点对所有均值的距离,按最小距离将样本点归入对应均值的簇;
(3)重新计算均值向量,若收敛,则算法停止,若不收敛,转(2); - 优缺点:
(1)原理比较简单,实现也是很容易,收敛速度快;聚类效果较优;主要需要调参的参数仅仅是簇数k。(2)对于不是凸的数据集比较难收敛;如果各隐含类别的数据不平衡,比如各隐含类别的数据量严重失衡,或者各隐含类别的方差不同,则聚类效果不佳;采用迭代方法,得到的结果只是局部最优;对噪音和异常点比较的敏感。
11.2 如何处理数据集中的样本不平衡?
- smote算法
- 1.对于少数类中的每一个样本,计算它到少数类样本集中所有样本的距离,得到其k近邻;
- 2.对于少数类的每一个样本x,随机选出一个k近邻的元素 x ^ \hat{x} x^,按如下方式构建新样本 x n e w = x + r a n d ( 0 , 1 ) ∗ ( x ^ − x ) x_new=x+rand(0,1)*(\hat x-x) xnew=x+rand(0,1)∗(x^−x)
- Smote算法的缺陷
- 没有很好的方法确定k值,只能反复尝试
- 会使得类间的边缘模糊,增大分类难度。
- EasyEnsemble算法
- 从多数类样本集中随机抽取部分样本,使得跟少数类样本数量相同,训练若干个弱分类器集成学习。