scikit-learn から取得できるpythonサンプルデータの種類
データ分析を始めたり、グラフや関数の動作を試したいとき、サンプルデータが必要になります。「いますぐ試したい」のに、サンプルデータの生成は時間がもったいないです。
scikit-learn (sklearn) には「いますぐ使えるデータ」が load できるようになっています。
sklearn のサンプルデータ 7種類を、すぐに import して使える形で準備しました。
本家はこちら(英語)- サンプルデータ全7種類
以下のバージョンでは、7種類のデータの取得が可能です
scikit-learn.org
scikit-learn version 0.23.1
サンプル1:load_boston - ボストンの住宅価格データ
ボストンの住宅価格と、関連する環境項目のデータセット。
説明変数
データ件数:506
カラム数:13
CRIM | 都市別の1人当たり犯罪発生率 |
ZN | 25,000平方フィート以上の住宅地の割合(広さ) |
INDUS | 非小売業が占める面積の割合 |
CHAS | Charles川のダミー変数(1:河川の周辺; 0:その他) |
NOX | 一酸化窒素濃度(1000万分の1) |
RM | 一戸当たりの平均部屋数 |
AGE | 1940年以前に建てられた持ち家の割合 |
DIS | ボストンの5つの雇用センターまでの距離(加重あり) |
RAD | 高速道路へのアクセスのしやすさ指数 |
TAX | 1万ドル当たりの総資産税率 |
PTRATIO | 町別の児童教師比率 |
B | Bkの割合 |
LSTAT | 低所得者の割合 |
import pandas as pd # データ読み込み from sklearn.datasets import load_boston boston = load_boston() # dataframe化 df_boston = pd.DataFrame(boston.data, columns=boston.feature_names) df_boston.head()
目的変数
住宅価格の中央値
df_target = pd.DataFrame(boston.target, columns=['target'])
df_target.head()
サンプル2:load_iris - アヤメ(花)の品種データ
アヤメの各部位の特徴によって、品種を特定するデータセット。
機械学習では最も有名なサンプルデータかもしれません。
説明変数
データ件数:150
カラム数:4
sepal length (cm) | がく片の長さ(cm) |
sepal width (cm) | がく片の幅(cm) |
petal length (cm) | 花弁の長さ(cm) |
petal width (cm) | 花弁の幅(cm) |
import pandas as pd # データ読み込み from sklearn.datasets import load_iris iris = load_iris() # dataframe化 df_iris = pd.DataFrame(iris.data, columns=iris.feature_names) df_iris.head()
目的変数
アヤメ品種の番号
df_target = pd.DataFrame(iris.target, columns=['target'])
df_target.head()
サンプル3:load_diabetes - 糖尿病患者の属性データ
基礎データ(性年代など)、血液データなどで、疾患予測を行うデータセット。
説明変数
データ件数:442
カラム数:10
age | 年齢 |
sex | 性別 |
bmi | BMI 肥満指数 |
bp | 血圧の平均 |
s1 | tc : T細胞(白血球の一種) |
s2 | ldl : 低密度リポタンパク質 |
s3 | hdl : 高密度リポタンパク質 |
s4 | tch : 甲状腺刺激ホルモン |
s5 | ltg : ラモトリギン |
s6 | glu : 血糖値 |
import pandas as pd # データ読み込み from sklearn.datasets import load_diabetes diabetes = load_diabetes() # dataframe化 df_diabetes = pd.DataFrame(diabetes.data, columns=diabetes.feature_names) df_diabetes.head()
目的変数
病状の進行状況
df_target = pd.DataFrame(diabetes.target, columns=['target'])
df_target.head()
サンプル4:load_digits - 手書き文字(数字)認識
手書きの文字(0~9の1文字)が数値化されているデータセット。
1つの画像のデータが64(8×8)マスのデータとして表現されている。
説明変数
データ件数:1797 (デフォルト値 n_class=10 のとき)
カラム数:64
import pandas as pd # データ読み込み from sklearn.datasets import load_digits digits = load_digits(n_class=10) # default = 10 # dataframe化 df_digits = pd.DataFrame(digits.data) df_digits.head()
import matplotlib.pyplot as plt plt.imshow(digits.images[0], cmap='Greys', interpolation='NONE')
目的変数
データが表現する数字
df_target = pd.DataFrame(digits.target, columns=['target'])
df_target.head()
サンプル5:load_linnerud - 身体的特徴と身体的能力の関連性
身体的な特徴と能力(体重とジャンプ力の関係性など)をまとめたデータセット。
説明変数
データ件数:20
カラム数:3
※ 目的変数のカラム数:3
Chins | 懸垂 |
Situps | 腹筋 |
Jumps | 跳躍 |
※単位不明
import pandas as pd # データ読み込み from sklearn.datasets import load_linnerud linnerud = load_linnerud() # dataframe化 df_linnerud = pd.DataFrame(linnerud.data, columns=linnerud.feature_names) df_linnerud.head()
目的変数
Weight | 体重 |
Waist | ウエスト |
Pulse | 脈拍 |
df_linnerud_target = pd.DataFrame(linnerud.target, columns=linnerud.target_names) df_linnerud_target.head()
サンプル6:load_wine - ワインの品質を示すデータセット。
ワインの成分などの特徴と品質を関連させたデータ。
説明変数
データ件数:178
カラム数:13
alcohol | アルコール度数 |
malic_acid | リンゴ酸 |
ash | 灰(あく) |
alcalinity_of_ash | 灰のアルカリ度 |
magnesium | マグネシウム量 |
total_phenols | 総フェノール |
flavanoids | フラボノイド |
nonflavanoid_phenolsv | 非フラボノイド・フェノール |
proanthocyanins | プロアントシアニン |
color_intensity | 色の明度 |
hue | 色相 |
od280/od315_of_diluted_wines | 希釈ワイン |
proline | プロリン |
import pandas as pd # データ読み込み from sklearn.datasets import load_wine wine = load_wine() # dataframe化 df_wine = pd.DataFrame(wine.data, columns=wine.feature_names) df_wine.head()
目的変数
ワインの品質
df_wine_target = pd.DataFrame(wine.target, columns=['target']) df_wine_target.head()
サンプル7:load_wine - ワインの品質を示すデータセット。
ワインの成分などの特徴と品質を関連させたデータ。
説明変数
データ件数:569
カラム数:30
mean radius | 平均半径 |
mean texture | 平均組織 |
mean perimeter | 平均周長 |
mean area | 平均面積 |
mean smoothness | 平均平滑度 |
mean compactness | 平均コンパクト性 |
mean concavity | 平均凹面 |
mean concave points | 平均凹点 |
mean symmetry | 平均対称性 |
mean fractal dimension | 平均フラクタル次元 |
radius error | 半径誤差 |
texture error | テクスチャエラー |
perimeter error | 周辺誤差 |
area error | 面積誤差 |
smoothness error | 平滑度誤差 |
compactness error | コンパクト性誤差 |
concavity error | 凹面誤差 |
concave points error | 凹点誤差 |
symmetry error | 対称誤差 |
fractal dimension error | フラクタル次元誤差 |
worst radius | 半径の最悪数値 |
worst texture | 組織の最悪数値 |
worst perimeter | 外周の最悪数値 |
worst area | 表面積の最悪数値 |
worst smoothness | 滑らかさの最悪数値 |
worst compactness | コンパクトさの最悪数値 |
worst concavity | 最悪な陥没度合 |
worst concave points | 最悪な凹点 |
worst symmetry | 対称性の最悪数値 |
worst fractal dimension | フラクタル次元の最悪数値 |
import pandas as pd # データ読み込み from sklearn.datasets import load_breast_cancer cancer = load_breast_cancer() # dataframe化 df_cancer = pd.DataFrame(cancer.data, columns=cancer.feature_names) df_cancer.head()
目的変数
df_cancer_target = pd.DataFrame(cancer.target, columns=['target']) df_cancer_target.head()
以上が、scikit-learn で簡単に import 可能なデータサンプル7つ。