2016-07-06 3 views
0

スパーク関数kmeansモデルと関数kmeansクラスタデータを取得する方法を、私は、関数kmeansのmodleを取得するには、次のコードを使用しましたクラスタ中心の数は、私は次のコードを経由して3つのクラスタ中心を得ることができ、次のコードでは3です:は、私は6万のレコードで関数kmeansクラスタリングを行うためにスパークMLを使用してい

model.clusterCenters.foreach{println} 

私の質問はどのように私は本当のグループデータを取得することができ、私はスパークが出力600万すべきとしていることです3つのグループの実データ。

さらにお問い合わせください:上記のタスクは、テキスト文書をクラスタリングするためのものです。そこで私はテキスト文書をフロートベクトルに転送しました。フロートベクトルを置くだけでスパークするが、私は元のテキスト文書を直接取得したい、任意のアイデアをしてください?たとえば : マイドキュメントは、次のように:

doc1: {the book is good} 
doc2: {the weather is sunny} 
doc3: {rain is coming} 

私はスパークMLを供給するため、次のようにベクトルをfloatに上記のテキストファイルを転送:

doc1:{0.2,0.3,0.5,1.5,0.0,0.0,0.0,0.0} 
doc1:{0.2,0.0,0.5,0.0,0.8,0.0,0.0,0.0} 
doc1:{0.0,0.3,0.0,0.0,0.8,0.0,0.0,0.9} 

だから私はスパークをそのまま出力クラスタ化されたオリジナルのことを願ってテキストドキュメントはむしろ浮動ベクトルです。

答えて

2

だけmappredict:そう

parsedData.map(p => (model.predict(p), p)) 

は、元の文書を取得するにはあなたがいる限り、データが並べ替え(シャッフル)されていないようzip方法を試すことができます。

model.predict(parsedData).zip(rawDocuments) 
関連する問題