データセット「Iris」について説明。150件のあやめの「表形式データ(花びら/がく片の長さと幅の4項目)」+「ラベル(3種類のあやめの分類)」が無料でダウンロードでき、多クラス分類問題などのディープラーニングや統計学/データサイエンスに利用できる。scikit-learnとTensorFlowにおける利用コードも紹介。
Irisデータセット(「あやめ」という花の形状データ)は、「花びら(petal)/がく片(sepal)の長さと幅(cm)」という4つの特徴量と、あやめの種類である「setosa/versicolor/virginica」という3つのラベルで構成される表形式データセット(=構造化データセット)である(図1)。
Irisデータセットは、主に多クラス分類(具体的には「あやめの種類の予測」)を目的とした統計学/機械学習/ディープラーニングなどで活用できる。
ただし、データ件数は150件しかない。ディープラーニングに使うには少ないが、初歩的な実装方法の解説などで使われることが多い。
図1を見ると分かるように、Irisデータセットの特徴量は、
の4項目となっている。花びらは漢字で書くと「花弁」であり「かべん」とも読む。花の上部にあるのが「花びら」で、下部にあるのが「がく片」となる。あやめの場合、「花びらよりもがく片の方が大きく、がく片が花のような形と色彩である」という特徴があるので注意してほしい。図2は論文「The Species Problem in Iris」(1936年)から引用した図で、2つずつ並ぶ左の大きい方がSepal(がく片)で小さい方がPetal(花びら)となっている。
また、目的変数(target variable)となるラベル(=正解を示す教師データ)には、
の3種類がある。それぞれ50件ずつあり、合計で150件となる。
このデータセットは、基本的に自由に使用できる(※UC Irvine Machine Learning Repositoryでは、ライセンスとしてCC BY 4.0が指定されている。データの取得元を明記する場合は、以下を参考にしてほしい)。
Ronald Aylmer Fisher氏は、20世紀の統計学者/生物学者として非常に有名なフィッシャーのことである。このため、「Fisher's Iris dataset(フィッシャーのあやめデータセット)」と呼ばれることもある。
また、元々のデータ収集はEdgar Anderson氏が行っているため(参考:「The Species Problem in Iris」、1936年)、「Anderson's Iris dataset(アンダーソンのあやめデータセット)」と呼ばれることもある。
実際にIrisデータセットを使うには、ライブラリscikit-learnやTensorFlow Datasetsが提供する機能を利用することをお勧めする。ムダな作業を省いて、効率的に使えるためだ。※なお、Keras/PyTorchにはIrisデータセットは用意されていなかった。
以下に、scikit-learnやTensorFlow Datasetsで「どのようなコードを書くとIrisデータセットが使えるか」の典型的なコードを簡単に示しておく(※コードの詳細は解説しない)。
# !pip install scikit-learn # ライブラリ「scikit-learn」をインストール
from sklearn.datasets import load_iris
iris = load_iris()
sklearn.datasets.load_iris()関数を呼び出せばよい。戻り値として(sklearn.utils.Bunch型の)辞書オブジェクトを返す。その配下のdataにデータが、targetにラベルが、feature_namesに特徴量名が、target_namesにラベル名が、関数の引数にas_frame=Trueを含めた場合はframeに全5列のpandasデータフレーム(※target列は最後の列)が格納されている。
# !pip install tensorflow-datasets # ライブラリ「TensorFlow Datasets」をインストール
import tensorflow_datasets as tfds
iris_train = tfds.load(name="iris", split="train")
TensorFlow Datasetsのirisデータセット情報は、こちらのページにまとめられている。tensorflow_datasetsモジュール(=tfds)のtfds.load関数から利用できる。
データセット配布元のURLを「https://archive-beta.ics.uci.edu/ml/datasets/iris」としていましたがリンク切れしていたので、新しいURL「https://archive.ics.uci.edu/dataset/53/iris」に修正しました。
次の文章をカットしました。「※scikit-learnのページによると、UCI Machine Learning Repositoryには間違ったデータポイントが2つあり、Fisherの論文に基づきそれらが修正されているため、scikit-learnで得られるデータセットとUCI Machine Learning Repositoryのデータセットは異なる、とのことである。2022年06月時点で筆者が確認したところ、35番目と38番目のデータが異なっていた。このことから、Irisデータセットはscikit-learnのものを使うのが一番よいかもしれない。」 2024年3月時点で再確認したところ、データが同じになっていたので修正された可能性がある。
Copyright© Digital Advantage Corp. All Rights Reserved.