scikit-learnのデータセット
scikit-learnは機械学習を扱う便利なライブラリですが、簡単に試せるようにサンプル・データセットも用意されています。多くの方はscikit-learnの入門にこのデータセットを利用されると思います。
sklearn.__version__ : 1.4.2
サンプルデータセットには小さいサイズのToy Datasetsと画像などの大きなサイズのReal World Datasetsの2種類が用意されています。
#! /usr/bin/env python # -*- coding:utf-8 -*- iris_data = sklearn.datasets.load_iris() print(type(iris_data))
<class 'sklearn.utils._bunch.Bunch'>
データセットはBunchクラスのオブジェクトとして読み込まれます。
Bunchクラスはdictのサブクラスでdictと同じように扱えるので、keys()でメンバ一覧出来ます。
print(iris_data.keys())
dict_keys(['data', 'target', 'frame', 'target_names', 'DESCR', 'feature_names', 'filename', 'data_module'])
Bunchクラスのデータをpandasのデータフレームに変換する
Bunchクラスのデータをpandasのデータフレームとして扱うには、データの中身をdata変数、列名をfeature_namesから取ります。
df = pd.DataFrame(iris_data.data, columns=iris_data.feature_names) pritn(df.head())
0 5.1 3.5 1.4 0.2
1 4.9 3.0 1.4 0.2
2 4.7 3.2 1.3 0.2
3 4.6 3.1 1.5 0.2
4 5.0 3.6 1.4 0.2
このようにデータフレームとしても扱えますが、Bunchオブジェクトは説明変数、目的変数、注釈などに分けてあるので通常のデータフレームよりデータの内容が理解しやすいです。
通常のデータフレームは行と列ですぐに扱えますが、扱いやすい分、列名が短縮系で意味が分からなかったり、データ自身を解釈するのに他に説明が必要です。
Bunchクラスではデータの意味や説明まで含まれているので、データをどのように扱うか他を参照しなくても理解出来ます。
scikit-learnは急速に進化中ですが、Bunchクラスはサンプルデータだけでなく、もっと広まっても良い気がします。
0 件のコメント:
コメントを投稿