前回の内容
2章 アイリスのクラス分類(準備) 概要
ようやく機械学習らしい内容に入っていきます!
今回はアイリスのクラス分類という機械学習界隈では、定番?の問題を通して、機械学習の触りを学習していきます。
アイリスのクラス分類とは?
アマチュア園芸家が見つけた、アイリスという品種の花の種類を自動分類したいという問題
花弁の長さと幅・ガクの長さと幅を特徴量として、解析していく。
後ほど述べるが、3種類の花の種類が事前に確定しているので、「教師あり学習」という枠に分類される。
Pythonを通して問題を解いていく
この問題は、scikit-learnに付属されているload_iris関数を通してアクセスが可能となっている。
from sklearn.datasets import load_iris
iris_dataset = load_iris
このように取得したirisデータを使って、新たな花弁の特徴量を与えた際に、自動で予測・分類を行うようなモデルを構築していく。
訓練データとテストデータについて
実際にモデルを構築するにあたって、そのモデルが本当に正しいかを測定することが必要であることは以前述べた。
モデル構築の際に利用したデータをテストデータに使ってしまうと、丸々データを覚えているだけであり、本当に正しいかの評価に利用することはできない。
一般的には、集めたデータセットの75%をモデル構築に利用し、残りの25%をテストデータとして構築には使用せずに取っておく。
訓練データとテストデータをPythonを使って分割する
具体的には、sklearnに含まれるtrain_data_split関数を使って分割が可能である。
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(
iris_data['data'], iris_data['target'], random_state=0
)
2章 アイリスのクラス分類(準備) 所感
アイリスのクラス分類という基礎問題を通して学習を進めていった。
モデル構築をする前に、訓練データとテストデータと分割しておくことは評価する上で確かに重要なことだと感じた。
(間違えて全部構築に回してしまったらデータを集め直すか、構築をやり直すかのどちらかになりそう。)
次回から、実際に、構築・予測を行っていくので楽しみである。