3

Spark's mlys'i pyspark'ta kullandığımda küme etiketlerini nasıl alabilirim?mllib kmeans kümesindeki küme etiketlerini alın pyspark

temp = KMeans.train(data, k, maxIterations=10, runs=10, initializationMode="random") 

Bu KmeansModel nesnesi döndürür: sklearn, bu mllib olarak

kmeans = MiniBatchKMeans(n_clusters=k,random_state=1) 
temp=kmeans.fit(data) 
cluster_labels=temp.labels_ 

ile kolayca yapılabilir, ben kmeans çalıştırın. Bu sınıf herhangi eş değer yoktur sklearn en labels_ Ben mllib en kmeans etiket nasıl out anlamaya alamıyorum

cevap

3

Sadece eğitim verilerine tahmin kullanın:

temp.predict(data) 

veya

parsedData.map(temp.predict) 
1

Bu eski bir sorudur. Ancak, o zaman, şimdi ve şimdi, şimdi, ve şimdi pyspark 2.2. KM'nin hiçbir tren yöntemi yoktur ve modelin tahmin yöntemi yoktur. etiketleri almak için doğru yolu sorusu hala eski MLlib hakkında RDD tabanlı bir API olarak sunulmuştu ederken, yeni Spark ML (dataframe tabanlı API) kastediyoruz

kmeans = KMeans().setK(k).setSeed(1) 
model = kmeans.fit(data) 
prediction = model.transform(data).select('prediction').collect() 
labels = [p.prediction for p in prediction ] 
+0

olduğunu. – desertnaut

+0

Evet, siz haklısınız. Sadece bu yazıyı bulmanın bir yolunu arıyordum, sadece bu yazıyı buldum, bu da yararlı değildi, çünkü veri tabanı tabanlı API'yi kullanıyorum, anladım ve dünyayla paylaşmaya karar verdim. Ve ben "yinelenen" olarak işaretlenecek başka bir soru oluşturmak istemedim, bu yüzden buraya koyuyorum. –