分类
无监督学习可以分为两类:
一类是化繁为简,实际上是聚类和降维;
另一类是无中生有,即生成算法。
聚类算法
下述两种算法的区别在于,K-means聚类要事先自己设定要划分为几个cluster,而HAC不需要。
K-means聚类
①人工设定有k个cluster,并为他们设置K个随机的examples。
②为所有的样本计算出他们最可能属于的cluster(计算距离)。
③对每个cluster求mean(均值)得到每个cluster的中心。
④重复以上步骤。
HAC(Hierarchical Agglomerative Clustering即 层次聚合聚类)
其思想与哈夫曼树有些许类似:首先找出两个最相似的examples,去均值后合并为一个example。于是examples的总量减少了1,重复这个步骤,得到一个tree,根据每一层的划分可以得到每个examples之间大致的相似度。
对于建立好的树,比如切一刀在红线位置,则整个树被划分为两个cluster;切一刀在蓝线位置,则划分为三个cluster…
降维算法
分布式表征
实际上仅仅用cluster来表示一个样本的特征很不全面,因为一个样本可能有多个cluster的特征,粗暴地将其分到一个cluster内,会导致实际上丢失了一些有用的数据。
例如下图,一个人是强化系的,但是也会具有其他系的特征,粗暴地完全归入强化系会导致有些有用的数据丢失。
所以我们可以使用分布式表征。实际上也就是降维。
PCA(主成分分析)
此处附上microstrong大佬的一篇文章,从很多角度讲述了PCA算法。PCA算法讲解