最近、予測モデルスクリーニングとかいって、SVM,Bayes,PLSなんかのアルゴリズムと、構造、物性ディスクリプターの組み合わせを網羅的に試して、調子のいいモデルをセレクションするコードを書くことに凝ってる。
だが、QSARというか予測モデルを構築するのに、データを訓練用とテスト用の二つに分けねばなりませぬ。実はその作業は結構手間で、レンジの狭い(0ばっかで役に立たない)記述子除いたり、ノーマライズ(レンジを-1から1にそろえる)したりと、記述子の選択も手間だけど、データセットを分ける際にも記述子の分布にも気を使わなければならず、、、
正直だるいヨ
実際、この部分をプログラムがある程度面倒見てくれるツールなんかもあるらしいんだけど、、
Rで書いてみようとしてみたナリ。
一応、R NewsのSVMのページからランダムにセットを分ける方法を見つけたのでヒストリをのせた。
http://cran.r-project.org/doc/Rnews/Rnews_2001-3.pdf
nrowは大文字で。
$ library(e1071) $ library(rpart) $ library(mlbench) $ data(Glass) $ index <- 1:NROW(x) $ testindex <- sample(index,trunc(length(index)/3)) $ testset <- Glass[testindex,] $ trainset <- Glass[-testindex,]
あとはパッケージで、dprep,Designあたりがそれっぽいかなって感じ。
説明変数の分布の度合いを考慮したセットの分割をしたいので、もう少し考える必要はある。