5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

機械学習レシピ#1

Posted at

以下のビデオをみた際のメモ書き。
https://www.youtube.com/watch?list=PLOU2XLYxmsIIuiBfYad6rFYQU_jL2ryal&v=cKxRvEZd3Mw

機械学習で使う2つのオープンソースライブラリ

  • sckit-learn
  • TensorFlow

りんごとみかんを区別するコードを書く

機械学習を使わないと、手作業のコードを多く書くことになるコード。(オレンジ色のピクセル数をカウントして、緑色のピクセル数と比較するなど。ただしこの方法は白黒写真では使えない。)
また何かマッチしない例がくると、毎回それをコードに反映しなおさないといけない。

規則を把握するアルゴリズムがあるとこれらは回避できる。機械学習ではそのために分類器Classifier(関数)を学習させる。

入力データ ⇒ Classifier ⇒ ラベル
※絵 ⇒ Classifier ⇒ オレンジ
※メール ⇒ Classifier ⇒ SPAM

これらは教師付き学習(Supervised Learning)と呼ばれ、サンプルデータからパターンを見つけて分類機を作成する。

目的:果物の種類を分別する関数を作る
        果物に関する情報を入力として受取り、特徴量(測定値)に基いて出力として予測する。

sckit-learnでコード化

  • sckit-learnのインストール
$ sudo pip install -U numpy
$ sudo pip install -U scipy
$ sudo pip install -U scikit-learn

① 学習データを集める

Weight Texture Label
150g Bumpy Orange
170g Bumpy Orange
140g Smooth Apple
130g Smooth Apple
これらが分類機に学習してほしいデータ。
学習データが良いと、良い分類器が作成できる。

学習データをコードで用意。
2つの変数”特徴量”と”ラベル”を用意する。特徴量は入力、ラベルは出力。
このとき特徴量のデータ型はStringではなく数値型に変えて、Bumpyは0、Smoothは1とする。またりんごは0、オレンジは1とする。

② 分類機を学習させる
今回は決定木を利用。
分類機は規則の箱
学習アルゴリズムは規則を作る手順(学習データ中のパターンを見つけることで作る)

# 分類器を作成。この時点ではただの箱。りんごやオレンジのことは知らない。
# 学習させるための学習アルゴリズムが必要
clf = tree.DecisionTreeClassifier()

sckitでは分類器オブジェクトの中に学習アルゴリズムが含まれていて、Fitと呼ばれる。
Fit = ”データ中のパターンを見つける”

clf = clf.fit(features,labels)

③ 新しい果物を分類する
分類機へ新しい果物の特徴量(150gでBumpyしている)をインプットする。

print clf.predict([[150,0]])

出力として1が返ってくるので、オレンジと分類される。

test.py
from sklearn import tree
features = [[140,1],[130,1],[150,0],[170,0]]
labels = [0,0,1,1]
clf = tree.DecisionTreeClassifier()
clf = clf.fit(features,labels)
print clf.predict([[150,0]])
5
6
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
5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?