• 追加された行はこの色です。
  • 削除された行はこの色です。
このページはまだ書きかけです.

*はじめに [#g88a8135]

『Rによるバイオインフォマティクスデータ解析』の7.15「SVM」を参考にして,RでSVMを使って学習します.

#html{{
<iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=tohgoroh-22&o=9&p=8&l=as1&asins=4320057082&ref=tf_til&fc1=444B4C&IS2=1&lt1=_blank&m=amazon&lc1=444B4C&bc1=FFFFFF&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>
}}


*準備 [#e5c35924]

Rのインストールについては,次のページを見てください.
-[[MacでRを使う>機械学習/MacでRを使う]]
-[[WindowsでRを使う>機械学習/WindowsでRを使う]]

Naïve Bayesは,''e1071パッケージ''に含まれています.
そこで,e1071パッケージをインストールします.
install.packagesコマンドを実行すると,パッケージをダウンロードするサーバーを聞かれますので,リストからJapanのどれかを選択します.
#geshi(rsplus){{
> install.packages("e1071")
> library("e1071")
}}

ここでは,標準で使用できる''irisデータセット''を使います.
#geshi(rsplus){{
> data(iris)
}}

このデータセットは,アヤメの種類(Species)を花びらの長さ(Sepal.Length),幅(Lepal.Width),がくの長さ(Petal.Length),幅(Petal.Width)によって分類する問題です.
長さと幅は連続値,種類はsetosa, versicolor, virginicaのいずれかをとる離散値です.

このデータセットには,setosa, versicolor, virginicaという3種類のアヤメについて,それぞれ50個ずつ,合計150個のデータが含まれています.
ランダムに10個のデータを選択して,見てみましょう.
#geshi(rsplus){{
> iris[sort(sample(1:150,10)),]
    Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
4            4.6         3.1          1.5         0.2     setosa
22           5.1         3.7          1.5         0.4     setosa
65           5.6         2.9          3.6         1.3 versicolor
97           5.7         2.9          4.2         1.3 versicolor
100          5.7         2.8          4.1         1.3 versicolor
108          7.3         2.9          6.3         1.8  virginica
116          6.4         3.2          5.3         2.3  virginica
122          5.6         2.8          4.9         2.0  virginica
136          7.7         3.0          6.1         2.3  virginica
146          6.7         3.0          5.2         2.3  virginica
}}

これをランダム・サンプリングして80%を訓練データとし,のこりの20%をテスト・データとします.
#geshi(rsplus){{
> idx <- sample(nrow(iris), as.integer(nrow(iris)*0.8))
> iris.train <- iris[idx,]
> iris.test <- iris[-idx,]
}}


*SVM [#u50975a4]

説明は後で書き足します.

#geshi(rsplus){{
> iris.svm <- svm(Species~., data=iris.train)
}}

#geshi(rsplus){{
> iris.svm

Call:
svm(formula = Species ~ ., data = iris.train)


Parameters:
   SVM-Type:  C-classification 
 SVM-Kernel:  radial 
       cost:  1 
      gamma:  0.25 

Number of Support Vectors:  49

}}

#geshi(rsplus){{
> iris.svm.pred <- predict(iris.svm, iris.test)
> table(iris.svm.pred, iris.test[,5])
             
iris.svm.pred setosa versicolor virginica
   setosa         10          0         0
   versicolor      0          7         1
   virginica       0          0        12
}}

このページはまだ書きかけです.

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS