2016-04-26 41 views
-3

我想使用MLlib的gmm實現將大型數據集聚類。問題是我的數據集有分類輸入,它們正在被轉換爲gmm列車函數中的浮點數;所以我擔心該算法不會將分類數據視爲分類數據,而是將其視爲連續數據。當我嘗試將字母數字字符串作爲訓練傳遞給gmm的火車功能時,它拋出一個類型錯誤,表示它無法將給定的字符串轉換爲浮點型。有沒有辦法處理這種使用gmm的mllib實現對分類數據進行聚類的問題,或者mllib中是否有其他聚類算法可以使用分類變量進行聚類? rdd=sc.textFile('s3n://msd.data.test/sud/new_cls122016-04-26') # rdd1=rdd.map(lambda x:[x.split(',')[0],x.split(',')[1],x.split(',')[2],x.split(',')[3],x.split(',')[4],x.split(',')[5],x.split(',')[6],x.split(',')[7],x.split(',')[8]]) gmm=GaussianMixture.train(rdd1, 35,seed=10) label=gmm.predict(rdd1)如何在處理分類變量時使用pyspark的mllib的gmm?

rdd1是訓練數據,其中列0到6是整數,而7和8是分類變量。

`

+0

我不知道MLlib,但我有一個無關的提示。你可以簡化你的'map'語句到'import csv; rdd.map(lambda x:csv.reader(x)[:8])'; [see here](http://stackoverflow.com/a/36408724/6157047)獲取更多解釋。 –

+0

不,我不想讀作爲csv噸,我想看看是否有辦法處理分類數據,同時使用gmm – user2233120

回答

1

高斯分佈上連續變量僅限定。

由於正常(高斯)分佈是連續的。

因此,將您的分類屬性編碼爲連續變量,除了忽略它們外,大概可以做到最好。

相關問題