SparkML机器学习之聚类(K

  • 时间:
  • 浏览:0
  • 来源:uu快3骗局_uu快3心得_开奖

举个例子,10个男生我能分为一几个多 多类,我先随机选着一几个多 多男生a b,如此对于c,我分别计算他与a b 的类事度,假设和a最类事,如此我丢到a这俩类里,经过第一轮,得到(1类){a,c,e,f,i}(2类) {b,d,g,h,j},现在我重新计算1类和2类的均值,假设为1.5和5.1,如此对这10个男生再判断它们与1.5 5.1的距离,和哪个相近就去哪边。第二轮迭代使得聚类更加精确。反复如此 ,直到某一次的迭代我发现不再有变化,如此就ok了。

既然要划分为k个簇,假如有一天算法首先随机的选着了k个对象,每个对象初始的代表了一几个多 多簇的中心。有日后 的对象就去计算它们与这k个中心的距离(这里距离假如有一天类事度),离哪个最近就把它们丢给哪个簇。第一轮聚类现在开使后,重新计算每个簇的平均值,将N中详细元素按照新的中心重新聚类。这俩过程不断的反复,使得每一几个多 多改进事先的划分都比事先效果好,直到准则函数收敛(聚类结果不再变化)。

输出结果为:

它和K-Means的区别是,K-Means是算出每个数据点所属的簇,而GMM是计算出那此数据点分配到各个类别的概率

GMM算法步骤如下:

1.猜测有 K 个类别、即有K个高斯分布。

2.对每一几个多 多高斯分布赋均值 μ 和方差 Σ 。

3.对每一几个多 多样本,计算其在各个高斯分布下的概率。

聚类假如有一天对少许未知标注(无监督)的数据集,按照数据之间的类事度,将N个对象的数据集划分为K个划分(K个簇),使类别内的数据类事度较大,而类别间的数据类事较小。比如用户画像假如有一天并详细都是很常见的聚类算法的应用场景,基于用户行为价值形式可能性元数据将用户分成不同的类。

可能性这俩存在问题,所以有有了Bisecting k-means(二分K均值)

SparkML中主要聚类有以下几种:

上面讲的详细都是硬聚类,硬聚类即一定是属于某一几个多 多类,比如我有一几个多 多簇A和B,如此所有的对象要不属于A要不就属于B,可能性性会有第并详细都是可能性。而软聚类,使用概率的法子 ,一几个多 多对象可不都都可以是150%属于A,40% 属于B,即不详细属于同一几个多 多分布,假如有一天以不同的概率分属于不同的分布GMM(高斯混合模型)假如有一天并详细都是软聚类。

4.每一几个多 多样本对某高斯分布的贡献可不都都可以由其下的概率表示。并把该样本对该高斯分布的贡献作为权重来计算加权的均值和方差以替代其如此 的均值和方差。

5.重复3~4直到每一几个多 多高斯分布的均值和方差收敛。

假如有一天K-means有日后 缺点,其一是受初始值影响较大。下面这张图很好的解释了这俩缺点,人眼一看就能看出来,可能性是分为一几个多 多聚类,应该如此分为左边那样的,可能性用K-means结果会是右边如此 ,明显不对,所以有说受初始值的影响会比较大。

也被称为k-均值,是并详细都是最广泛使用的聚类算法,也是有日后 聚类算法的基础。来看下它的原理:

主假如有一天为了改进k-means算法随机选着初始中心的随机性造成聚类结果不选着性的间题,而Bisecting k-means算法受随机选着初始中心的影响比较小。

先将所有点儿作为一几个多 多簇,假如有一天将该簇一分为二。事先选着其中一几个多 多簇【具有最大SSE值的一几个多 多簇】继续进行划分,二分这俩簇事先得到的一几个多 多子簇,选着一几个多 多子簇的总SSE最小的划分法子 ,如此 也能保证每次二分得到的一几个多 多簇是比较优的(也可能性是最优的)。

SSE(Sum of Squared Error),也假如有一天误差平方和,它计算的是拟合数据和原始数据对应点的误差的平方和,它是用来度量聚类效果的一几个多 多指标。SSE越接近于0,说明模型选着和拟合更好,数据预测也越成功。

附:lda_data.txt

可不都都可以发现,使用kmeans和BisectingKMeans,聚类结果一般是不一样的。

LDA是一几个多 多三层贝叶斯概率模型,含有词、主题和文档三层价值形式。

LDA可不都都可以用来生成一篇文档,生成时,每个词详细都是通过“以一定概率选着了某个主题,并从这俩主题中以一定概率选着某个词语”,如此 反复进行,就可不都都可以生成一篇文档;反过来,LDA又是并详细都是非监督机器学习技术,可不都都可以识别出大规模文档集或语料库中的主题。

附:kmeans_data.txt

输出结果为:

输出结果为:

输出结果: