SparkML机器学习之聚类(K-Means、GMM、LDA)
聚类的概念 聚类就是对大量未知标注(无监督)的数据集,按照数据之间的相似度,将N个对象的数据集划分为K个划分(K个簇),使类别内的数据相似度较大,而类别间的数据相似较小。比如用户画像就是一种很常见的聚类算法的应用场景,基于用户行为特征或者元数据将用户分成不同的类。 常见聚类以及原理 K-means算法 也被称为k-均值,是一种最广泛使用的聚类算法,也是其他聚类算法的基础。来看下它的原理: 既然要划分为k个簇,因此算法首先随机的选择了k个对象,每个对象初始的代表了一个簇的中心。其他的对象就去计算它们与这k个中心的距离(这里距离就是相似度),离哪个最近就把它们丢给哪个簇。第一轮聚类结束后,重新计算每个簇的平均值,将N中全部元素按照新的中心重新聚类。这个过程不断的反复,使得每一个改进之后的划分都比之前效果好,直到准则函数收敛(聚类结果不再变化)。 举个例子,10个男生我要分为2个类,我先随机选择2个男生a b,那么对于c,我分别计算他与a b 的相似度,假设和a最相似,那么我丢到a这个类里,经过第一轮,得到(1类){a,c,e,f,i}(2类) {b,d,g,h,j},现在我重新计算1类和2...

