EnsekiTT Blog

EnsekiTTが書くブログです。

scikit-learnのdatasetsにはどんなのが入っているのか調べてみた話【Linnerud, Wine編】

つまりなにしたの?

Blogでサンプルを使いつつ、処理方法を紹介する時に便利なscikit-learnのdatasetsにはどんなのが入っているのか
まとめておこうと思ってまとめ始めた。今回は運動能力データとワインデータ。
f:id:ensekitt:20181101225210j:plain
*1

やりたいこと

  • datasetsの種類リスト
  • 各説明変数の内容を簡単に示す
  • それぞれ読み出してみる
  • 目的変数の分布などを示す

今回は中でもlinnerudとwineについて紹介する。

環境

 % python
Python 3.6.4 (default, Mar  2 2018, 00:45:54)
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> import pandas
>>> import sklearn
>>> numpy.__version__
'1.15.3'
>>> pandas.__version__
'0.23.4'
>>> sklearn.__version__
'0.20.0'

datasetsの種類とリスト

5. Dataset loading utilities — scikit-learn 0.20.0 documentation

  • Toy datasets

よく使われるirisやdigitsが含まれるデータセットはToyDatasetとしてあった。
今回はここから2つについて紹介する。

  • Real datasets
  • Generated datasets

今回は各種データセットについて、読み込みの上Pandas DataFrameの説明変数と目的変数を作成することを目的とする。
importするもの

import pandas as pd
from sklearn import datasets
運動能力データセット

生理学的特徴と運動能力についてまとめられたデータセット
20データ含まれていて、説明変数3次元、目的変数3次元というコンパクトな感じ。
linnerudは作成した方の名前らしい。
load_linnerud([return_X_y])
Load and return the linnerud dataset (multivariate regression).
5. Dataset loading utilities — scikit-learn 0.20.0 documentation

説明変数
1. Chins 逆手懸垂ができる回数
2. Situps 上体起こしができる回数
3. Jumps ジャンプ(単位がよくわからない)
目的変数
4. Weight 体重(たぶんポンド)
5. Waist ウェスト(たぶんインチ)
6. Pulse 心拍数(男性にしてはやや低い気がする)

学習データの読み込み

linnerud_data = datasets.load_linnerud()
linnerud_df = pd.DataFrame(linnerud_data.data, columns=linnerud_data.feature_names)
linnerud_df.head()

f:id:ensekitt:20181101212517p:plain:h200

対象データの読み込み

linnerud_df_tgt = pd.DataFrame(linnerud_data.target, columns=linnerud_data.target_names)
linnerud_df_tgt.head()

f:id:ensekitt:20181101212607p:plain:h200
f:id:ensekitt:20181101212619p:plain:w480

ワインのデータセット

ワインの品種に関するデータセット
178データ含まれている。3クラス分類で予測したりする
load_wine([return_X_y])
Load and return the wine dataset (classification).
sklearn.datasets.load_wine — scikit-learn 0.20.0 documentation

説明変数
1. alcohol アルコール濃度
2. malic_acid リンゴ酸
3. ash 灰(?
4. alcalinity_of_ash 灰のアルカリ成分(?
5. magnesium マグネシウム
6. total_phenols 総フェノール類量
7. flavanoids フラボノイド(ポリフェノールらしい)
8. nonflavanoid_phenols 非フラボノイドフェノール類
9. proanthocyanins プロアントシアニジンポリフェノールの一種らしい)
10. color_intensity 色の強さ
11. hue 色合い
12. od280/od315_of_diluted_wines ワインの希釈度合い
13. proline プロリンアミノ酸の一種らしい)
目的変数
14. ワインの品種

学習データの読み込み

wine_data = datasets.load_wine()
wine_df = pd.DataFrame(wine_data.data, columns=wine_data.feature_names)
wine_df.head()

f:id:ensekitt:20181101223800p:plain
f:id:ensekitt:20181101003808p:plain:h200

対象データの読み込み

digits_df_tgt = pd.DataFrame(digits_data.target, columns=['target'])
digits_df_tgt.head()

f:id:ensekitt:20181101223824p:plain:h200
f:id:ensekitt:20181101223859p:plain:w480

どうやら英語じゃないデータ列名もあるみたいで、
系列の意味を理解するのは大変だった。

クリエイティブ・コモンズ・ライセンス
この 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。