LoginSignup
2
4

More than 1 year has passed since last update.

scikit-learn付属のデータセットをいつでも使えるように準備しておく

Last updated at Posted at 2021-05-16

scikit-learnには、外部のWebサイトからファイルをダウンロードする必要のない小さな標準データセットがいくつか付属しています。
この付属のデータセットをいつでも使えるように準備しておきます。

情報元

公式
https://scikit-learn.org/stable/datasets/toy_dataset.html

環境

python: 3.7.3
sklearn: 0.20.3
numpy: 1.16.2
scipy: 1.2.1
Cython: 0.29.6
pandas: 0.24.2

データセットの種類
データセット 取得方法 用途
ボストン市の住宅価格データ load_boston(*[, return_X_y]) 回帰
アヤメの品種データ load_iris(*[, return_X_y, as_frame]) 分類
糖尿病患者の診療データ load_diabetes(*[, return_X_y, as_frame]) 回帰
数字の手書き文字データ load_digits(*[, n_class, return_X_y, as_frame]) 分類
生理学的特徴と運動能力の関係についてのデータ load_linnerud(*[, return_X_y, as_frame])
ワインの品質データ load_wine(*[, return_X_y, as_frame]) 分類
乳がんデータ load_breast_cancer(*[, return_X_y, as_frame]) 分類

ボストン市の住宅価格データ(Boston house prices dataset)

UCIML住宅データセットのコピーです。
https://archive.ics.uci.edu/ml/machine-learning-databases/housing/
カーネギーメロン大学で管理されているStatLibライブラリから取得されました。
ボストンの住宅価格データは、回帰問題に対処する多くの機械学習論文で使用されています。

基本情報
項目 情報
行数 506
列数 13数値/カテゴリ予測 通常は中央値(属性14)がターゲット
属性情報
項目 情報
CRIM 町ごとの犯罪率
ZN 広い家の比率(25,000平方フィートを超える住宅地の割合)
INDUS 町ごとの非小売業の比率
CHAS チャールズリバーのダミー変数(=川に隣接している場合は1、それ以外の場合は0)
NOX 一酸化窒素濃度(単位0.1ppm)
RM 住居あたりの平均部屋数
AGE 古い家の割合(1940年より前に建てられた家の比率)
DIS ボストンの5つの雇用センターまでの近さで重み付けした距離
RAD 主要高速道路へのアクセス性の指標
TAX $10,000あたりの固定資産税率
PTRATIO 町ごとの生徒と教師の比率
B 1000(Bk-0.63)の2乗値 Bkは町ごとの黒人の割合
LSTAT 低所得者の比率
MEDV 住宅価格の中央値(単位1000ドル)
取得方法
from sklearn import datasets
import pandas as pd
boston = datasets.load_boston()
boston_df = pd.DataFrame(boston.data, columns=boston.feature_names)
boston_df['MEDV'] = boston.target
print('==========')
print(boston_df.head())
print('==========')
print(boston_df.tail())
print('==========')
結果
==========
      CRIM    ZN  INDUS  CHAS    NOX     RM   AGE     DIS  RAD    TAX  \
0  0.00632  18.0   2.31   0.0  0.538  6.575  65.2  4.0900  1.0  296.0   
1  0.02731   0.0   7.07   0.0  0.469  6.421  78.9  4.9671  2.0  242.0   
2  0.02729   0.0   7.07   0.0  0.469  7.185  61.1  4.9671  2.0  242.0   
3  0.03237   0.0   2.18   0.0  0.458  6.998  45.8  6.0622  3.0  222.0   
4  0.06905   0.0   2.18   0.0  0.458  7.147  54.2  6.0622  3.0  222.0   

   PTRATIO       B  LSTAT  MEDV  
0     15.3  396.90   4.98  24.0  
1     17.8  396.90   9.14  21.6  
2     17.8  392.83   4.03  34.7  
3     18.7  394.63   2.94  33.4  
4     18.7  396.90   5.33  36.2  
==========
        CRIM   ZN  INDUS  CHAS    NOX     RM   AGE     DIS  RAD    TAX  \
501  0.06263  0.0  11.93   0.0  0.573  6.593  69.1  2.4786  1.0  273.0   
502  0.04527  0.0  11.93   0.0  0.573  6.120  76.7  2.2875  1.0  273.0   
503  0.06076  0.0  11.93   0.0  0.573  6.976  91.0  2.1675  1.0  273.0   
504  0.10959  0.0  11.93   0.0  0.573  6.794  89.3  2.3889  1.0  273.0   
505  0.04741  0.0  11.93   0.0  0.573  6.030  80.8  2.5050  1.0  273.0   

     PTRATIO       B  LSTAT  MEDV  
501     21.0  391.99   9.67  22.4  
502     21.0  396.90   9.08  20.6  
503     21.0  396.90   5.64  23.9  
504     21.0  393.45   6.48  22.0  
505     21.0  396.90   7.88  11.9  
==========

アヤメの品種データ(Iris plants dataset)

データセットはフィッシャーの論文から取られています。
フィッシャーの論文はこの分野の古典であり、今日まで頻繁に参照されています。
データセットには、それぞれ50インスタンスの3つのクラスが含まれ、各クラスはアヤメの植物のタイプを参照します。
1つのクラスは他の2つから線形分離可能です。 後者は互いに線形分離可能ではありません。

基本情報
項目 情報
行数 150(3つのクラスのそれぞれで50)
列数 4つの数値、予測属性とクラス
属性情報
列番号 属性 情報
1 sepal length がくの長さ(cm)
2 sepal width がくの幅(cm)
3 petal length 花びらの長さ(cm)
4 petal width 花びらの幅(cm)
class: Iris-Setosa, Iris-Versicolour, Iris-Virginica
取得方法
from sklearn.datasets import load_iris 
iris = load_iris()
X, y = iris.data, iris.target
print('X:')
print(X[:5, :])
print('y:')
print(y[:5])
結果
X:
[[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]]
y:
[0 0 0 0 0]

糖尿病患者の診療データ(Diabetes dataset)

n = 442人の糖尿病患者のそれぞれについて、10個のベースライン変数、年齢、性別、肥満度指数、平均血圧、および6個の血清測定値、およびベースラインから1年後の疾患進行の定量的測定値である興味ある反応が得られています。

基本情報
項目 情報
行数 442
列数 最初の10列は数値予測値。列11はベースラインから1年後の疾患進行の定量的測定値
属性情報
列番号 項目 情報
1 age 年齢
2 sex 性別
3 bmi BMI
4 bp 平均血圧
5 s1 T細胞
6 s2 LDL
7 s3 HDL
8 s4 TCH(甲状腺刺激ホルモン)
9 s5 LTG(ラモトリギン)
10 s6 GLU(血糖値レベル)
11 target ベースラインから1年後の糖尿病の進行度
取得方法
from sklearn.datasets import load_diabetes
diabetes = load_diabetes()
X, y = diabetes.data, diabetes.target
print('X:')
print(X[:5, :])
print('y:')
print(y[:5])
結果
X:
[[ 0.03807591  0.05068012  0.06169621  0.02187235 -0.0442235  -0.03482076
  -0.04340085 -0.00259226  0.01990842 -0.01764613]
 [-0.00188202 -0.04464164 -0.05147406 -0.02632783 -0.00844872 -0.01916334
   0.07441156 -0.03949338 -0.06832974 -0.09220405]
 [ 0.08529891  0.05068012  0.04445121 -0.00567061 -0.04559945 -0.03419447
  -0.03235593 -0.00259226  0.00286377 -0.02593034]
 [-0.08906294 -0.04464164 -0.01159501 -0.03665645  0.01219057  0.02499059
  -0.03603757  0.03430886  0.02269202 -0.00936191]
 [ 0.00538306 -0.04464164 -0.03638469  0.02187235  0.00393485  0.01559614
   0.00814208 -0.00259226 -0.03199144 -0.04664087]]
y:
[151.  75. 141. 206. 135.]

数字の手書き文字データ(Optical recognition of handwritten digits dataset)

UCIML手書き数字データセットのテストセットのコピーです。
https://archive.ics.uci.edu/ml/datasets/Optical+Recognition+of+Handwritten+Digits
データセットには、手書きの数字の画像が含まれています。各クラスが数字を参照する10のクラス。
NISTによって利用可能になった前処理プログラムを使用して、事前印刷されたフォームから手書き数字の正規化されたビットマップに抽出されている。
32x32ビットマップは4x4の重複しないブロックに分割され、各ブロックでオンピクセル数がカウントされます。
これにより、8x8の入力行列が生成されます。ここで、各要素は0..16の範囲の整数です。 これにより、次元が減少し、小さな歪みに不変性が生じます。

基本情報
項目 情報
行数 1797
列数 64(0..16の範囲の整数ピクセルの8x8画像)
取得方法
from sklearn.datasets import load_digits
digits = load_digits()
X, y = digits.data, digits.target
print('X:')
print(X[:5, :])
print('y:')
print(y[:5])
結果
X:
[[ 0.  0.  5. 13.  9.  1.  0.  0.  0.  0. 13. 15. 10. 15.  5.  0.  0.  3.
  15.  2.  0. 11.  8.  0.  0.  4. 12.  0.  0.  8.  8.  0.  0.  5.  8.  0.
   0.  9.  8.  0.  0.  4. 11.  0.  1. 12.  7.  0.  0.  2. 14.  5. 10. 12.
   0.  0.  0.  0.  6. 13. 10.  0.  0.  0.]
 [ 0.  0.  0. 12. 13.  5.  0.  0.  0.  0.  0. 11. 16.  9.  0.  0.  0.  0.
   3. 15. 16.  6.  0.  0.  0.  7. 15. 16. 16.  2.  0.  0.  0.  0.  1. 16.
  16.  3.  0.  0.  0.  0.  1. 16. 16.  6.  0.  0.  0.  0.  1. 16. 16.  6.
   0.  0.  0.  0.  0. 11. 16. 10.  0.  0.]
 [ 0.  0.  0.  4. 15. 12.  0.  0.  0.  0.  3. 16. 15. 14.  0.  0.  0.  0.
   8. 13.  8. 16.  0.  0.  0.  0.  1.  6. 15. 11.  0.  0.  0.  1.  8. 13.
  15.  1.  0.  0.  0.  9. 16. 16.  5.  0.  0.  0.  0.  3. 13. 16. 16. 11.
   5.  0.  0.  0.  0.  3. 11. 16.  9.  0.]
 [ 0.  0.  7. 15. 13.  1.  0.  0.  0.  8. 13.  6. 15.  4.  0.  0.  0.  2.
   1. 13. 13.  0.  0.  0.  0.  0.  2. 15. 11.  1.  0.  0.  0.  0.  0.  1.
  12. 12.  1.  0.  0.  0.  0.  0.  1. 10.  8.  0.  0.  0.  8.  4.  5. 14.
   9.  0.  0.  0.  7. 13. 13.  9.  0.  0.]
 [ 0.  0.  0.  1. 11.  0.  0.  0.  0.  0.  0.  7.  8.  0.  0.  0.  0.  0.
   1. 13.  6.  2.  2.  0.  0.  0.  7. 15.  0.  9.  8.  0.  0.  5. 16. 10.
   0. 16.  6.  0.  0.  4. 15. 16. 13. 16.  1.  0.  0.  0.  0.  3. 15. 10.
   0.  0.  0.  0.  0.  2. 16.  4.  0.  0.]]
y:
[0 1 2 3 4]

生理学的特徴と運動能力の関係についてのデータ(Linnerrud dataset)

多出力回帰データセットです。
フィットネスクラブの20人の中年男性から収集された3つの運動(データ)変数と3つの生理学的(ターゲット)変数で構成されています。

基本情報
項目 情報
行数 20
列数 3
属性情報
列番号 項目 情報
X1 Chins 懸垂の回数
X2 Situps 腹筋の回数
X3 Jumps 跳躍の回数
y1 Weight 体重
y2 Waist ウエスト
y3 Pulse 脈拍
取得方法
from sklearn.datasets import load_linnerud
linnerud = load_linnerud()
X, y = linnerud.data, linnerud.target
print('X:')
print(X[:5, :])
print('y:')
print(y[:5])
結果
X:
[[  5. 162.  60.]
 [  2. 110.  60.]
 [ 12. 101. 101.]
 [ 12. 105.  37.]
 [ 13. 155.  58.]]
y:
[[191.  36.  50.]
 [189.  37.  52.]
 [193.  38.  58.]
 [162.  35.  62.]
 [189.  35.  46.]]

ワインの品質データ(Wine recognition dataset)

UCIMLワイン認識データセットのコピーです。
https://archive.ics.uci.edu/ml/machine-learning-databases/wine/wine.data
イタリアの同じ地域の3つのワイナリーのワインの化学分析の結果です。
3種類のワインに含まれるさまざまな成分について13の異なる測定が行われます。

基本情報
項目 情報
行数 178(3つのクラスのそれぞれで50)
列数 13の数値、予測属性とクラス
属性情報
列番号 項目 情報
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 希釈ワインのOD280/OD315
13 proline プロリン
14 target ワインの製造元(ワイナリー)
class class_0, class_1, class_2
取得方法
from sklearn.datasets import load_wine
wine = load_wine()
X, y = wine.data, wine.target
print('X:')
print(X[:5, :])
print('y:')
print(y[:5])
結果
X:
[[1.423e+01 1.710e+00 2.430e+00 1.560e+01 1.270e+02 2.800e+00 3.060e+00
  2.800e-01 2.290e+00 5.640e+00 1.040e+00 3.920e+00 1.065e+03]
 [1.320e+01 1.780e+00 2.140e+00 1.120e+01 1.000e+02 2.650e+00 2.760e+00
  2.600e-01 1.280e+00 4.380e+00 1.050e+00 3.400e+00 1.050e+03]
 [1.316e+01 2.360e+00 2.670e+00 1.860e+01 1.010e+02 2.800e+00 3.240e+00
  3.000e-01 2.810e+00 5.680e+00 1.030e+00 3.170e+00 1.185e+03]
 [1.437e+01 1.950e+00 2.500e+00 1.680e+01 1.130e+02 3.850e+00 3.490e+00
  2.400e-01 2.180e+00 7.800e+00 8.600e-01 3.450e+00 1.480e+03]
 [1.324e+01 2.590e+00 2.870e+00 2.100e+01 1.180e+02 2.800e+00 2.690e+00
  3.900e-01 1.820e+00 4.320e+00 1.040e+00 2.930e+00 7.350e+02]]
y:
[0 0 0 0 0]

乳がんデータ(Breast cancer wisconsin (diagnostic) dataset)

UCI ML乳がんウィスコンシン(診断)データセットのコピーです。
https://goo.gl/U2Uwz2

特徴は、胸のしこりの穿刺吸引生検(FNA)のデジタル画像から計算され、画像に存在する細胞核の特徴を説明しています。

基本情報
項目 情報
行数 569
列数 30の数値、予測属性とクラス
属性情報
列番号 項目 情報
1 radius (mean) 細胞核の半径の平均値
2 texture (mean) 細胞核のテクスチャの平均値(テクスチャ:グレースケールの画素値の標準偏差)
3 perimeter (mean) 細胞核の外周長の平均値
4 area (mean) 細胞核の面積の平均値
5 smoothness (mean) 細胞核のなめらかさの平均値
6 compactness (mean) 細胞核のコンパクトさの平均値
7 concavity (mean) 細胞核の輪郭の凹凸の程度の平均値
8 concave points (mean): 細胞核の輪郭の凹凸の個数の平均値
9 symmetry (mean) 細胞核の対称性の平均値
10 fractal dimension (mean) 細胞核のフラクタル次元の平均値
11 radius (standard error) 細胞核の半径の誤差
12 texture (standard error) 細胞核のテクスチャの誤差
13 perimeter (standard error) 細胞核の外周長の誤差
14 perimeter (standard error) 細胞核の面積の誤差
15 smoothness (standard error) 細胞核のなめらかさの誤差
16 compactness (standard error) 細胞核のコンパクトさの誤差
17 concavity (standard error) 細胞核の輪郭の凹凸の程度の誤差
18 concave points (standard error) 細胞核の輪郭の凹凸の個数の誤差
19 symmetry (standard error) 細胞核の対称性の誤差
20 fractal dimension (standard error) 細胞核のフラクタル次元の誤差
21 radius (worst) 細胞核の半径の最悪値
22 texture (worst) 細胞核のテクスチャの最悪値
23 perimeter (worst) 細胞核の外周長の最悪値
24 area (worst) 細胞核の面積の最悪値
25 smoothness (worst) 細胞核のなめらかさの最悪値
26 compactness (worst) 細胞核のコンパクトさの最悪値
27 concavity (worst) 細胞核の輪郭の凹凸の程度の最悪値
28 concave points (worst) 細胞核の輪郭の凹凸の個数の最悪値
29 symmetry (worst) 細胞核の対称性の最悪値
30 fractal dimension (worst) 細胞核のフラクタル次元の最悪値
31 target 悪性もしくは良性 (0:悪性、1:良性)
取得方法
from sklearn.datasets import load_breast_cancer
breast_cancer = load_breast_cancer()
X, y = breast_cancer.data,breast_cancer.target
print('X:')
print(X[:5, :])
print('y:')
print(y[:5])
結果
X:
[[1.799e+01 1.038e+01 1.228e+02 1.001e+03 1.184e-01 2.776e-01 3.001e-01
  1.471e-01 2.419e-01 7.871e-02 1.095e+00 9.053e-01 8.589e+00 1.534e+02
  6.399e-03 4.904e-02 5.373e-02 1.587e-02 3.003e-02 6.193e-03 2.538e+01
  1.733e+01 1.846e+02 2.019e+03 1.622e-01 6.656e-01 7.119e-01 2.654e-01
  4.601e-01 1.189e-01]
 [2.057e+01 1.777e+01 1.329e+02 1.326e+03 8.474e-02 7.864e-02 8.690e-02
  7.017e-02 1.812e-01 5.667e-02 5.435e-01 7.339e-01 3.398e+00 7.408e+01
  5.225e-03 1.308e-02 1.860e-02 1.340e-02 1.389e-02 3.532e-03 2.499e+01
  2.341e+01 1.588e+02 1.956e+03 1.238e-01 1.866e-01 2.416e-01 1.860e-01
  2.750e-01 8.902e-02]
 [1.969e+01 2.125e+01 1.300e+02 1.203e+03 1.096e-01 1.599e-01 1.974e-01
  1.279e-01 2.069e-01 5.999e-02 7.456e-01 7.869e-01 4.585e+00 9.403e+01
  6.150e-03 4.006e-02 3.832e-02 2.058e-02 2.250e-02 4.571e-03 2.357e+01
  2.553e+01 1.525e+02 1.709e+03 1.444e-01 4.245e-01 4.504e-01 2.430e-01
  3.613e-01 8.758e-02]
 [1.142e+01 2.038e+01 7.758e+01 3.861e+02 1.425e-01 2.839e-01 2.414e-01
  1.052e-01 2.597e-01 9.744e-02 4.956e-01 1.156e+00 3.445e+00 2.723e+01
  9.110e-03 7.458e-02 5.661e-02 1.867e-02 5.963e-02 9.208e-03 1.491e+01
  2.650e+01 9.887e+01 5.677e+02 2.098e-01 8.663e-01 6.869e-01 2.575e-01
  6.638e-01 1.730e-01]
 [2.029e+01 1.434e+01 1.351e+02 1.297e+03 1.003e-01 1.328e-01 1.980e-01
  1.043e-01 1.809e-01 5.883e-02 7.572e-01 7.813e-01 5.438e+00 9.444e+01
  1.149e-02 2.461e-02 5.688e-02 1.885e-02 1.756e-02 5.115e-03 2.254e+01
  1.667e+01 1.522e+02 1.575e+03 1.374e-01 2.050e-01 4.000e-01 1.625e-01
  2.364e-01 7.678e-02]]
y:
[0 0 0 0 0]
2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4