2016-04-26 2 views
-3

MLlibのgmm実装を使用して大きなデータセットをクラスタリングしようとしています。問題は私のデータセットにはgmmの列車機能内で浮動小数点に変換されているカテゴリ入力があることです。アルゴリズムはカテゴリデータをカテゴリデータとして扱うのではなく、むしろ連続データとして扱うのではないかと心配しています。私はトレーニングとして英数字の文字列をgmmのtrain関数に渡そうとしましたが、指定された文字列をfloatに変換できないというエラーが送出されました。 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(ラムダx:csv.reader(x)[:8]) ';詳細については、[こちらをご覧ください](http://stackoverflow.com/a/36408724/6157047)を参照してください。 –

+0

いいえ私はcsvとしてtを読むのを探していません、gmmを使っている間にカテゴリ的なデータを扱う方法があるかどうかを調べようとしています – user2233120

答えて

1

ガウス分布だけ連続変数に定義されています。

通常(ガウス分布)は連続しているためです。

したがって、カテゴリ属性を連続変数にエンコードすることは、無視する以外にもできることです。

関連する問題