Apache Spark MLlib (Scala)に関して質問させて下さい。
###質問
Spark MLlibで主成分分析をしたいのですが、RDD[(String, String, Double)]
をRowMatrix
に変換するにはどうすれば良いでしょうか?
下記の、データ変換のイメージをご参照いただき、そもそもやりたいことに対して、アプローチが正しいかどうかについてもアドバイスを頂けると幸いです。
アプローチとは、RDD[(String, String, Double)]
の次元削減をするために、RowMatrix
に変換してcomputePrincipalComponents
することを指しています。
質問の背景としては、言語処理100本ノック 85. 主成分分析による次元圧縮 にてハマり中です。。。
###データ変換のイメージ
変換前データ
(composition,studies,1.791759469228055) (coaching,tenure,3.6375861597263857) (college,ranked,1.0986122886681098) (created,Media,1.0986122886681098) (ca,ca,6.173786103901937) (Chief,served,2.3978952727983707) (calculate,To,3.9889840465642745) (childbirth,after,2.70805020110221) (congested,most,3.1354942159291497) (competition,amateur,2.833213344056216) (contiguous,United_States,3.6375861597263857) (contains,photographs,2.1972245773362196) (Christians,Protestant,4.330733340286331) (以下略)
変換後データ
主成分分析で次元削減するには、変換前データを下記のような疎行列に変換する必要があるという認識です。
studies | tenure | ranked | (以下略) | |
---|---|---|---|---|
composition | 1.791759469228055 | 0 | 0 | |
coaching | 0 | 3.6375861597263857 | 0 | |
college | 0 | 0 | 1.0986122886681098 | |
(以下略) |
バージョン情報
scalaVersion := "2.11.8" libraryDependencies += "org.apache.spark" %% "spark-core" % "1.6.1" libraryDependencies += "org.apache.spark" % "spark-mllib_2.11" % "1.6.1"
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。