Code Python

【Python】scikit-learnでirisデータセットを使ってみる

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(花弁)の幅と長さ、それに対する正解ラベルが一緒になったデータセットになっています。

-Code, Python

© 2024 トンボのようにまっすぐ進んでいたい Powered by AFFINGER5