AIの流行に乗ってAI開発の参考書を買った その2

こんにちは、こんばんわ

 

まず初めにこの記事は「横浜医療情報専門学校Advent Calendar 2018」の10日目の記事になっています。

 

adventar.org

 

 

そして、この記事は私が買った「すぐに使える! 業務で実践できる! Pythonによる AI・機械学習・深層学習アプリのつくり方」の2つ目の記事です!

 

 

 

 

1つ目の記事:AIの流行に乗ってAI開発の参考書を買った - プログラミング初心者の日記

 

 

 

今回は2章の内容を少し進めてみたいと思います!


 

2章は実際に機械学習をやってみる章になっています

 

ここからは「scikit-learn」というPython向けの機械学習フレームワークを利用します

※ scikit-learnやpythonの開発環境の構築はこの記事では、紹介しません。しかし、調べるとたくさん出てくるので、そちらを参考にしてください

 

scikit-learnのWebサイト:https://scikit-learn.org/stable/

 

まず初めにAND演算に機械学習を組み込みます!

 

ゴールを決定しよう

今回は、以下のような教師あり学習をつくる

入力(X,Y)と結果(X AND Y)の全パターンを学習させる。
改めて、入力(X,Y)の全パターンを与えた場合に、正しい結果(X AND Y)に分類してくれるかを評価する。

 

 

アルゴリズムの選択をしよう!

・どのような機械学習をしたいのか

・どのようなデータを準備しているのか

などの条件を辿っていくとアルゴリズムを選択できる「アルゴリズムチートシート」というのがあります。(下記の画像)

f:id:m2260190:20181209160343p:plain


これを辿ってアルゴリズムを選びます

AND演算はサンプルデータを4件しか用意できません。

つまり

 

[Start]→[>50 Sample]→No→[get more data(もっとデータを用意しましょう)]

 

となってしまいます

 

しかし、基本的な流れを掴むためなので、今回は無視します

改めて先に進むと

 

[Start]→[>50 Sample]→Yes→[predicting category(カテゴリを予測する)]→Yes

→[do you have labeled data(ラベル、つまり結果付きのデータを持っているか?)]

→Yes→[<100K samples]→Yes→[LinearSVC]

 

となります

ということで今回、使用するのは「LinearSVC」というアルゴリズムです!

 

実装しよう!

 では、実際にプログラムを記述しましょう

#ライブラリのインポート
from sklearn.svm import LinearSVC
from sklearn.metrics import accuracy_score

#学習用のデータと結果の準備
#X,Y
learn_data =[ [0,0],[1,0],[0,1],[1,1]]
#X AND Y
learn_label = [0,0,0,1]

#アルゴリズムの指定(LinearSVC)
clf = LinearSVC()

#学習用データと結果の学習
clf.fit(learn_data,learn_label)

#テストデータによる予測
test_data = [[0,0],[1,0],[0,1],[1,1]]
test_label = clf.predict(test_data)

#予測結果の評価
print(test_data , "の予測結果:" , test_label)
print("正解率=" , accuracy_score([0,0,0,1],test_label))

 

これを実行すると以下のようになります

 

f:id:m2260190:20181209162804p:plain

 

[[0, 0], [1, 0], [0, 1], [1, 1]] の予測結果: [0 0 0 1]

正解率= 1.0

 

正解率1.0=100%です!

簡単な機械学習を体感できたでしょうか?

 

ANDができれば、他の演算にも応用できるので、試してみてください!!

 

ではではー