- サポートベクターマシンはマシンラーニングの基本
- Matlabとか数値計算系で実装が先行していて、Rでは追随、という形
- パッケージe1071が先行のlibsvmとかを実装しているそうだ
- kernlabっていうのものサポートベクターマシンの基本的な手法をサポートすることを目指したパッケージ(らしい)
- サポートベクターマシンなので、いろいろできるけれど、昨日の記事の流れで行けば、基本的なPCAの発展としての…となる
- 昨日は欠測値対応の話で、今日は非線形対応の話(昨日の欠測値の話にも「欠測値の穴埋めに非線形を使うか…」という文脈で『非線形』が出てきたけれど、ここで言う『非線形』は、空間をいったん持ち上げて『広いところ』で単純に切り分けつつ、そのあとで次元を戻すと、『非線形な切り分け』ができるよ、という意味での、マシンラーニングを使った「値変換的な非線形」
- kpca()関数とpredict()関数がkernlabパッケージでのkernel PCA用関数とその結果からの推定
- こちらも参考
library(kernlab)
data(iris)
test <- sample(1:150,20)
kpc <- kpca(~.,data=iris[-test,-5],kernel="rbfdot",
kpar=list(sigma=0.2),features=2)
pcv(kpc)
plot(rotated(kpc),col=as.integer(iris[-test,5]),
xlab="1st Principal Component",ylab="2nd Principal Component")
emb <- predict(kpc,iris[test,-5])
points(emb,col=as.integer(iris[test,5]))