irisデータセットとは、アヤメ(菖蒲)の種類と特徴量(花弁、萼片の幅、長さ)に関するデータセットです。
機械学習において、サンプルとしてよく使われています。
scikit-learn同梱のirisデータセットを使っていきます。
モジュールをインストール
scikit-learnとpandasをインストールします。
pip install scikit-learn
pip install pandas
インストールされたか確認します。
pip list
Package Version
--------------- -------
〜(略)〜
pandas 1.2.4
scikit-learn 0.24.1
irisデータセットをインポート
from sklearn.datasets import load_iris
iris = load_iris()
これでirisデータセットをロードできました。簡単ですね。
内容を確認していきましょう。
print(iris.keys())
# dict_keys(['data', 'target', 'frame', 'target_names', 'DESCR', 'feature_names', 'filename'])
data, targetなど、色々なkeyがあります。
詳しく内容を見てみましょう。
for key, value in zip(iris.keys, iris.values):
print("{}\n{}\n".format(key, value))
data:
[[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]
[4.6 3.4 1.4 0.3]
[5. 3.4 1.5 0.2]
[4.4 2.9 1.4 0.2]
[4.9 3.1 1.5 0.1]
[5.4 3.7 1.5 0.2]
[4.8 3.4 1.6 0.2]
〜 (略)
target:
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
2 2]
frame:
None
target_names:
['setosa' 'versicolor' 'virginica']
DESCR:
.. _iris_dataset:
Iris plants dataset
〜 (略)
feature_names:
['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']
filename:
/Users/[ユーザ名]/.pyenv/versions/3.8.6/lib/python3.8/site-packages/sklearn/datasets/data/iris.csv
pandasで確認するとこんな感じです。
ランダムに10個のデータを抽出してきています。
import pandas as pd
iris_df = pd.DataFrame(iris.data, columns=iris.feature_names)
iris_df['species'] = [iris.target_names[i] for i in iris.target]
print(iris_df.sample(10))
# sepal length (cm) sepal width (cm) petal length (cm) petal width (cm) species
# 57 4.9 2.4 3.3 1.0 versicolor
# 144 6.7 3.3 5.7 2.5 virginica
# 147 6.5 3.0 5.2 2.0 virginica
# 49 5.0 3.3 1.4 0.2 setosa
# 28 5.2 3.4 1.4 0.2 setosa
# 124 6.7 3.3 5.7 2.1 virginica
# 67 5.8 2.7 4.1 1.0 versicolor
# 108 6.7 2.5 5.8 1.8 virginica
# 6 4.6 3.4 1.4 0.3 setosa
# 64 5.6 2.9 3.6 1.3 versicolor
sepal(がく)、petal(花弁)の幅と長さ、それに対する正解ラベルが一緒になったデータセットになっています。