前に書いたやつ、「続き希望」の人がいたので、やってみた。
FizzBuzzを機械学習でやる方法概要
(決定木を使う場合:というか、一般的に・・)
前提:(シミュレーション)データを用意する
手順
1.データを機械学習させる→プログラム相当のモデルできる
2.出力するためのデータを用意する
3.モデルに2を読み込ませ、実行!
以下、詳細
■前提:(シミュレーション)データを用意する
1~100のFIZZBUZZに必要なデータを用意する
→番号(1~100)、3で割れるか(割れたら1)、5で割れるか(割れたら1)、FizzBuzzの結果
を書いたデータを用意し、それを20回コピー、1行目に表題をつけて、CSVファイルにして保存
こんなかんじ。
はじめのほう
![](https://blogimg.goo.ne.jp/user_image/35/a7/0b7247dc8bb51e912da6e6668366627c.png)
おわりのほう(2000件分+1件(見出しで1行))
![](https://blogimg.goo.ne.jp/user_image/11/64/3df77aa01d6de0e662ead597748dc00f.png)
このファイルは、手作業で作ってもいいし、こんなかんじでプログラムに書いてもOK
![](https://blogimg.goo.ne.jp/user_image/28/4b/18b3a31597a3a1c9430cfd07737b696c.png)
■1.データを機械学習させる→プログラム相当のモデルできる
Rで上記データを読み込んだ後、決定木のモデルを作成。こんなかんじ
■2.出力するためのデータを用意する
読み込ませた1~100までのデータのうち、FizzBuzzの結果の行を削除したものを作成
こんなかんじ
■3.モデルに2を読み込ませ、実行!
実行!こんなかんじ
結果
![](https://blogimg.goo.ne.jp/user_image/0a/00/49a446afb37ca5438d60e05fac9e221c.png)
1のときは1,2のときは2、4のときは4うまくいってる。
(3はFizzなので、↓)
![](https://blogimg.goo.ne.jp/user_image/2f/0d/a9b8c95ec8f7bafcd853a919cc40c0c6.png)
3はFizz5はBuzz15はFizzBizz
FizzBuzz部分もうまくいってる。
決定木をプロットしてみる。
![](https://blogimg.goo.ne.jp/user_image/55/5c/44931b9e33563b3997ebe4806885a978.png)
大丈夫かな・・・
FizzBuzzを機械学習でやる方法概要
(決定木を使う場合:というか、一般的に・・)
前提:(シミュレーション)データを用意する
手順
1.データを機械学習させる→プログラム相当のモデルできる
2.出力するためのデータを用意する
3.モデルに2を読み込ませ、実行!
以下、詳細
■前提:(シミュレーション)データを用意する
1~100のFIZZBUZZに必要なデータを用意する
→番号(1~100)、3で割れるか(割れたら1)、5で割れるか(割れたら1)、FizzBuzzの結果
を書いたデータを用意し、それを20回コピー、1行目に表題をつけて、CSVファイルにして保存
こんなかんじ。
はじめのほう
![](https://blogimg.goo.ne.jp/user_image/35/a7/0b7247dc8bb51e912da6e6668366627c.png)
おわりのほう(2000件分+1件(見出しで1行))
![](https://blogimg.goo.ne.jp/user_image/11/64/3df77aa01d6de0e662ead597748dc00f.png)
このファイルは、手作業で作ってもいいし、こんなかんじでプログラムに書いてもOK
![](https://blogimg.goo.ne.jp/user_image/28/4b/18b3a31597a3a1c9430cfd07737b696c.png)
■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) |
結果
![](https://blogimg.goo.ne.jp/user_image/0a/00/49a446afb37ca5438d60e05fac9e221c.png)
1のときは1,2のときは2、4のときは4うまくいってる。
(3はFizzなので、↓)
![](https://blogimg.goo.ne.jp/user_image/2f/0d/a9b8c95ec8f7bafcd853a919cc40c0c6.png)
3はFizz5はBuzz15はFizzBizz
FizzBuzz部分もうまくいってる。
決定木をプロットしてみる。
plot(model) text(model) |
![](https://blogimg.goo.ne.jp/user_image/55/5c/44931b9e33563b3997ebe4806885a978.png)
大丈夫かな・・・