我正在 pyspark 中试验聚类模型。我试图获得适合不同 K 值的簇的均方成本
def meanScore(k,df):
inputCol = df.columns[:38]
assembler = VectorAssembler(inputCols=inputCols,outputCol="features")
kmeans = KMeans().setK(k)
pipeModel2 = Pipeline(stages=[assembler,kmeans])
kmeansModel = pipeModel2.fit(df).stages[-1]
kmeansModel.computeCost(assembler.transform(df))/data.count()
当我尝试调用此函数来计算数据框中不同 K 值的成本时
for k in range(20,100,20):
sc = meanScore(k,numericOnly)
print((k,sc))
我收到属性错误:AttributeError:“KMeansModel”对象没有属性“computeCost”
我对 pyspark 相当陌生,刚刚学习,我真诚地感谢任何帮助。谢谢
正如 Erkan Sirin 提到的,computeCost 在最近的版本中已被弃用,这可能会帮助您解决问题
# Make predictions
predictions = model.transform(dataset)
from pyspark.ml.evaluation import ClusteringEvaluator
# Evaluate clustering by computing Silhouette score
evaluator = ClusteringEvaluator()
silhouette = evaluator.evaluate(predictions)
print("Silhouette with squared euclidean distance = " + str(silhouette))
希望对您有帮助,您可以查看官方文档以获取更多信息
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)