Open DrPepper8888 opened 6 months ago
from pyspark.ml.feature import VectorAssembler from pyspark.ml.feature import StandardScaler from pyspark.ml.clustering import KMeans # 假设 df 是你的 DataFrame,并且包含了需要聚类的特征 # 首先,创建一个 VectorAssembler 来组合所有特征 assembler = VectorAssembler(inputCols=df.columns, outputCol="features") # 将原始 DataFrame 转换为包含特征向量的 DataFrame df_assembled = assembler.transform(df) # 创建一个 StandardScaler 对象,用于标准化特征 scaler = StandardScaler(inputCol="features", outputCol="scaledFeatures", withStd=True, withMean=False) # 对特征向量进行标准化 df_scaled = scaler.fit(df_assembled).transform(df_assembled) # 现在 df_scaled 包含了标准化后的特征向量,可以用于 k-means 聚类 # 创建一个 KMeans 模型 kmeans = KMeans().setK(3).setFeaturesCol("scaledFeatures") # 训练 k-means 模型 model = kmeans.fit(df_scaled) # 打印模型的摘要信息 print(model.summary()) # 可以使用 model.transform(df_scaled) 来对原始数据进行聚类