ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

機械学習でFizzBuzz!(決定木編)

2019-06-10 09:31:41 | Weblog
前に書いたやつ、「続き希望」の人がいたので、やってみた。

FizzBuzzを機械学習でやる方法概要
(決定木を使う場合:というか、一般的に・・)

前提:(シミュレーション)データを用意する
手順
1.データを機械学習させる→プログラム相当のモデルできる
2.出力するためのデータを用意する
3.モデルに2を読み込ませ、実行!

以下、詳細


■前提:(シミュレーション)データを用意する

1~100のFIZZBUZZに必要なデータを用意する
→番号(1~100)、3で割れるか(割れたら1)、5で割れるか(割れたら1)、FizzBuzzの結果
を書いたデータを用意し、それを20回コピー、1行目に表題をつけて、CSVファイルにして保存
こんなかんじ。

はじめのほう


おわりのほう(2000件分+1件(見出しで1行))

このファイルは、手作業で作ってもいいし、こんなかんじでプログラムに書いてもOK


■1.データを機械学習させる→プログラム相当のモデルできる
Rで上記データを読み込んだ後、決定木のモデルを作成。こんなかんじ

data<-read.csv("fizzbuzz.csv",header=TRUE)
library("rpart")
model<-rpart(kekka~.,data)


■2.出力するためのデータを用意する
読み込ませた1~100までのデータのうち、FizzBuzzの結果の行を削除したものを作成
こんなかんじ

mytest=data[1:100,1:3]



■3.モデルに2を読み込ませ、実行!
実行!こんなかんじ

predict(model,mytest)



結果

1のときは1,2のときは2、4のときは4うまくいってる。
(3はFizzなので、↓)

3はFizz5はBuzz15はFizzBizz
FizzBuzz部分もうまくいってる。

決定木をプロットしてみる。

plot(model)
text(model)


大丈夫かな・・・




  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする