No.16002 Re: カーネルPCAで射影するとは 【青木繁伸】 2011/12/15(Thu) 21:03
普通,教師データは,説明変数と被説明変数を含むデータフレームとして用意し分析に供されます。予測すべき未知データは,教師データの独立変数と同じ名前を持つデータフレーム(ただし,当然ながら被説明変数は除く)として供与されるのでしょう。
教師データフレーム <- data.frame(x1, x2, x3, y)
結果 <- 分析関数(教師データフレーム)
未知データフレーム <- data.frame(x1, x2, x3)
判別 <- predict(結果, newdata=未知データフレーム)
というようなことでは?
No.16013 Re: カーネルPCAで射影するとは 【カーネルPCA】 2011/12/17(Sat) 22:47
ご返答ありがとうございました。
すみません,KPCAで考えると「教師データの独立変数」とは「教師ベクトル」,同じ名前を持つデータフレームとは,「学習したときに入力値となった変数名に,未知入力データを入れて,学習時と同じように分類する」,という理解で宜しいでしょうか。
疑問は,その未知入力データが,学習時と行列サイズが違ったときに,どうするのか,ということです。
predict 関数を調べましたが,Rを使っていないのであまり勝手がわからず念のため伺いたいのですが,predict(結果,未知入力データ)の意味は,KPCAで 考えると「(学習結果で得られた)教師ベクトル1列(1軸)ずつと,未知入力データをどうにか細工して行列サイズを学習データと合わせて計算する」という 意味でしょうか。
もしそうだとすれば,未知入力データと学習データの内積計算をするために学習時と同じサイズの行列に未知入力データを調整する方法が,どうすればいいのかわからず,そこを教えていただけるとうれしいな,と思って質問させていただきました。。。
説明がわかりにくくてすみません。
No.16016 Re: カーネルPCAで射影するとは 【青木繁伸】 2011/12/18(Sun) 12:06
google で検索すると,参考になるページがあると思いますけど?
http://mjin.doshisha.ac.jp/R/31/31.html
とか,読みましたか?読んだ上で分からないというのなら,処置なしですが。library(kernlab)判別分析や回帰分析と違い,new data についての予測値は出るが,「その後の判別は自分でやってね」ということか。
set.seed(12345)
g <- sample(2, 150, replace=TRUE)
x <- as.matrix(iris[g==1, 1:4])
x2 <- as.matrix(iris[g==2, 1:4])
iris.kpc1<- kpca(x, kernel="rbfdot", features=2, kpar=list(sigma=0.1))
layout(matrix(1:2, 1))
plot(pcv(iris.kpc1), col=as.integer(iris[g==1, 5]))
p1 <- predict(iris.kpc1, x2)
plot(p1)
layout(1)
No.16023 Re: カーネルPCAで射影するとは 【カーネルPCA】 2011/12/18(Sun) 20:38
上記URLはとっくに読んで,その手順で学習のステップは終えています。
わからないのは,未知データをどう学習データと同じサイズとして入力させるべきなのか,です。
Rの関数を使える環境ならそうしています。
Rのコマンドのnewdataってどういう「行列」なわけ?
学習時と違って,どんなデータかは未知だよね,それを学習データと同じサイズに区切って教師と(つまり軸と)同じ形教師ベクトル化するわけ?
それだと,学習サイズで割り切れるサイズの未知データならわかるけど,割り切れない場合がほとんどだろうし,きっとそれ以外の方法でサイズを合わせるんだろうけど,
どうするの?
というのが疑問です。
● 「統計学関連なんでもあり」の過去ログ--- 045 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る