当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python pyspark StreamingKMeansModel用法及代码示例


本文简要介绍 pyspark.mllib.clustering.StreamingKMeansModel 的用法。

用法:

class pyspark.mllib.clustering.StreamingKMeansModel(clusterCenters, clusterWeights)

可以执行质心在线更新的聚类模型。

每个质心的更新公式由下式给出

  • c_t+1 = ((c_t * n_t * a) + (x_t * m_t)) /(n_t + m_t)

  • n_t+1 = n_t * a + m_t

其中

  • c_t:第 n 次迭代的质心。

  • n_t:第 n 次迭代时与质心相关联的样本(或)权重的数量。

  • x_t:最接近 c_t 的新数据的质心。

  • m_t:最接近 c_t 的新数据的样本(或)权重数

  • c_t+1:新质心。

  • n_t+1:新的权重数。

  • a:衰减因子,它给出了健忘。

1.5.0 版中的新函数。

参数

clusterCenters pyspark.mllib.linalg.Vector 或可隐藏的列表

初始聚类中心。

clusterWeights pyspark.mllib.linalg.Vector 或可隐藏

分配给每个集群的权重列表。

注意

如果 a 设置为 1,则它是先前数据和新数据的加权平均值。如果它设置为零,则完全忘记旧的质心。

例子

>>> initCenters = [[0.0, 0.0], [1.0, 1.0]]
>>> initWeights = [1.0, 1.0]
>>> stkm = StreamingKMeansModel(initCenters, initWeights)
>>> data = sc.parallelize([[-0.1, -0.1], [0.1, 0.1],
...                        [0.9, 0.9], [1.1, 1.1]])
>>> stkm = stkm.update(data, 1.0, "batches")
>>> stkm.centers
array([[ 0.,  0.],
       [ 1.,  1.]])
>>> stkm.predict([-0.1, -0.1])
0
>>> stkm.predict([0.9, 0.9])
1
>>> stkm.clusterWeights
[3.0, 3.0]
>>> decayFactor = 0.0
>>> data = sc.parallelize([DenseVector([1.5, 1.5]), DenseVector([0.2, 0.2])])
>>> stkm = stkm.update(data, 0.0, "batches")
>>> stkm.centers
array([[ 0.2,  0.2],
       [ 1.5,  1.5]])
>>> stkm.clusterWeights
[1.0, 1.0]
>>> stkm.predict([0.2, 0.2])
0
>>> stkm.predict([1.5, 1.5])
1

相关用法


注:本文由纯净天空筛选整理自spark.apache.org大神的英文原创作品 pyspark.mllib.clustering.StreamingKMeansModel。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。