逃げちゃダメだ、、と囁き声が聞こえたら疲れてるサイン。どうも0083です。
今日はみんな大好きフローチャートを作ろうと思います。
どうやら統計的に決定木(Decision tree)というのをやればフローチャートが作れるようですね。
もちろん、使うのは平民の味方、EZR先生!
・・・え、EZRじゃできないの?マジで?
プログラミング必要、、、本気で言ってる?
という事でGoogle先生経由でやり方を教えてもらいました。
(コチラのサイトを参考にしてます:決定木をわかりやすく解説|Rで実践)
えーまず、Rをダウンロードします。
なんかCARTという方法なんですが、rpart.plotとpartykitのファイルをダウンロードしなきゃらしいっす。
install.packages(“rpart”)
install.packages(“rpart.plot”)
install.packages(“partykit”)
library(rpart)
library(rpart.plot)
library(partykit)
データを取り込んでもらうよ。
df <- read.csv(“C:/Users/0083/Desktop/Book2.csv”,header = T)
head(df)
tree <- rpart(X0TB ~ . ,data=df, method = “class”)
なんかC:/Users/0083/Desktop/Book2.csvがファイルの場所でexelのcsvじゃないとダメみたいなので、ファイル変換。
X0TBが目的の二値変数です。
という事で早速、決定木を作ってもらいましょう!
summary(tree)
rpart.plot(tree)
で、CPというのを調べて、分岐しすぎを補正するんだそうです。
plotcp(tree)
上のような図が出てきて、横の点線を下回ったデータの中で最高値のCPを採用する、と。
tree.cp <- prune(tree,cp=0.013) #木を剪定する
plot(as.party(tree.cp)) #剪定した木をプロット
rpart.plot(tree.cp)
tree,cp=0.013というのが上で採用したデータなのだそうで。
最後にフローチャートの精度を出しましょう。
titanic.pre <- data.frame(round(predict(tree.cp, df)))
titanic.pre$X0TB <- num2char(titanic.pre$X0TB)
(tab <- table(titanic.pre[,2], df$X0TB)) #混同行列
sum(diag(tab)) / sum(tab) #分類精度
X0TBというのは以前同様、目的の二値変数です。
という事で完成です!
、、、大丈夫。自分でなにやってるか分かってません(笑
まだ調整が必要ですが、完成版は3/18のKYORIN呼吸器フロンティアセミナーでお示しできればと。
あ、スライド締め切りやばいww