!主成分分析したい
!!参考
http://www.mnet.ne.jp/~tnomura/octave1.html
http://d.hatena.ne.jp/pashango_p/20090617/1245221088
http://sonson.jp/?p=220
http://d.hatena.ne.jp/amarui/20100710/1278748020

!!注意
やり方を理解していないのでまだ間違っていると思われます。

!手順
生データを作る
||番組1|番組2|番組3|番組4
|ユーザ1|0|1|1|1
|ユーザ2|1|1|0|0
|ユーザ3|0|1|0|0

>> math
\begin{equation}
raw = 
\begin{pmatrix}
0 & 1 & 1 & 1\\
1 & 1 & 0 & 0\\
0 & 1 & 0 & 0
\end{pmatrix}
\end{equation}
<<

で
値を正規化?する

準備として各番組の視聴状況の標準偏差を取る
>> math
\begin{equation}
sd = rawの各列の標準偏差の行列 \\
m = rawの各列の平均の行列
\end{equation}
<<
(なんか数式でかっこ良く書きたかったけどわからん)
でえっとi番目の列に関して

>> math
\begin{equation}
{raw}'_{ij} = ({raw}_{ij} -m_i)/{sd}_i
\end{equation}
<<

みたいにしてなんか中心っぽくていい感じに分散したデータにする

>> math
\begin{equation}
score = {raw}' ^t\cdot{raw}' 
\end{equation}
<<
と おまじないみたいなのをする
scoreってのは分散共分散行列とかいうものらしい

で
>> math
\begin{equation}
v_i: scoreの固有ベクトル (固有値の大きいものから順)\\
\lambda_i: v_iに対応する固有値
\end{equation}
<<

みたいにして

>> math
\begin{equation}
v_1,v_2
\end{equation}
<<
が第一、第二主成分のベクトル、
>> math
\begin{equation}
\lambda_1/ \sum \lambda_i,\\
\lambda_2/  \sum \lambda_i
\end{equation}
<<
が各主成分ベクトルの寄与率?ってやつになるのかな?

で、元データをこの空間の座標に変換するには

>> math
\begin{equation}
{ans}_1 = score \cdot v_1 \\
{ans}_2 = score \cdot v_2
\end{equation}
<<
とかやって これで

>> math
\begin{equation}
({ans}_{1i}, {ans}_{2i})
\end{equation}
<<

みたいにi個の点を定義できるので、これを散布図にしてみる。

合ってる?










5643382
wiki
1371358751