オライリー「集合知プログラミング」で特徴抽出の解説があり面白そうなので試してみた。 Pythonはご遠慮したいので.NETかJavaかなのだけど、最近はやりの言語なのに行列演算を扱えるライブラリは標準装備されてないのねぇ。。 Java+JAMAを使ってみた。 名前 国語 数学 理科 社会 A 50 50 50 50 B 100 20 30 90 C 100 30 40 100 D 90 10 10 80 E 10 100 90 20 上記のA〜E君5人のそれぞれ4教科のテストの点数の表を行列に変換してNMFを行う。 特徴数は2、繰り返し数は5000回で実行。 特徴の行列の計算結果は、 特徴 国語 数学 理科 社会 特徴1 7.7 78.2 71.5 15.9 特徴2 98.7 1.5 10.4 89.7 次に重み行列の計算結果は、 名前 特徴1 特徴2 A 0.6 0.5 B 0.3 1.