2018 & 2019's One algrithm per day



Clustering



Clustering中文译“聚类”,目的是将相似的东西分到一类。因为不需要带标签的数据进行训练学习,因而是一种无监督学习过程,需要和Classification(分类)区别开来。

Day 5 | K-Means - 1.19 


K-means是最基本的聚类算法(baseline般的存在),以欧氏距离为特征把m维的数据点映射到欧氏空间中进行聚类。

算法的核心思想是根据数据初始化K个中心点(center),然后按样本点和中心点的距离将样本点划分到不同的类中。使得每个样本点到所在聚类中心的距离尽可能地小于到其他类中心的距离。而剩下的误差就是问题的不可分性以及算法的固有缺陷了。基于上述要求可以写出目标函数J=\sum_{n=1}^N\sum_{k=1}^K\pi_{nk} ||X_n-\mu_k||^2。优化时,令\frac{dJ}{d\mu_k} =0\mu_k=\frac{\sum_n\pi_{nk}x_n}{\sum_n\pi_{nk}}---①。

由此可得K-means的伪代码:

1、随机选取k个中心点\mu_k;

2、将每个数据点归类到离它最近中心点的类中;(固定\mu_k更新\pi_{nk}

3、固定\pi_{nk},由①式更新\mu_k

4、重复2、3步优化J直到迭代至最大步数或者J收敛为止。

最后,总结一下K-means算法的一些特点:首先算法有简单,运算时间短的优点。但因为初始中心点的随机性只能收敛到局部最优,这是其最大的缺陷。所以K-means算法都需要重复多次试验再选取最优的结果。

K-means实现

Day 6 | K-Medoids & Hungarian algorithm - 1.21


K-means 与 K-medoids不同的地方在于中心点的选取。K-means算法的中心点相当于直接取同类数据的”均值“,这样对非数值类型的特征是不友好的。比如狗的品种(萨摩、柯基),距离||x_i-x_j||^2是无法度量的。

而K-medoids的中心点相当于取样本的“中值”,其中心点将会从原样本点中产生,只要将K-means的欧式距离度量改为相似度度量,得目标函数J=\sum_{n=1}^N\sum_{k=1}^K\pi_{nk}V(x_n,\mu_k)--V为x_n\mu_k的dissimilarity度量函数,可以用相似矩阵来实现,有点相对距离的意味。

总结:除了应用范围更广外,K-medoids还比K-means更好地消除outlier的影响。不过初始化中心点的方法同样决定其结果只能是局部最优。

Day 7 | GMM - 1.22


混合高斯模型是一种基于数据学习出概率密度函数的参数,是一种soft assignment。其好处是同时获得每个样本的cluster和assign到每个cluster的概率。所以除了用在clustering外,还能用于density estimation。对于风险较大的任务,算法能根据概率判断是否对决策有把握,在把握比较低的时候能拒绝参与决策。

介绍完背景,接着切入算法的原理。首先,m维向量的正态概率密度是长这样的N(x)=\frac{1}{(2\pi)^{\frac{n}{2} }|\sum|^{\frac{1}{2} }} e^{-\frac{1}{2}(x-\mu)^T \sum^{-1}(x-\mu)},高斯混合分布为p_m(x)=\sum_{i=1}^kp(k)p(x|\mu_k,\Xi_ k)。贝叶斯分类器的最佳划分为argmax_{(k)}p_m(k=i|x_j)=\frac{p(k=i)p(x_j|\mu_i,\Xi_i)}{\sum_{k=1}^Kp(k)p(x_j|\mu_i,\Xi_i)}--①。

优化上式其实相当于求出每个k类分布下最有可能的高斯分布参数(最大化似然)以及在每个混合高斯模型下可能性最大的K类(K的后验概率分布p(k|x_j,\theta _k))。是应用EM算法解最大似然估计的一个具体例子,在原数据x不完整的情况下,引入隐变量k能“补全”缺少的信息解出似然函数。EM算法就是分别处理隐变量k(E步)以及模型参数\theta(M步)的一个过程。即:

1、根据当前参数求①式样本关于k的后验概率(E步);

2、对似然函数LL(\Theta )=ln(\prod\nolimits_{j=1}^np_m(xj) )分别求导更新\mu_k,\Xi _k,p(k)(M步)

Day 8 | EM(Expectation Maximization)算法 - 1.24


EM算法是一种解决特殊最大似然问题的迭代方法。这类问题通常引入合适的隐变量来获得最大似然解,当估计p(X|\theta )中的\theta很困难,而优化p(X,Z|\theta)却容易得多时,此时EM算法就适用了。

推导过程

对数似然函数引入一个关于隐变量的分布q(Z)作分解:logp(X|\theta)=\sum_Zq(Z)log{\frac{p(X,Z|\theta)}{q(Z)} +(-\sum_Zq(Z)log{\frac{p(Z|X,\theta)}{q(Z)}})}=g(q,\theta)+KL(q||p)

KL(q||p)是散度(非负的),所以肯定有g(q,\theta)≤logp(X|\theta),即g(q,\theta)logp(X|\theta)的下界。

E步

\theta^t是固定的,易知logp(X|\theta)q(Z)无关,为一个定值。这时可以令q(Z)=p(Z|X,\theta)使得KL散度为0。logp(X|\theta)=g(q,\theta)=\sum_Zp(Z|X,\theta^t)logp(X,Z|\theta)-\sum_Zp(Z|X,\theta^t)logp(Z|X,\theta^t)=Q(\theta,\theta^t)+const

这时对数似然函数已经得到了很大的化简,Q(\theta,\theta^t)是包含样本变量和隐变量的似然函数logp(X,Z|\theta)关于后验概率p(Z|X,\theta^t)期望。

M步

是固定的,对logp(X|\theta)求导更新相当于对Q(\theta,\theta^t)求导。更新\theta时,若KL散度仍是0,则说明达到某一个局部最优解了,迭代可以停止了;一般KL散度变为非0,更新会提升对数似然的上界。

有时M步除了做最大似然之外,也可以引入先验概率做Maximum a Posterior(MAP)来做。而当似然函数求不出最大值时,还可以做Generalized EM(GEM),只需要能得到比旧值更好的结果就行。

Day 9 | 向量量化(Vector Quantization) - 1.26


VQ可以理解为:将一个向量空间中的点用其中的一个有限向量子集来进行编码(聚类后的索引总能起到压缩效果的)。

Day 1 | 谱聚类(Spectral Clustering)- 11.15


比起传统K-Means,谱聚类对数据分布的适应性更强,聚类效果优秀,计算量小同时实现起来也不复杂。

主要思想是把数据看作空间中的点,通过图论的无向图描述数据关系并通过矩阵分析进行“切图”聚类。

⚪无向权重图

主要由对称的邻接矩阵W和对角矩阵D描述。

度矩阵

顶点的度

vol(A)可看作子图的权重

⚪邻接矩阵

邻接矩阵常用KNN(K近邻)方法获取,为了保持对称性,一般加条件:

或者通过加核的方法处理点的邻接度,常用高斯核函数RBF

⚪拉普拉斯矩阵

拉普拉斯矩阵L=D-W,有良好的性质:对称,特征数都是实数,矩阵半正定以及以下关系:

矩阵降维特征空间的获取

▲另一个常用的形式是f^TLf=\sum_{1\leq i<j\leq n}w_{ij}(f_i-f_j)^2

⚪无向图切图

两个子图间切图的(损失)权重

k个子图的切图

被切断的边的权值之和就是cut值。让子图内的点权重和大,子图间的点权重和小。最小化cut(A1,A2,..Ak)可实现,但会存在只切小权重边缘点的问题。

Like this

⚪RatioCut切图

为了解决上面的问题,RatioCut不仅最小化切图损失权重,还考虑最大化每个子图的个数(类似于平均权重)

RatioCut

引入指示向量(特征向量)hij(表示样本i属于j类)有h_i^Th_i=|A_j|*\frac{1}{|A_j|}=1,h_i^Th_j=0

j=1,2,...k

转化为最小化迹

目标函数

⚪Ncut切图

子图样本个数多并不意味子图的权重大(子图类内相似性大),所以Ncut采用子图的权重和vol(Ai)进行正规化:

Ncut切图

目标函数

解的过程与RatioCut相近,不同的是H^TH\neq I。将D拆开有另一个表示形式:

拆解H的形式

*这里的指示向量相当于h_i=D^{-\frac{1}{2}}f_i

D^{-\frac{1}{2}} LD^{-\frac{1}{2} }标准化拉普拉斯矩阵,即\frac{Lij}{\sqrt{didj} }

最后,谱聚类还是有点缺点的:(1)若谱聚类的最终的维度非常高,聚类的效果以及运算时间也不友好;(2)谱聚类比较依赖相似矩阵,所取的相似矩阵不同会影响到聚类效果。

频谱切图


Optimize

目标函数有了,怎么解出结构矩阵H却是个NP hard。引入瑞利商-Rayleigh Quotient后可以巧妙地解目标函数,以Radio Cut为例:

argmin_{(H)}tr(H^TLH)相当于分别对每个向量h_iargmin_{(h_i)}h_i^TLh_i

⚪而Rayleigh quotient指出,R(L,h)=\frac{h^TLh}{h^Th}的最大值和最小值分别在L的最大特征值以及最小特征值取得,并且极值也在对应的其他特征值取得。由于h_i^Th_i=1,所以minR(L,h)->minh^TLh

分别求出L除0外的k个最小特征值对应的特征向量,就有H的影子了。最后给这k个特征向量做Kmeans就能得到样本的聚类结果了。

Day 14 | Hierarchical Clustering - 2.1


Day 2 | 马尔可夫链(Markov Chains)- 11.23


Day 3 | 评估准则 - 12.8


转自维基百科

Day 4 | 协方差的意义 - 1.18


协方差Cov(X,Y)描述两个随机变量X和Y之间的相互关系,具体可以分为如下三种情况:

在图中的区域(1)中,有 X>EX ,Y-EY>0 ,所以(X-EX)(Y-EY)>0;

在图中的区域(2)中,有X<EX ,Y-EY>0 ,所以(X-EX)(Y-EY)<0;

在图中的区域(3)中,有X<EX ,Y-EY<0 ,所以(X-EX)(Y-EY)>0;

在图中的区域(4)中,有X>EX ,Y-EY<0 ,所以(X-EX)(Y-EY)<0。

平均来说,就是正相关的面积大部分分布在(1)(3),负相关的面积大部分分布在(2)(4)。

协方差的意义如同(1)(3)的面积减去(2)(4)的面积,说明X,Y的相关关系。

由此可看出方差是失去方向信息的协方差,只指示数据分布离平均值的离散程度。

正相关

负相关

不相关

Day 9 | t test & p-value - 1.25


Day 10 | Soft Thresholding - 1.29


Soft Thresholding又称软阈值,一般在稀疏规则化的文章中都会出现。

Soft Thresholding 有三种常用表达方式

1、soft(\omega ,\lambda)=sgn(\omega)(|\omega|-\lambda)_+

2、soft(\omega ,\lambda)=sgn(\omega)max(0,|\omega|-\lambda)

3、soft(\omega,\lambda)=\omega+\lambda,\omega\leq-\lambda|or|0,|\omega|\leq\lambda|or|\omega-\lambda,\omega\geq\lambda

第三种表达方式

Soft Thresholding 可以优化以下问题

argmin_{(x)}||x-b||_2^2+\lambda||x||_1argmin_{x}\alpha x^2-2\beta x+2\lambda |x|

上式(第一项)相当于解f(x_i)=(x_1-b_1)^2+\lambda|x|的最小值,逐一对x_i求导并令导数为0即可得到解为\tilde{x} =soft(b,\frac{\lambda}{2})=sgn(b)(|b|-\frac{\lambda}{2})_+\frac{1}{\alpha}sgn(\beta)(|\beta|-\lambda)_+

Day 11 | Dimesionality Reduction - 1.30


首先,关于特征“feature”有两种重要的处理方法-feature selection 和 dimensionality reduction。前者(选出重要的特征并抛弃不重要的特征)可以看作是后者(把高维向量映射成低维向量)的特例。

降维的通常目标是最大限度地降低数据的维度同时保留目标的重要信息。

PCA、LDA...

Day 12 | (瑞利商)Rayleigh Quotient - 1.31


瑞利商常用于优化拉普拉斯矩阵构成的算子,除了优化谱聚类外,还能优化PCA、Fisher LDA等结构相似的算子

1、普通瑞利商R(L,h)=\frac{h^TLh}{h^Th}

可以看出对h幅值进行正则化既不影响R(L,h)的取值,也不改变h的方向

maxR(L,h)可以转化为拉格朗日乘子问题maxR(L,h)=\frac{h^TLh}{h^Th},s.t.h^Th=c

J(h)=h^TLh-\lambda (h^Th-c)\frac{dJ(h)}{dh}=0\Rightarrow Lh=\lambda h

所以R(L,h)的极值为L的特征值\lambda,对应的解为其特征向量。

普通瑞利商能解Ratio CutPCA:maxp^TA^TAp=p^TRp,s.t.p^Tp=1

2、泛化瑞利商R(L,h)=\frac{h^TLh}{h^TDh}=\frac{f^T(D^{-\frac{1}{2}}LD^{-\frac{1}{2}})f}{f^Tf}

上式加上正则化约束h^TDh=c后的解为Lh=\lambda Dh

作变形h=D^{-\frac{1}{2}}f,可得D^{-\frac{1}{2}}LD^{-\frac{1}{2}}f= \lambda f

泛化瑞利商能解NcutFisher LDA(线性判别分析).

Day 13 | AUC & ROC - 3.1


ROC曲线全称为受试者工作特征曲线(Receiver operating characteristic curve)。最早运用实在军事上,雷达兵会难以区分敌机和飞鸟,每个雷达兵的预报标准(谨慎程度)不同,将他们漏报和错报的概率画到二维坐标上(纵轴为敏感性-对应准确预报概率,横轴为特异性-对应错报概率)。汇总后会发现预报性能分布在一条曲线上,对应于不同取阀值区分正负样本的性能。

从列联表中引出不同指标

减小判别正类的阀值,会同时提高准确率和误报率,这说明离左上角最近的点是这个系统的最佳性能。通常我们只关心上报的情况,所以以TPR为纵坐标和以TNR为横坐标即可画出ROC曲线,分别对应与收益和代价。

分类的四种情况

由于ROC曲线不能直接说明分类器的效果,所以就引入了数值AUC(Area Under Curve)来直观地衡量分类器的效果。AUC即ROC曲线下与坐标轴围成的面积。

用一句话来说明AUC的意义,就是:随机取一个正例和一个负例,分类器给正样本打分高于负样本的概率。

AUC判断分类器的几种情况:

1、AUC=1,是完美分类器,至少存在一个阀值能得出完美预测。

2、AUC=0.5,跟随机预测一样,模型没有预测价值。

3、AUC<0.5,比随机预测还差;但只要反预测,就能优于随机预测。

最后说一下ROC和AUC的一个很好的特性,测试集中的正负样本分布变化时,ROC曲线能保持稳定。如下图所示:

Reference

zhwhong的文章(简书):机器学习之分类性能度量指标 : ROC曲线、AUC值、正确率、召回率

等.

猜你喜欢

转载自blog.csdn.net/NeyoShinado/article/details/88422377