実行例は「saka.mokumoku」の「Google Colabotry」環境に保存してある
iris(菖蒲:アヤメ)データセットを使って進める
(その3)は行番号52~66までを解説する
#
# 1.データの読み込み
#
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
#
from sklearn import datasets
#
%matplotlib inline
#
iris_datasets = datasets.load_iris()
#
#
#print("***詳細*****",flush=True)
#print(iris_datasets.DESCR)
#print("********",flush=True)
#
#
# 2.データの確認
#
iris = pd.DataFrame(iris_datasets.data,columns = iris_datasets.feature_names)
iris['target'] = iris_datasets.target
#
iris.head()
#
#
# 3.モデルの学習
#
target = iris['target']
data = iris[iris_datasets.feature_names]
#
from sklearn import model_selection
data_train,data_test,target_train,target_test = \
model_selection.train_test_split(data,target,train_size=0.8)
#
print(target_train.shape,target_test.shape)
print(data_train.shape,data_test.shape)
#
from sklearn.svm import SVC
model = SVC(gamma='scale')
model.fit(data_train,target_train)
#
target_predict = model.predict(data_test)
#
print(target_predict)
print(np.array(target_test))
#
model.score(data_test,target_test)
#
#
# 4.モデルの評価
#
from sklearn.metrics import precision_score
from sklearn.metrics import recall_score
from sklearn.metrics import f1_score
#
precision = precision_score(target_test,target_predict,average='micro')
recall = recall_score(target_test,target_predict,average='micro')
f1 = f1_score(target_test,target_predict,average='micro')
#
print('適合率(precision)',precision)
print('再現率(recall)',recall)
print('F値(F-measure)',f1)
#
#
#
# データの先頭
#print("***先頭****",flush=True)
#iris.head()
#print("********",flush=True)
#
# データの概要
#print("***概要****",flush=True)
#iris.info()
#print("********",flush=True)
#
# データの要約統計量
#print("***統計*****")
#iris.describe()
#print("********")
#
# データの形状
#print("***形状*****")
#iris.shape
#print("********")
#
# データ要素の取り出し
#print("***要素*****")
#iris.iloc[:10]
#print("********")
#
# 条件に合う行の取得
#print("***条件*****")
#iris.query("target==1")
#print("********")
#
#
以下にサンプルコードと解説を載せます
4.モデルの評価
#
from sklearn.metrics import precision_score
from sklearn.metrics import recall_score
from sklearn.metrics import f1_score
評価用数値を求めるためにライブラリを読み込む
適合率(precision)
正解と予測した中で、実際に正解している割合
再現率(recall)
実際の正解の中で、正解と予測できた割合
F値(F-measure)
適合率と再現率の調和平均
#
precision = precision_score(target_test,target_predict,average='micro')
recall = recall_score(target_test,target_predict,average='micro')
f1 = f1_score(target_test,target_predict,average='micro')
各々評価値を計算する
目的変数の検証用データと予測結果で割合の計算
#
print('適合率(precision)',precision)
print('再現率(recall)',recall)
print('F値(F-measure)',f1)
以下はprint文による出力例
適合率(precision) 0.9666666666666667
再現率(recall) 0.9666666666666667
F値(F-measure) 0.9666666666666667