非监督学习是另一种研究的比较多的学习方法,它与监督学习的不同之处,在于我们事先没有任何训练样本,而需要直接对数据进行建模。是否有监督(Supervised),就看输入数据是否 有标签(Label)。输入数据有标签(即数据有标识分类),则为有监督学习,没标签则为无监督学习。这听起来似乎有点不可思议,但是在我们自身认识世界的过程中很多处都用到了无监 督学习。比如我们去参观一个画展,我们完全对艺术一无所知,但是欣赏完多幅作品之后,我们也能把它们分成不同的派别(比如哪些更朦胧一点,哪些更写实一些,即使我们不知道什么 叫做朦胧派,什么叫做写实派,但是至少我们能把他们分为两个类)。无监督学习里典型的例子就是聚类了。聚类的目的在于把相似的东西聚在一起,而我们并不关心这一类是什么。 因此,一个聚类算法通常只需要知道如何计算相似度就可以开始工作了。 在非监督式学习中,数据并不被特别标识,学习模型是为了推断出数据的一些内在结构。
非监督学习在聚类上同监督学习分类效果相比无法做到同样的完美,那么我们为什么还要使用非监督学习聚类?因为在很多实际应用中,并没有大量的标识数据进行使用,并且标识数据需 要大量的人工工作量,非常困难。那么我们就需要非监督学习根据数据的相似度,特征及相关联系进行模糊判断分类。 常见的应用场景包括关联规则的学习以及聚类等。常见非监督学习算法包括聚类算法、奇异值分解、主成分分析(PCA)、SVD矩阵分解、独立成分分析(ICA)、Apriori算法以及K-均值算 法(K-Means)、稀疏自编码(sparse auto-encoder)等等。
1.3.2.1. 聚类算法¶
聚类算法就是将一堆数据进行处理,根据它们的相似性对数据进行聚类。
聚类,就像回归一样,有时候人们描述的是一类问题,有时候描述的是一类算法。聚类算法通常按照中心点或者分层的方式对输入数据进行归并。所以的聚类算法都试图找到数据的内在结构, 以便按照最大的共同点将数据进行归类。常见的聚类算法包括 k-Means算法以及期望最大化算法(Expectation Maximization, EM)。
聚类算法有很多种,具体如下:中心聚类、关联聚类、密度聚类、概率聚类、降维、神经网络/深度学习。
1.3.2.2. K-均值算法(K-Means)¶
K-means