Python scikit-learn - 機械学習でアヤメの品種を分類する

機械学習でアヤメの品種を分類します。

機械学習でアヤメの品種分類

scikit-learn には、機械学習やデータマイニングを試すことができるようデータが同梱されています。

iris.dataには次の4種類のデータが格納されています。

カラム内容
sepal length (cm)がく片の長さ
sepal width (cm)がく片の幅
petal length (cm)花弁の長さ
petal width (cm)花弁の幅

iris.targetには次の3種類の花の種類が格納されています。

花の種類
setosa0
versicolor1
virginica2

実行するコードは下記の通りです。

[コード]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import pandas as pd
from sklearn import svm, metrics, model_selection, datasets

# アヤメのCSVデータを読み込む
iris = datasets.load_iris()

# 学習用とテスト用に分離する
train_data, test_data, train_label, test_label = model_selection.train_test_split(iris.data, iris.target, test_size=0.2, train_size=0.8, shuffle = True)

# データの学習
clf = svm.SVC()
clf.fit(train_data, train_label)

# データを予測
pre = clf.predict(test_data)

# 正答率を求める
ac_score = metrics.accuracy_score(test_label, pre)
print('正解率:', ac_score)

学習用とテスト用にデータを分離し、シャッフルまで行ってくれるmodel_selection.train_test_split(7行目)はとても便利です。


実行結果は次のようになります。

[実行結果]

正解率: 0.9333333333333333

正答率93%以上と十分な結果となりました。