next up previous contents
Next: 主成分分析 Up: 潜在的意味解析 Previous: 潜在的意味解析とは   目次


Rでの特異値分解

特異値分解はRというプログラミング言語を使用することによって簡単に実行できる。 Rはベクトル処理を基本とするプログラミング言語であり、統計解析を始めとする計算処理に非常に強い。 また、多くの関数が用意されており、複雑な計算も少ない命令で実行してくれるという特徴がある。 この言語はオークランド大学のR. Ihaka氏とR. Gentleman 氏により作られ、オープンソースかつフリーのソフトウェアである。

Rではこの特異値分解をsvd関数で行うことができる。 データ行列をsvd関数に渡すと返り値として、左特異(ターム)ベクトル、特異値、右特異(文書)ベクトルが得られる。 $ k$ 次元まで圧縮した近似行列を出力するには、左特異ベクトルの$ k$ 列目までの行列の転置行列と、元の文書行列$ TD$ を掛ければ良い。

上でLSAでは、高次元の行列を縮約すると述べた。 だが、どの程度まで縮約すれば良いのかを決定するには、主成分分析という方法を用いる。



Deguchi Lab. 2012年3月12日