Сега използвам K-средства за клъстериране и следвам този урок и API.
Но искам да използвам персонализирана формула за изчисляване на разстояния. И така, как мога да предам персонализирани функции за разстояние в k-средства с PySpark?
Сега използвам K-средства за клъстериране и следвам този урок и API.
Но искам да използвам персонализирана формула за изчисляване на разстояния. И така, как мога да предам персонализирани функции за разстояние в k-средства с PySpark?
По принцип използването на различна мярка за разстояние няма смисъл, тъй като k-означава (за разлика от k-medoids) алгоритъмът е добре дефиниран само за евклидови разстояния.
Вижте Защо алгоритъмът за клъстериране на k-средства използва само метрика на евклидово разстояние? за обяснение.
Освен това MLlib алгоритмите са внедрени в Scala, а PySpark предоставя само обвивките, необходими за изпълнение на Scala код. Следователно предоставянето на персонализиран показател като функция на Python не би било технически възможно без значителни промени в API.
Моля, имайте предвид, че от Spark 2.4 има две вградени мерки, които могат да се използват с pyspark.ml.clustering.KMeans
и pyspark.ml.clustering.BisectingKMeans
. (вижте DistanceMeasure Param
).
Използвайте на свой собствен риск.