R言語によるSVM(機械学習)


はじめに

 R言語を用いたサポートベクターマシンにより、テキスト分類を行ってみました。
 テキストのベクトル化などについて、詳しくは、
リンク(GitHub) を参照ください。

データ

 テキストは、文書内の語の出現頻度の指標である「tf-idf」を用いてベクトル化し、次のような形状のcsvファイルになっています。

num,。,が,の,...,おめでとう,くん,笑,group
0,0.000576,0.018227,0.018290,...,0.036156,0.019288,0.012082,ctrl
1,0.012769,0.026343,0.016902,...,0.007307,0.020576,0.013051,dep
2,0.000437,0.000360,0.000364,...,0.002279,0.001640,0.002097,ctrl
...

最終列(group列)の、"ctrl" or "dep" が、ラベルです。

R言語によるサポートベクターマシンの利用

kernlabライブラリの、ksvm関数を用いました。

>library(kernlab)

>setwd("//")

>train=read.csv("trainデータの一覧.csv")

>test=read.csv("testデータの一覧.csv")

>svm<-ksvm(group ~., data=train)

>predict<-predict(svm, test)

>predict

>table(predict,test$group)

ksvm関数のパラメータをきちんと調整すると、さらに良いかもしれません。

詳しくは、
リンク(GitHub) を参照ください。

環境

R version 3.6.1
macOS Catalina 10.15.3