LoginSignup
11
15

More than 5 years have passed since last update.

Rで判別分析いろいろ(11種類+ Deep Learning)

Posted at

Background

Rで使えるDeep Learningのパッケージ H2O の使い方を覚えたので、前回やった「Rで判別分析いろいろ(11種類)」と比較してみた。

Summary

使用したデータ(前回と同じ)

  • 4601通のメールをspamとnon-spamに分類してあるデータ(57次元)
  • 460通をテストデータ、残りを学習データに使った。

比較結果(前回11種類+Deep Learning)

手法 package 関数 正解率 チューニング
Deep Learning H2O h2o.deeplearning 0.941 activation="RectifierWithDropout",
epochs=100,hidden=c(64,64,64,64),
rate=0.01,rate_annealing = 1e-7,
input_dropout_ratio = 0.1
線形判別分析 MASS lda 0.896
非線形判別分析(2次式) MASS qda 0.837
k-Nearest Neighbor class knn 0.820 k=1
ナイーブベイズ e1071 naiveBayes 0.720
Decision tree rpart rpart 0.889
Nural Network 3層 nnet nnet 0.959 size=7, decay=0.3
Nural Network LVQ1 class lvq1 0.763 k=5, alpha=0.23
SVM e1071 svm 0.952 gamma=0.001381068, cost=512
Bagging adabag bagging 0.909
Boosting adabag boosting 0.959
Randam Forest randomForest randomForest 0.952 mtry=14

結論

同一の問題にたいして、判別分析の手法をいろいろ試してみた
Deep Learningの結果は、0.941。一位集団(3層ニューラルネット、SVM、Boosting、Random Forest)よりちょっと悪い。

感想

けっこうパタメータのチューニングしたが、
やり方があまりよくなかったのかもしれない。
チューニングの途中では、0.950が出ていたんだけど、
実際に試してみるといまいち正解率が上がらない。
もっと経験を積めば解決するのかもしれない。

References...1つだけ読むなら

やり始めたら、ほぼ同じ内容でほぼ同じデータセットのものを発見。
こちらでもDLあんまりな結果でした。
http://qiita.com/HirofumiYashima/items/68d56cfbab2834c1febb

Details

#
# Deep leaning (H2O)
#

# dataset
library(kernlab)
data(spam)
dim(spam)
data<-spam
num<-10*(1:(nrow(data)/10))
data.test<-data[num,]
data.train<-data[-num,]


library(h2o)
h2o.init(nthreads=-1)
data.train.hex <- as.h2o(data.train)
data.test.hex <- as.h2o(data.test)

# model
M<-h2o.deeplearning(1:57,58,
                    data.train.hex,
                    activation="RectifierWithDropout",
                    epochs=100,
                    hidden=c(64,64,64,64),
                    rate=0.01,
                    rate_annealing = 1e-7,
                    input_dropout_ratio = 0.1
)

# prediction
P<-h2o.predict(M,data.test.hex)

# result
t<-table(data.test[,58],as.vector(P$predict))
a<-(t[1,1] + t[2,2]) / (t[1,1] + t[2,2] + t[1,2] + t[2,1])
A.dpl<-a
A.dpl

References

  1. http://qiita.com/nrhk/items/63731920bfeb2c879075
  2. http://www.slideshare.net/takashijozaki1/japan-r2014-tjo
  3. http://tjo.hatenablog.com/entry/2014/10/23/230847
  4. http://qiita.com/HirofumiYashima/items/68d56cfbab2834c1febb
11
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
15