Как рассчитать точность модели кластеризации K-средних из значения «В пределах заданной суммы квадратов ошибок» в Spark? - PullRequest
0 голосов
/ 17 мая 2018

Я работаю со Spark и задаюсь вопросом, как получить значение точности для созданной модели кластеризации K-средних. При проверке API-интерфейсов Spark-KMeansModel я обнаружил «ComputeCost», и он возвращает значение «В пределах установленной суммы квадратов ошибок».

Можно ли рассчитать точность модели, созданной из значения "В пределах заданной суммы квадратов ошибок"?

Или есть ли в Spark какой-либо другой вариант для его получения? Пожалуйста, сообщите мне об этом.

Заранее спасибо :)

Ответы [ 2 ]

0 голосов
/ 21 октября 2018

Если вы используете pyspark для запуска кластеризации K-Means, получить «В пределах установленной суммы квадратов ошибок» довольно просто:

#K-Means
from pyspark.ml.clustering import KMeans

ClusterData=data.select("ID","features")

#Fitting
kmeans = KMeans().setK(10).setSeed(1)
model = kmeans.fit(ClusterData)

#Evaluation

wssse = model.computeCost(ClusterData)
print("Within Set Sum of Squared Errors = " + str(wssse))

#Results
centers = model.clusterCenters()
print("Cluster Centers: ")
for center in centers:
 print(center)

Информация о центре кластера является еще одним хорошим индикатором, который впоследствии может быть передан винструмент визуализации.

0 голосов
/ 17 мая 2018

Точность является полезным показателем в контролируемом обучении, таком как классификация. Однако в случае неконтролируемого обучения (например, KMeans) точность отсутствует (так как отсутствует маркированный стандарт данных / золотой стандарт, с которым можно было бы сравнивать.

Предполагая, что вы используете Spark 2.3.0, вы можете использовать ClusteringEvaluator для оценки качества вашей KMeansModel. Вы можете найти больше информации в документах: https://spark.apache.org/docs/2.3.0/api/java/org/apache/spark/ml/evaluation/ClusteringEvaluator.html

...