バイオ・データ・マイニング/Rで独立成分分析する
をテンプレートにして作成
開始行:
この記事はまだ書きかけです.
*はじめに [#o4d4ae9e]
ここでは,Rを使って独立成分分析を行います.
『Rによるバイオインフォマティクスデータ解析』にも載ってい...
#html{{
<iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=tohgoroh-2...
}}
*準備 [#qdba8032]
Rのインストールについては,次のページを見てください.
-[[MacでRを使う>機械学習/MacでRを使う]]
-[[WindowsでRを使う>機械学習/WindowsでRを使う]]
独立成分分析は,''fastICA''パッケージに含まれています.
そこで,fastICAパッケージをインストールします.
install.packagesコマンドを実行すると,パッケージをダウン...
#geshi(rsplus){{
> install.packages("fastICA")
> library(fastICA)
}}
*独立成分分析 [#w5afa714]
独立成分分析 (Independent Component Analysis, ICA) は,''...
複数の人が同時に話をすると,音声信号が混ざってしまいます.
これを複数のマイクで拾って,元の成分に分解するのによく使...
[math]n[/math] 個の''信号源''から発生し(て混ざっ)た信号...
独立成分分析は,観測した [math]m[/math] 個のデータ [math]...
これを信号行列 [math]S[/math] に対して,混合行列 [math]A[...
例として,2つの信号源(音源)からそれぞれ次のような信号(...
#ref(./signal.png,50%)
二つの信号源からちょうど同じ距離の地点でこの信号を観測す...
\[ x_1 = 0.5 s_1 + 0.5 s_2 \]
また,二つの信号源からの距離が4:1の地点でこの信号を観測す...
\[ x_2 = 0.4 s_1 + 0.1 s_2 \]
このような条件を満たす地点は二つの信号源を結ぶ直線と直行...
ここでは,上のような係数だとします.
このとき,真の混合行列は以下のように表されます.
\[ A = \begin{bmatrix} 0.5 & 0.5 \\ 0.4 & 0.1 \end{bmatri...
上の図の信号をこのようにして観測すると,次のような信号が...
#ref(./observed.png,50%)
観測した [math]x_1[/math], [math]x_2[/math] の相関行列を...
\[ \begin{bmatrix} -0.08 & -0.12 \\ 0.12 & 0.06 \end{bmat...
独立成分分析では,まず,相関行列を単位行列に変換します.
これをを''白色化''といいます.
[math]x_1[/math], [math]x_2[/math] を白色化した後の座標を...
上の観測データを白色化すると次のようになります.
#ref(./whitened.png,50%)
最後に,白色化したデータを2つの変数がもっとも独立となるよ...
上の白色化したデータを2つの変数がもっとも独立となるように...
#ref(./estimated.png,50%)
このようにして推定された変換行列は次のようになりました.
\[ \hat{A} = \begin{bmatrix} -0.52 & -0.10 \\ -0.72 & -0....
求められた [math]u_1[/math] は [math]x_2[/math] に,[math...
独立成分分析では,独立性だけを考慮していますので,求めら...
また,成分の向きとスケールは元の信号と一致しません.
(向きは1/2の確率で偶然に一致します.)
*独立成分分析を行う [#h217a2d0]
標準で使える''irisデータセット''に対して,独立成分分析を...
#geshi(rsplus){{
> data(iris)
}}
このデータセットは,アヤメの種類 (Species) をがく片の長さ...
長さと幅は連続値,種類はsetosa, versicolor, virginicaのい...
このデータセットには,setosa, versicolor, virginicaという...
ランダムに10個のデータを選択して,見てみましょう.
#geshi(rsplus){{
> iris[sort(sample(1:150,10)),]
Sepal.Length Sepal.Width Petal.Length Petal.Width ...
4 4.6 3.1 1.5 0.2 ...
22 5.1 3.7 1.5 0.4 ...
65 5.6 2.9 3.6 1.3 ver...
97 5.7 2.9 4.2 1.3 ver...
100 5.7 2.8 4.1 1.3 ver...
108 7.3 2.9 6.3 1.8 vi...
116 6.4 3.2 5.3 2.3 vi...
122 5.6 2.8 4.9 2.0 vi...
136 7.7 3.0 6.1 2.3 vi...
146 6.7 3.0 5.2 2.3 vi...
}}
このデータは,4つのセンサーで観測してSepal.Length, Sepal....
(実際にはそうではないので,そう考えることができるという...
Rで独立成分分析を行うには,''fastICA''パッケージの''fastI...
引数にはデータと信号源の数を与えます.
#geshi(rsplus){{
> iris.ic <- fastICA(iris[1:4], 4)
}}
得られたオブジェクトの変数 S に推定された源信号が格納され...
#geshi(rsplus){{
> pairs(iris.ic$S, pch=as.integer(iris$Species))
}}
#ref(./iris_ica.png,50%)
ここでは,Speciesの値によってマーカーを変えて表示していま...
得られたオブジェクトの変数 A に推定された混合行列が格納さ...
#geshi(rsplus){{
> iris.ic$A
[,1] [,2] [,3] [,4]
[1,] 0.21328403 0.37157377 0.09047249 0.05272770
[2,] -0.67224217 0.20889006 -1.74869766 -0.73629270
[3,] 0.06631234 -0.06327993 0.06929867 -0.17430924
[4,] 0.42346817 0.05483076 0.15675322 0.04291885
}}
irisは混合した信号を観測したデータではないので,この結果...
*まとめ [#mdea3518]
独立成分分析は,複数の信号源から信号が独立に生起している...
主成分分析 (PCA) が観測したデータから主成分を合成するのに...
独立成分分析を行うには,信号源(独立成分)の数を与える必...
*参考文献 [#n60df35d]
-[[Rで主成分分析する>バイオ・データ・マイニング/Rで主成分...
#html{{
<iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=tohgoroh-2...
}}
終了行:
この記事はまだ書きかけです.
*はじめに [#o4d4ae9e]
ここでは,Rを使って独立成分分析を行います.
『Rによるバイオインフォマティクスデータ解析』にも載ってい...
#html{{
<iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=tohgoroh-2...
}}
*準備 [#qdba8032]
Rのインストールについては,次のページを見てください.
-[[MacでRを使う>機械学習/MacでRを使う]]
-[[WindowsでRを使う>機械学習/WindowsでRを使う]]
独立成分分析は,''fastICA''パッケージに含まれています.
そこで,fastICAパッケージをインストールします.
install.packagesコマンドを実行すると,パッケージをダウン...
#geshi(rsplus){{
> install.packages("fastICA")
> library(fastICA)
}}
*独立成分分析 [#w5afa714]
独立成分分析 (Independent Component Analysis, ICA) は,''...
複数の人が同時に話をすると,音声信号が混ざってしまいます.
これを複数のマイクで拾って,元の成分に分解するのによく使...
[math]n[/math] 個の''信号源''から発生し(て混ざっ)た信号...
独立成分分析は,観測した [math]m[/math] 個のデータ [math]...
これを信号行列 [math]S[/math] に対して,混合行列 [math]A[...
例として,2つの信号源(音源)からそれぞれ次のような信号(...
#ref(./signal.png,50%)
二つの信号源からちょうど同じ距離の地点でこの信号を観測す...
\[ x_1 = 0.5 s_1 + 0.5 s_2 \]
また,二つの信号源からの距離が4:1の地点でこの信号を観測す...
\[ x_2 = 0.4 s_1 + 0.1 s_2 \]
このような条件を満たす地点は二つの信号源を結ぶ直線と直行...
ここでは,上のような係数だとします.
このとき,真の混合行列は以下のように表されます.
\[ A = \begin{bmatrix} 0.5 & 0.5 \\ 0.4 & 0.1 \end{bmatri...
上の図の信号をこのようにして観測すると,次のような信号が...
#ref(./observed.png,50%)
観測した [math]x_1[/math], [math]x_2[/math] の相関行列を...
\[ \begin{bmatrix} -0.08 & -0.12 \\ 0.12 & 0.06 \end{bmat...
独立成分分析では,まず,相関行列を単位行列に変換します.
これをを''白色化''といいます.
[math]x_1[/math], [math]x_2[/math] を白色化した後の座標を...
上の観測データを白色化すると次のようになります.
#ref(./whitened.png,50%)
最後に,白色化したデータを2つの変数がもっとも独立となるよ...
上の白色化したデータを2つの変数がもっとも独立となるように...
#ref(./estimated.png,50%)
このようにして推定された変換行列は次のようになりました.
\[ \hat{A} = \begin{bmatrix} -0.52 & -0.10 \\ -0.72 & -0....
求められた [math]u_1[/math] は [math]x_2[/math] に,[math...
独立成分分析では,独立性だけを考慮していますので,求めら...
また,成分の向きとスケールは元の信号と一致しません.
(向きは1/2の確率で偶然に一致します.)
*独立成分分析を行う [#h217a2d0]
標準で使える''irisデータセット''に対して,独立成分分析を...
#geshi(rsplus){{
> data(iris)
}}
このデータセットは,アヤメの種類 (Species) をがく片の長さ...
長さと幅は連続値,種類はsetosa, versicolor, virginicaのい...
このデータセットには,setosa, versicolor, virginicaという...
ランダムに10個のデータを選択して,見てみましょう.
#geshi(rsplus){{
> iris[sort(sample(1:150,10)),]
Sepal.Length Sepal.Width Petal.Length Petal.Width ...
4 4.6 3.1 1.5 0.2 ...
22 5.1 3.7 1.5 0.4 ...
65 5.6 2.9 3.6 1.3 ver...
97 5.7 2.9 4.2 1.3 ver...
100 5.7 2.8 4.1 1.3 ver...
108 7.3 2.9 6.3 1.8 vi...
116 6.4 3.2 5.3 2.3 vi...
122 5.6 2.8 4.9 2.0 vi...
136 7.7 3.0 6.1 2.3 vi...
146 6.7 3.0 5.2 2.3 vi...
}}
このデータは,4つのセンサーで観測してSepal.Length, Sepal....
(実際にはそうではないので,そう考えることができるという...
Rで独立成分分析を行うには,''fastICA''パッケージの''fastI...
引数にはデータと信号源の数を与えます.
#geshi(rsplus){{
> iris.ic <- fastICA(iris[1:4], 4)
}}
得られたオブジェクトの変数 S に推定された源信号が格納され...
#geshi(rsplus){{
> pairs(iris.ic$S, pch=as.integer(iris$Species))
}}
#ref(./iris_ica.png,50%)
ここでは,Speciesの値によってマーカーを変えて表示していま...
得られたオブジェクトの変数 A に推定された混合行列が格納さ...
#geshi(rsplus){{
> iris.ic$A
[,1] [,2] [,3] [,4]
[1,] 0.21328403 0.37157377 0.09047249 0.05272770
[2,] -0.67224217 0.20889006 -1.74869766 -0.73629270
[3,] 0.06631234 -0.06327993 0.06929867 -0.17430924
[4,] 0.42346817 0.05483076 0.15675322 0.04291885
}}
irisは混合した信号を観測したデータではないので,この結果...
*まとめ [#mdea3518]
独立成分分析は,複数の信号源から信号が独立に生起している...
主成分分析 (PCA) が観測したデータから主成分を合成するのに...
独立成分分析を行うには,信号源(独立成分)の数を与える必...
*参考文献 [#n60df35d]
-[[Rで主成分分析する>バイオ・データ・マイニング/Rで主成分...
#html{{
<iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=tohgoroh-2...
}}
ページ名: