MENU

R でサポートベクターマシンを実行する方法

サポートベクターマシンを R で実装する方法について。

>>もう統計で悩むのは終わりにしませんか? 

↑期間・数量限定で無料プレゼント中!

目次

サポートベクターマシンとは?

サポートベクターマシンについては、過去記事参照。

サポートベクターマシンを R で実装するのに必要なパッケージ

e1071パッケージを使う。

まず最初一回インストール。

install.packages("e1071")

呼び出して使う準備をする。

library(e1071)

>>もう統計で悩むのは終わりにしませんか? 

↑1万人以上の医療従事者が購読中

サポートベクターマシンの前にサポートベクター分類器で分類する方法

例として、irisデータで分類器を作ってみる。

svm()という関数を使う。

Speciesを分類するサポートベクター分類器を作って分類させてみる。

kernel=”linear”で、サポートベクター分類器を指定している。

cross=5は5-fold cross validationを実施するように指示している。

model <- svm(Species ~ ., data = iris, kernel="linear", cross=5)

予測値を算出し、Confusion matrixを作り、正答率を計算する。

pred <- fitted(model)
(svc.confusion <- table(iris$Species, pred))
sum(diag(svc.confusion))/sum(svc.confusion)

誤分類は150例中3例、正答率は96.7%だった。

> (svc.confusion <- table(iris$Species, pred))
pred
setosa versicolor virginica
setosa         50          0         0
versicolor      0         46         4
virginica       0          1        49
> sum(diag(svc.confusion))/sum(svc.confusion)
[1] 0.9666667

サポートベクターマシンを R で実装して分類する方法

先ほどのkernel=”linear”を削除して、デフォルト値を使う。

デフォルトはkernel=”radial”で、これはradial basisという方法。

model1 <- svm(Species ~ ., data = iris, cross=5)
pred1 <- fitted(model1)
(svm.confusion <- table(iris$Species, pred1))
sum(diag(svm.confusion))/sum(svm.confusion)

誤分類は5例から4例に減り、正答率は97.3%になった。

> (svm.confusion <- table(iris$Species, pred1))
pred1
setosa versicolor virginica
setosa         50          0         0
versicolor      0         48         2
virginica       0          2        48
> sum(diag(svm.confusion))/sum(svm.confusion)
[1] 0.9733333

まとめ

統計ソフトRではe1071パッケージで、サポートベクターマシンを実行できる。 

関連記事

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

リサーチクエスチョン探し?データ分析?論文投稿?、、、で、もう悩まない!

第1章臨床研究ではなぜ統計が必要なのか?計画することの重要性
  • 推定ってどんなことをしているの?
  • 臨床研究を計画するってどういうこと?
  • どうにかして標本平均を母平均に近づけられないか?
第2章:研究目的をどれだけ明確にできるのかが重要
  • データさえあれば解析でどうにかなる、という考え方は間違い
  • 何を明らかにしたいのか? という研究目的が重要
  • 研究目的は4種類に分けられる
  • 統計専門家に相談する上でも研究目的とPICOを明確化しておく
第3章:p値で結果が左右される時代は終わりました
  • アメリカ統計協会(ASA)のp値に関する声明で指摘されていること
  • そうは言っても、本当に有意差がなくてもいいの…?
  • なぜ統計専門家はp値を重要視していないのか
  • 有意差がない時に「有意な傾向があった」といってもいい?
  • 統計を放置してしまうと非常にまずい
第4章:多くの人が統計を苦手にする理由
  • 残念ながら、セミナー受講だけで統計は使えません。
  • インプットだけで統計が使えない理由
  • どうやったら統計の判断力が鍛えられるか?
  • 統計は手段なので正解がないため、最適解を判断する力が必要
第5章:統計を使えるようになるために今日から何をすれば良いか?
  • 論文を読んで統計が使えるようになるための5ステップ
第6章:統計を学ぶために重要な環境
  • 統計の3つの力をバランスよく構築する環境

以下のボタンをクリックして、画面に出てくる指示に従って、必要事項を記入してください。

この記事を書いた人

統計 ER ブログ執筆者

元疫学研究者

統計解析が趣味

コメント

コメントする

目次