KMeansModel

class pyspark.mllib.clustering. KMeansModel ( centers : List [ VectorLike ] ) [source]

一种由k-means方法得出的聚类模型。

新增于版本 0.9.0。

示例

>>> data = array([0.0,0.0, 1.0,1.0, 9.0,8.0, 8.0,9.0]).reshape(4, 2)
>>> model = KMeans.train(
...     sc.parallelize(data), 2, maxIterations=10, initializationMode="random",
...                    seed=50, initializationSteps=5, epsilon=1e-4)
>>> model.predict(array([0.0, 0.0])) == model.predict(array([1.0, 1.0]))
True
>>> model.predict(array([8.0, 9.0])) == model.predict(array([9.0, 8.0]))
True
>>> model.k
2
>>> model.computeCost(sc.parallelize(data))
2.0
>>> model = KMeans.train(sc.parallelize(data), 2)
>>> sparse_data = [
...     SparseVector(3, {1: 1.0}),
...     SparseVector(3, {1: 1.1}),
...     SparseVector(3, {2: 1.0}),
...     SparseVector(3, {2: 1.1})
... ]
>>> model = KMeans.train(sc.parallelize(sparse_data), 2, initializationMode="k-means||",
...                                     seed=50, initializationSteps=5, epsilon=1e-4)
>>> model.predict(array([0., 1., 0.])) == model.predict(array([0, 1.1, 0.]))
True
>>> model.predict(array([0., 0., 1.])) == model.predict(array([0, 0, 1.1]))
True
>>> model.predict(sparse_data[0]) == model.predict(sparse_data[1])
True
>>> model.predict(sparse_data[2]) == model.predict(sparse_data[3])
True
>>> isinstance(model.clusterCenters, list)
True
>>> import os, tempfile
>>> path = tempfile.mkdtemp()
>>> model.save(sc, path)
>>> sameModel = KMeansModel.load(sc, path)
>>> sameModel.predict(sparse_data[0]) == model.predict(sparse_data[0])
True
>>> from shutil import rmtree
>>> try:
...     rmtree(path)
... except OSError:
...     pass
>>> data = array([-383.1,-382.9, 28.7,31.2, 366.2,367.3]).reshape(3, 2)
>>> model = KMeans.train(sc.parallelize(data), 3, maxIterations=0,
...     initialModel = KMeansModel([(-1000.0,-1000.0),(5.0,5.0),(1000.0,1000.0)]))
>>> model.clusterCenters
[array([-1000., -1000.]), array([ 5.,  5.]), array([ 1000.,  1000.])]

方法

computeCost (rdd)

返回此模型在给定数据上的K-means成本(点到其最近中心的距离平方和)。

load (sc, path)

从给定路径加载模型。

predict (x)

找出每个点在这个模型中属于哪个簇。

save (sc, 路径)

将此模型保存到给定路径。

属性

clusterCenters

获取聚类中心,表示为一个NumPy数组的列表。

k

集群的总数。

方法文档

computeCost ( rdd : pyspark.rdd.RDD [ VectorLike ] ) → float [source]

返回此模型在给定数据上的K均值成本(点到其最近中心的距离平方和)。

新增于版本 1.4.0。

Parameters
rdd : pyspark.RDD

要计算成本的点的RDD。

classmethod load ( sc : pyspark.context.SparkContext , path : str ) pyspark.mllib.clustering.KMeansModel [source]

从给定路径加载模型。

新增于版本 1.4.0。

predict ( x : Union [ VectorLike , pyspark.rdd.RDD [ VectorLike ] ] ) → Union [ int , pyspark.rdd.RDD [ int ] ] [source]

找出每个点在这个模型中属于的聚类。

新增于版本 0.9.0。

Parameters
x pyspark.mllib.linalg.Vector or pyspark.RDD

一个数据点(或点的RDD)以确定聚类索引。 pyspark.mllib.linalg.Vector 可以替换为等效对象(列表、元组、numpy.ndarray)。

Returns
int or pyspark.RDD of int

预测的聚类索引或如果输入是RDD,则为预测的聚类索引的RDD。

save ( sc : pyspark.context.SparkContext , path : str ) → None [source]

将此模型保存到给定路径。

新增于版本 1.4.0。

属性文档

clusterCenters

获取聚类中心,表示为一个NumPy数组的列表。

新增于版本 1.0.0。

k

集群的总数。

新增于版本 1.4.0。