EnsekiTT Blog

EnsekiTTが書くブログです。

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

つまりなにしたの?

Blogでサンプルを使いつつ、処理方法を紹介する時に便利なscikit-learnのdatasetsにはどんなのが入っているのか
まとめておこうと思ってまとめ始めた。

f:id:ensekitt:20181031220649j:plain
*1

やりたいこと

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

今回は中でもよく使われるBostonとIrisについて紹介する。

環境

 % 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
ボストンの住宅価格

ボストンの住宅価格をまとめたデータセット
506データ含まれていて、住宅価格を回帰で予測したりする。
load_boston([return_X_y])
Load and return the boston house-prices dataset (regression).
sklearn.datasets.load_boston — scikit-learn 0.20.0 documentation

説明変数
1. CRIM 町の犯罪率
2. ZN 25000平方フィートあたりの住宅割合
3. INDUS 町の非小売業者の割合
4. CHAS チャールズ川のダミー変数(川沿いなら1、それ以外なら0)
5. NOX 酸化窒素濃度(1000万分の1)
6. RM 住居あたりの平均部屋数
7. AGE 1940年以前に建設された家の割合
8. DIS 5つのボストン雇用センターへの重み付きの距離
9. RAD 放射状の高速道路へのアクセス可能性の指標(交通の要所へのアクセス可能性?)
10. TAX 10000ドルあたりの物件税率
11. PTRATIO 町ごとの教師一人あたりの生徒の数
12. B 1000x(町ごとの黒人比率 - 0.63)^2 の値
13. LSTAT 人口あたりの低所得者比率(%)
目的変数
14. MEDV 1000ドル台での持ち家価格の中央値

学習データの読み込み

boston_data = datasets.load_boston()
boston_df = pd.DataFrame(boston_data.data, columns=boston_data.feature_names)
boston_df.head()

f:id:ensekitt:20181031214601p:plain:h200

対象データの読み込み

boston_df_tgt = pd.DataFrame(boston_data.target, columns=['target'])
boston_df_tgt.head()

f:id:ensekitt:20181031214622p:plain:h200
f:id:ensekitt:20181031214922p:plain:w480

あやめの種類

各部位ごとのサイズからあやめの種類を予測するデータセット
150データ含まれている。あやめの種類をクラス分類で予測したりする
各クラス33%ずつ含まれている。
load_iris([return_X_y])
Load and return the iris dataset (classification).
sklearn.datasets.load_iris — scikit-learn 0.20.0 documentation

説明変数
1. sepal length 花のがくの長さ
2. sepal width 花のがくの幅
3. petal length 花弁の長さ
4. petal width 花弁の幅
目的変数
5. class: あやめの種類
-- 0 Iris Setosa
-- 1 Iris Versicolour
-- 2 Iris Virginica

学習データの読み込み

boston_data = datasets.load_boston()
boston_df = pd.DataFrame(boston_data.data, columns=boston_data.feature_names)
boston_df.head()

f:id:ensekitt:20181031215321p:plain:h200

対象データの読み込み

boston_df_tgt = pd.DataFrame(boston_data.target, columns=['target'])
boston_df_tgt.head()

f:id:ensekitt:20181031215340p:plain:h200
f:id:ensekitt:20181031215353p:plain:w480

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