アヤメの種類判別(その6)

実行例は「saka.mokumoku」の「Google Colabotry」環境に保存してある
  学習モデルにRandomForestを使用する

1.事前準備

 ライブラリのインポート、データの読み込み
   4つの説明変数
     sepal length (cm) : がく片の長さ
     sepal width (cm) : がく片の幅
     petal length (cm) : 花弁の長さ
     petal width (cm) : 花弁の幅

   targetに3つの品種がある
     setosa, versicolor, virginicaの3品種名
     説明変数と同じようにデータフレームに入れる
       目的変数の値を確認する
         0 : setosa
         1 : versicolor
         2 : virginica

#
# ライブラリのインポート、データの読み込み、先頭5行の表示
#
from sklearn.datasets import load_iris
import pandas as pd
iris = load_iris()
data = iris.data
#
# 説明変数の確認
#
feature_names = iris.feature_names
df = pd.DataFrame(data=data, columns=feature_names)
df.head()
#
df.shape
#
# 目的変数の確認
#
target = iris.target
target_names = iris.target_names
print(target_names)
#
df_target = pd.DataFrame(data=target, columns=['target'])
print((df_target.head())
#
print(df_target['target'].unique()) 

2.機械学習

 データ分割
   データを学習用とテスト用に分割する
     train_test_split()で簡単に分割できる
     デフォルトで25%のデータがテストデータ
       変更する場合は引数にtest_sizeを追加する、0.2~0.4がお勧め

from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(data, df_target)
print('x_train : ', x_train.shape) 
print('x_test : ', x_test.shape) 
print('y_train : ', y_train.shape) 
print('y_test : ', y_test.shape) 

3.機械学習

 学習モデルにRandomForestを使用する

from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier()
#
model.fit(x_train, y_train)

 モデルの精度を確認する
   精度の確認にはaccuracy_scoreを使用する
   精度は 97.4%

pred = model.predict(x_test)
#
from sklearn.metrics import accuracy_score
accuracy_score(y_test, pred)