機械学習-アヤメの分類 (試験データのプロット)
試験データの確認
別記事の機械学習-アヤメの分類 (プログラム)で実施したアヤメのデータについて詳細に見ていきます。
まずはどのようなデータが入っているか確認していきましょう。
必要なデータのInclude
1 2 3 |
#scikit-learnからデータの取り出し from sklearn import datasets iris = datasets.load_iris() |
特徴量の名前の調査
1 2 |
#特徴量の名前 iris.feature_names |
1 2 3 4 |
['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)'] |
それぞれ以下に対応します。
・がく片の長さ(cm)
・がく片の幅(cm)
・花びらの長さ(cm)
・花びらの幅(cm)
・がく片の幅(cm)
・花びらの長さ(cm)
・花びらの幅(cm)
アヤメの各種データの確認
1 2 |
#アヤメの各種データ iris.data |
1 2 3 4 5 6 |
array([[ 5.1, 3.5, 1.4, 0.2], [ 4.9, 3. , 1.4, 0.2], [ 4.7, 3.2, 1.3, 0.2], [ 4.6, 3.1, 1.5, 0.2], [ 5. , 3.6, 1.4, 0.2], [ 5.4, 3.9, 1.7, 0.4], |
[がく片の長さ,がく片の幅,花びらの長さ,花びらの幅]が設定されています。
データの説明の確認
1 2 |
#データの説明 print(iris.DESCR) |
1 2 3 4 5 6 7 8 9 10 |
:Summary Statistics: ============== ==== ==== ======= ===== ==================== Min Max Mean SD Class Correlation ============== ==== ==== ======= ===== ==================== sepal length: 4.3 7.9 5.84 0.83 0.7826 sepal width: 2.0 4.4 3.05 0.43 -0.4194 petal length: 1.0 6.9 3.76 1.76 0.9490 (high!) petal width: 0.1 2.5 1.20 0.76 0.9565 (high!) ============== ==== ==== ======= ===== ==================== |
例えば「がく片の長さ」の最小は4.3cm 最大7.9cmとなっています。
試験データのプロット
アヤメのデータは「がく片の長さ」「がく片の幅」「花びらの長さ」「花びらの幅」から成り立っているため、それぞれのX軸、Y軸の組み合わせでプロットします。全部で6通りのグラフとなります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
import itertools from matplotlib import pyplot as plt from sklearn import datasets def main(): iris = datasets.load_iris() # アヤメの各種データ features = iris.data # 各特徴量の名前 feature_names = iris.feature_names # データと品種の対応 targets = iris.target # グラフの全体サイズを指定する plt.figure(figsize=(20, 8)) # 特徴量の組み合わせ for i, (x, y) in enumerate(itertools.combinations(range(4), 2)): plt.subplot(2, 3, i + 1) for t, marker, c in zip(range(3), '>ox', 'rgb'): plt.scatter( features[targets == t, x], features[targets == t, y], marker=marker, c=c, ) plt.xlabel(feature_names[x]) plt.ylabel(feature_names[y]) plt.autoscale() plt.show() if __name__ == '__main__': main() |
アヤメのデータがプロットされました。赤、青、緑がそれぞれ「setosa」、「Versicolour」、「Virginica」のアヤメの品種に対応します。
それぞれのアヤメの品種毎に特徴があり、「がく片の長さ」「がく片の幅」「花びらの長さ」「花びらの幅」を組み合わせることで品種を特定できそうです。
これらの特徴を機械学習で学習させていきます。