第3回:機械学習概論:考え方と枠組み

3.1 機械学習イントロダクション

機械学習とは

学習 (Learning)

大辞林より

  1. まなびおさめること.勉強すること.「新しい教科を―する」
  2. 〔生〕 生後の反復した経験によって,個々の個体の行動に環境に対して適応した変化が現れる過程.ヒトでは社会的生活に関与するほとんどすべての行動がこれによって習得される.
  3. 〔心〕 過去の経験によって行動の仕方がある程度永続的に変容すること.新しい習慣が形成されること.
  4. 〔教〕 新しい知識の獲得,感情の深化,よき習慣の形成などの目標に向かって努力を伴って展開される意識的行動.
3_gakushu.png
図1: ヒトの学習

機械学習 (Machine Learning)

プログラミングと機械学習

従来,機械(コンピュータ)に仕事をさせるには,人間が情報処理の手順や法則をプログラムとして記述し,機械に与えて実行していた

3_programming.png
図2: プログラミングによる情報処理

一方,機械学習による情報処理では,機械(コンピュータ)がデータから法則を自動的・統計的に学習する

3_machine_learning.png
図3: 機械学習による情報処理

機械学習に向いていること,向いてないこと

応用例

チャレンジ

3.2 アヤメ(Iris) の分類問題

アヤメ問題

ヒオウギ・アヤメ(Iris-Setosa)ブルーフラッグ (Iris-Versicolour)バージニカ (Iris-Virginica)
iris_setosa.jpgiris_versicolour.jpgiris_verginica.jpg
(C) Malcolm Manners - CC BY 2.0(C) Maja Dumat - CC BY 2.0(C) Frank Mayfield - CC BY-SA 2.0
図3:分類するアヤメの品種

Google Colabでやってみよう

Google Colabの起動

データのロード

データを眺める

アヤメ問題の定式化

3_formulation.png
図4: アヤメ問題への機械学習の適用

機械学習を実行し,モデルを構築する

#特徴に使う列名リスト
features = ["がくの長さ", "がくの幅", "花びらの長さ", "花びらの幅"]
#正解データに使う列名
label = "品種"

X = data[features]
y = data[label]

from sklearn import tree
#決定木による分類モデルの構築
model = tree.DecisionTreeClassifier(random_state = 0)
model.fit(X,y)

未知のデータで予測してみる

#未知のデータで予測してみる
new_data = pd.DataFrame([[4.8, 3.3, 1.4, 0.2],[7.3, 3.2, 4.4, 1.3],[5.5, 2.6, 5.5, 2.7] ], columns=features)
new_data
#予測してみる
model.predict(new_data)

アプリに組み込んでみる

#ユーザから入力を受け付けて,答えを出すプログラム
print("■アヤメの品種予測アプリ")
while True:
  input_str = input("がくの長さ・幅,花びらの長さ・幅をコンマ区切りで入力(0で終了):")
  if (input_str == "0"):
    break
  vals = np.array(input_str.split(",")).astype(float)
  if (len(vals) != 4):
    print(" ×エラー:4つの数値が必要です.やり直し")
    continue
  df_params = pd.DataFrame([vals], columns=features)
  print(f" ○AI:品種は{model.predict(df_params)[0]}と思われます")
print("終了します")

3.2 機械学習のタイプ

ある基準に基づいて,

教師あり/教師なし学習

教師あり学習(Supervised Learning)

バッチ学習とオンライン学習

インスタンスベース

3.3 全体フレームワーク

3.4 実装フロー


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS