【Python】scikit-learnでIrisデータセットを手軽に用意する

Posted: , Category: データセット , 機械学習

機械学習の勉強をしていると、まず最初に登場するのが、Irisデータセットではないでしょうか。

今回は、Irisデータセットを手軽に用意する方法についてまとめます。

Irisデータセットを用意する方法は多数ありますが、今回はPythonの科学計算ライブラリであるscikit-learnを用いる方法でIrisデータセットを手軽に用意します。

また、Irisデータセットの説明も行います。

本記事の内容
  • Irisデータセットの解説
  • scikit-learnを用いて手軽にIrisデータセットを用意する
  • Irisデータセットを可視化して確認する

Irisデータセットの解説

まず、Irisデータセットの解説を簡単にします。

Irisデータセットとは、3種類のアヤメの花において、がく片(sepal)の長さ、幅、および、花弁(petal)の長さ、幅の4系列の指標を取得したデータセットになります。

がく片や花弁と言われてもピンとこないと思うので、図を掲載します。

引用元: https://byjus.com/biology/sepals/

花弁(petal)が花びらで、がく片(sepal)が、花の下にある支え(?)のようなものですかね。

私は植物に詳しくないのですが、petalとsepalの縦幅(lenght)と横幅(width)の4種類の系列があることを理解しておけば良いでしょう。

またアヤメの花の種類は3種類あり、それぞれ、setosa、versicolor、virginicaの3種類です。

それぞれの画像を用意するとこのような感じです。

引用元: https://morioh.com/p/eafb28ccf4e3

データセット中での数字との対応は以下のようになっています。

Irisデータセットの種別と数字の対応
  • setosa: 0
  • versicolor: 1
  • virginica: 2

Irisデータセットにはデータの正解ラベルが与えられていますので、上記の対応表から、0のデータはsetosaのデータだと読み取ることができます。

Irisデータセットには、このようなデータが150ほどあります。

それではデータセットの解説はこの辺にして、早速データセットを用意していきましょう。

Irisデータセットの用意

まず、Irisデータセットを準備します。Irisは表形式のデータセットなので、取り扱いを楽にするために、pandasも用います。

import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

import pandas as pd
from sklearn.datasets import load_iris

scikit-learnからIrisデータセットを読み込みむのは、sklearn.datasetsモジュールに含まれるload_iris()関数を呼び出すだけです。

iris = load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names)
df['label'] = iris.target

pandas.DataFrameのdfオブジェクトのlabel系列には正解ラベルが格納されています。

dfの中身を確認するとこのようになっています。

ここで、labelはデータセットの解説で紹介した数字に対応しています。

Irisデータセットを可視化する

新しいデータセットを扱う場合、可視化ツールを用いてデータを可視化して確認することは、データの傾向をつかむ上で非常に重要です。

今回は、Pythonの可視化ライブラリであるseaborn(sns)を用いて、4つの特徴をぞれぞれ散布図で示してみます。

sns.pairplot(df, hue="label")

seabornを用いると、2つの特徴間の散布図を簡単に作ることができます。

上記のコードを実行すると、このように表現することができました。

4系列あり、ぞれぞれの4×4の16通りの散布図が出ているのがわかります。同じ系列のところは、データのヒストグラムが表示されています。

ざっと眺めてみます。例えば花びら(petal)の大きさ(lengthとwidth)に注目してみると、下図における赤い四角の場所になります。

アヤメの種類別に色が塗り分けられていますが、右上に行くほど花びらが大きいことになります。

ある程度ですが、種類によって花びらの大きさに傾向があり、virginica、versicolor、setosaの順に花びらが大きいことが見て取れます。

他にもsepalに注目してみたりすると面白いので、ぜひ確認してみてください。

【広告】
統計学的にあなたの悩みを解決します。
仕事やプライベートでお悩みの方は、ベテラン占い師 蓮若菜にご相談ください。

機械学習と情報技術