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つの生理学的(ターゲット)変数で構成されています。
基本情報
属性情報
列番号 |
項目 |
情報 |
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]