使用pyspark进行机器学习(分类问题)
使用pyspark进行机器学习(回归问题)
BisectingKMeans
class pyspark.ml.clustering.BisectingKMeans(self, featuresCol="features", predictionCol="prediction", maxIter=20, seed=None, k=4, minDivisibleClusterSize=1.0)
参数解释
maxIter: 最大迭代次数
K:聚类簇数
minDivisibleClusterSize: 聚类的最少数据点数(>1)或比例(0-1之间)
fit(dataset, params=None)方法
拟合后的模型拥有的方法和属性
clusterCenters(): 获取聚类中心,numpy array类型
computeCost():计算点与其中心的平方和距离
Transform():对预测数据进行预测
hasSummary:训练模型是否有summary
Summary:获取summary
拥有对参数的getter和setter方法
Summary拥有的属性
cluster:预测的聚类中心
clusterSizes:每个聚类的大小
K:聚类个数
Predictions:由模型的transforn方法产生的预测数据框
代码
from pyspark.ml.linalg import Vectors
From pyspark.ml.clustering import BisectingKMeans
data = [(Vectors.dense([0.0, 0.0]),), (Vectors.dense([1.0, 1.0]),),(Vectors.dense([9.0, 8.0]),), (Vectors.dense([8.0, 9.0]),)]
df = spark.createDataFrame(data, ["features"])
bkm = BisectingKMeans(k=2, minDivisibleClusterSize=1.0)
model = bkm.fit(df)
centers =