🐱

【初心者】ネコでも分かる「scikit-learnのサンプルデータ」まとめ【Python】

22 min read

機械学習を始めたいなら...!

scikit-learn(サイキット・ラーン)は、Python の機械学習ライブラリです。機械学習をするためのアルゴリズムがたくさん用意されていて、とても便利に、簡単に使うことができます。

そんな scikit-learn ですが、サンプルのデータセットが一緒に提供されているというのも魅力の 1 つです。「このアルゴリズムちょっと使ってみたいな」と思ったら、同梱されているサンプルデータを使ってすぐにそのアルゴリズムを試すことができます。


サンプルデータの一覧(あとで詳しく解説します)

今回は、scikit-learn に含まれているサンプルデータにはどんなのがあるのか、またサンプルデータの使い方について、図解で分かりやすくまとめました。

🚩 この記事のゴール


  • どんなサンプルデータがあるのか分かる
  • サンプルデータの違いが分かる
  • サンプルデータを使って どんな機械学習ができるか分かる

「自分なら どのサンプルを使って機械学習をしてみたいか 💭」を考えながら読んでみると、理解が進むと思います。

scikit-learn を使いこなす事は、機械学習エンジニア、AI エンジニアになるための第一歩です。サンプルデータの使い方をマスターして、基礎がしっかり固まったエンジニアを目指しましょう!


Created by NekoAllergy

サンプルデータの種類

14 のサンプルデータが用意されています

2021 年 6 月現在、scikit-learn のバージョンは v0.24.2 です。現時点では、合計で 14のデータセットがあり、大きく 2 種類(7+7)に分かれています。

POINT


  1. Toy Datasets(トイ データセット)
    scikit-learn に同梱されていて、すぐに使えるサイズの小さいデータ
    現時点で7 つのデータセットがあります。

  2. Real World Datasets(実世界データセット) 
    ダウンロードすることで使える、サイズの大きいデータ
    現時点で7 つのデータセットがあります。
Toy Datasets の一覧
  1. ボストン市の地区別住宅価格データセット
    家賃を予測しよう!
  2. アヤメの品種データセット
    お花の種類を分類しよう!
  3. 糖尿病患者の診療データセット
    糖尿病になるかを未来予測しよう!
  4. 数字の手書き文字データセット
    画像に何の数字が書いてあるか分類しよう!
  5. 生理学的特徴と運動能力の関係についてのデータセット
    体重から懸垂回数を推測しよう!
  6. ワイン認識データセット
    ワインの成分から品種を分類しよう!
  7. 乳ガンのデータセット
    ガンの特徴から悪性か良性かを分類しよう!


データセット名 データ数 特徴の数 回帰/分類
01 boston 506 13 回帰
02 iris 150 4 分類(3)
03 diabetes 442 10 回帰
04 digits 1797 64 分類(10)
05 linnerud 20 3 回帰
06 wine 178 13 分類(3)
07 breast_cancer 569 30 分類(2)
Real World Datasets の一覧

  1. 40 人の各 10 種類の顔画像データセット
    顔写真からどの人なのかを当てよう!
  2. 20 の話題に関する 18000 のニュース記事データセット
    何の話題について書かれているか分類しよう!
  3. 5749 人分の有名人の顔写真データセット
    顔写真からどの人なのかを当てよう!
  4. 森林の木の種類データセット
    土地の情報を元に、生えてる木の種類を当てよう!
  5. カテゴリ別のニュースデータセット
    このニュースは何のトピックについて書かれているか分類しよう!
  6. ネットワークの侵入検知データセット
    ネットワーク通信が攻撃的かどうかを当てよう!
  7. カリフォルニアの住宅価格データセット
    家賃を予測しよう!


データセット名 データ数 特徴の数 回帰/分類
01 olivetti_faces 400 4096 分類(40)
02 20newsgroups 18846 1 分類(20)
03 lfw_people 13323 5828 分類(57499)
04 covtype 581012 54 分類(7)
05 rcv1 804414 47236 分類(103)
06 kddcup99 4898431 41 分類(2)
07 california_housing 20640 8 回帰


何が違うの?

データの容量が大きいか小さいかの違いだけです。容量が大きい方(Real World Datasets)は、まずダウンロードしてこなくてはなりません。容量が小さい方(Toy Datasets)は、ダウンロードの必要はありません。scikit-learn に実装されているアルゴリズムの動作をすぐに試すのに役立ちます。しかし、実際の機械学習タスクを表すには小さすぎることがあります。

⭐️ はじめての方は、まずは Toy Datasets の中のどれか 1 つから使ってみると良いでしょう。

「ここまでのまとめ」


  • scikit-learn にはサンプルデータセットが含まれていて便利
  • Toy Datasets(お手軽な 7 つ) と Real World Datasets(実用的な 7 つ) に分かれている
  • 合計 14 のサンプルデータセットが自由に使える




少し休憩...

● Toy Datasets(トイ データセット)

Toy Datasets は、scikit-learn に同梱されていて、すぐに使えるサイズの小さいデータです。
現時点で 7 つのデータセットを使うことができます。

あなたが気になるデータセットから見てみましょう ↓
(下にページ内リンクを貼ってあります)

Toy Datasets の一覧
  1. ボストン市の地区別住宅価格データセット 📚 詳しくみる
    家賃を予測しよう!

  2. アヤメの品種データセット 📚 詳しくみる
    お花の種類を分類しよう!

  3. 糖尿病患者の診療データセット 📚 詳しくみる
    糖尿病になるかを未来予測しよう!

  4. 数字の手書き文字データセット 📚 詳しくみる
    画像に何の数字が書いてあるか分類しよう!

  5. 生理学的特徴と運動能力の関係についてのデータセット 📚 詳しくみる
    体重から懸垂回数を推測しよう!

  6. ワイン認識データセット 📚 詳しくみる
    ワインの成分から品種を分類しよう!

  7. 乳ガンのデータセット 📚 詳しくみる
    ガンの特徴から悪性か良性かを分類しよう!



「自分なら どのサンプルを使って機械学習をしてみたいか 💭」を考えながら読んでみると、理解が進むと思います。

1. ボストンの住宅価格データセット

(Boston house prices datasets)

このデータセットは、アメリカのボストン市における地域別の住宅の価格をデータセットにしたものです。機械学習を試す時にはよく使われるデータセットです。

📚 何ができるの?


「犯罪発生数」とか「高速道路へのアクセスしやすさ」とか「教師の多さ」から、その地域の家賃を当ててみよう!

✅ POINT
データ数
--訓練用データ
--テスト用データ
506
--404 個(80%)に分割するのが普通
--102 個(20%)に分割するのが普通
どんな機械学習ができるか 回帰問題
💭 データのイメージ
  • 横 1 行分が、1 つのデータです。
  • 縦列の 13 個の特徴を学習に使います。
  • 一番右の列の「target」の値が家賃です。これを予測します。
📦【学習に使う 13 個の特徴】

このデータセットには、13 個の特徴が用意されています。これらの特徴を学習し、そこから家賃を予測します。
古い家の割合や高速道路へのアクセスのしやすさなどのパラメータは、結果に大きく関係しそうですね。

特徴の名前 説明
1 CRIM 人口 1 人当たりの犯罪発生数
2 ZN 25,000 平方フィート以上の住居区画の占める割合=「広い家の割合」
3 INDUS 小売業以外の商業が占める面積の割合
4 CHAS チャールズ川によるダミー変数 (1: 川の周辺, 0: それ以外)
5 NOX 一酸化窒素の濃度
6 RM 住居の平均部屋数
7 AGE 1940 年より前に建てられた物件の割合 =「古い家の割合」
8 DIS 5 つのボストン市の雇用施設からの距離 (重み付け済) =「主要施設への距離」
9 RAD 高速道路へのアクセスのしやすさ
10 TAX $10,000 ドルあたりの固定資産税率
11 PTRATIO 町毎の生徒と教師の比率
12 B 町毎の黒人 (Bk) の比率
13 LSTAT 低所得者人口の割合
🎁【予測する対象】

13 個の特徴から、その地域の「家賃」を予測します。

予測する対象 説明
MEDV 「住宅価格」の中央値。この数値が目的変数として使われる

2. アヤメの品種データセット

(Iris plants datasets)

アヤメとはお花の名前です。このアヤメには、setosa, versicolor, virginica という 3 種類の品種があり、これらをデータセットにしたものが「アヤメの品種データセット」です。

📚 何ができるの?


「花びらの長さ」「がく片の幅」などの情報から、どの品種のアヤメなのかを当てよう!

✅ POINT
全データ数 150
データ内の setosa の数 50
データ内の versicolor の数 50
データ内の virginica の数 50
特徴の数(カラム数) 4(がく片の長さ,がく片の幅,花びらの長さ,花びらの幅)
setosa データ内では、「0」と表されています
versicolor データ内では、「1」と表されています
virginica データ内では、「2」と表されています
どんな機械学習ができるか 分類問題
💭 データのイメージ
  • 横 1 行分が、1 つのデータです。
  • 4 個の特徴を学習に使います。
  • 一番右の列の「target」の値を予測します。
📦【学習に使う 4 個の特徴】

このデータセットには、4 個の特徴が用意されています。
これらの特徴を学習し、そこからどの種類のアヤメなのかを予測します。

特徴の名前 説明
1 sepal length (cm) がく片の長さ
2 sepal width (cm) がく片の幅
3 petal length (cm) 花びらの長さ
4 petal width (cm) 花びらの幅
🎁【予測する対象】

4 個の特徴から、「どの種類のアヤメなのか」を予測します。

予測する対象 説明
品種 setosa, versicolor, virginica のどれに当てはまるか?

3. 糖尿病患者の診療データセット

(Diabetes datasets)

「糖尿病患者の診療データセット」とは、糖尿病患者 442 人の「検査数値」と 1 年後の「進行状況」をデータセットにしたものです。

📚 何ができるの?


糖尿病患者の「検査数値」から、1 年後の「進行状況」を未来予測しよう!

✅ POINT
全データ数 442
特徴の数(カラム数) 10
どんな機械学習ができるか 回帰問題
💭 データのイメージ
  • 横 1 行分が、1 つのデータです。
  • 10 個の特徴を学習に使います。
  • 一番右の列の「target」の値を予測します。
📦【学習に使う 10 個の特徴】

このデータセットには、10 個の特徴が用意されています。
これらの特徴を学習し、そこから 1 年後の「進行状況」を未来予測します。

特徴の名前 説明
1 age 年齢
2 sex 性別
3 bmi ボディマス指数
4 bp 平均血圧
5 s1 tc、総血清コレステロール
6 s2 ldl、低密度リポタンパク質
7 s3 hdl、高密度リポタンパク質
8 s4 tch、総コレステロール/ HDL
9 s5 ltg、血清トリグリセリドレベルの対数
10 s6 glu、血糖値
🎁【予測する対象】

10 個の特徴から、その人の 1 年後の「進行状況」を未来予測します。

※進行状況は「151」「75」「141」のように、何を表しているのか分かりません。原文でも”a measure of disease progression one year after baseline”(ベースラインから 1 年後の疾患進行の尺度)としか書かれていないので、指標の 1 つとして考えれば良いのでしょうか?どなたか教えてください。。

予測する対象 説明
糖尿病の進行状況 糖尿病が 1 年後にどれくらい進行しているのかを数値化したもの。
1 つの指標。

4. 数字の手書き文字データセット

(Digits datasets)

64 (8×8) 個の画素に、10 種類の手書き数字(0 ~ 9)を書いたデータセットです。

📚 何ができるの?


画像に書いてある数字は、0 1 2 3 4 5 6 7 8 9 のどれか当てよう!

✅ POINT

このデータセットは、先ほどの 3 つのデータとは少し違います。データとして与えられているのは「1 枚の画像」です。より詳しくいうと「8×8 の空間に並べられた 64 個の数字」です。画像はたくさんの数字から構成されていますが、この 1 画素 1 画像が情報(特徴)となってきます。

1 つの画素に 1 つの数値が入っています。その数値は 0〜16 の範囲の値です。0〜16 の数値が 64 個分あり、8×8 の空間に並んでいる状態です。これで 1 枚の画像が表現されています。

全データ数 1797
どんな機械学習ができるか 分類問題
💭 データのイメージ

1797 枚の画像と、その画像に何の数字が書いてあるか(正解データ)がセットになっています。


こんな感じの画像が 1797 枚あります。


こんな感じの 1797 個の正解ラベル(0 から 9)が、各画像に対応しています。

📦【学習に使う 64 個の特徴】

あまりこのような書き方はしないのですが、これまで紹介した 3 つのデータセットと同じ書き方をするなら、以下のような表になります。

特徴の名前 説明(0 から 16 の数値)
1 1 画素目 0
2 2 画素目 0
3 3 画素目 4
62 62 画素目 16
63 63 画素目 13
64 64 画素目 0
🎁【予測する対象】

画像を読み取って、その画像にどんな数字が書いてあるかを判定します。


こんな感じの画像です


予測する対象 説明
画像に書いてある数字 1 から 9 のどれか?




少し休憩...

5. 生理学的特徴と運動能力の関係についてのデータセット

(Linnerrud datasets)

20 人の成人男性がフィットネスクラブで測定した 3 つの生理学的特徴(体重、胴囲、脈拍)と、3つの運動能力(懸垂の回数、腹筋の回数、跳躍)の関係を示したデータセットです。

📚 何ができるの?


ある人の「体重」「胴囲」「脈拍」が分かったら、その人の「懸垂の回数」「腹筋の回数」「跳躍」が推測できるんじゃね?

✅ POINT
全データ数 20
どんな機械学習ができるか 多変数回帰 (multivariate regression)
💭 データのイメージ


学習データ(左 3 列)と予測するデータ(右 3 列)

📦【学習に使う 3 個の特徴】

このデータセットには、3 個の特徴が用意されています。
これらの特徴を学習し、そこからその人の「懸垂の回数」「腹筋の回数」「跳躍」を予測します。

特徴の名前 説明
1 Weight 体重
2 Waist ウエスト (胴囲)
3 Pulse 脈拍
🎁【予測する対象】

3 個の特徴から、その地域の「懸垂の回数」「腹筋の回数」「跳躍」を予測します。

特徴の名前 説明
1 Chins 懸垂の回数
2 Situps 腹筋の回数
3 Jumps 跳躍

6. ワイン認識データセット

(Wine recognition datasets)

11 種類のワインの成分とワインの専門家によるワインの品質評価を含んだデータセットです。

📚 何ができるの?


ワインの成分から、品種を当てよう!

✅ POINT

ワインの成分の情報 13 個から、そのワインの品種を当てます。ワインは 3 種類あり、class_0、class_1、class_2 という名前がついています。全 178 サンプルを使って 3 つのどの品種かを予測する AI を作ってみましょう。

全データ数 178 サンプル
class_0 59 サンプル(データ内ではラベル「 0 」)
class_1 71 サンプル(データ内ではラベル「 1 」)
class_2 48 サンプル(データ内ではラベル「 2 」)
どんな機械学習ができるか 分類問題
💭 データのイメージ

ワインの種類(0 か 1 か 2 か)を予測します。一番右の列にあります。

📦【学習に使う 13 個の特徴】

このデータセットには、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 プロリン
🎁【予測する対象】

13 個の特徴を学習し、どの種類のワインなのかを分類します。

予測する対象 説明 個数
class_0 1 つ目のワインの種類 59 サンプル データ内では「 0 」のラベルがついています
class_1 2 つ目のワインの種類 71 サンプル データ内では「 1 」のラベルがついています
class_2 3 つ目のワインの種類 48 サンプル データ内では「 2 」のラベルがついています

7. 乳ガンのデータセット

(Breast cancer wisconsin datasets)

569 人分の乳ガンの診断データセットです。各サンプルは 30 種類の腫瘍の特徴量と腫瘍が良性か悪性かの診断結果を含んでいます。

📚 何ができるの?


乳ガンの診断データから、悪性か良性かを判断しよう!

✅ POINT
全データ数 569 サンプル
どんな機械学習ができるか 分類問題(良性か悪性か)
💭 データのイメージ


平均(mean)


標準誤差(standard error)


最悪値(worst)

📦【学習に使う 30 個の特徴】

ガンに関する 10 の属性があります。それぞれの平均(mean)、標準偏差(error)、最悪値(worst)の 3 種類、合計 30 の特徴が用意されています。これらの特徴を学習し、そこから、「腫瘍が良性か悪性か」を予測します。

● 平均(mean)

特徴の名前 説明
1 radius 半径 平均
2 texture テクスチャ―のグレースケールの標準偏差 平均
3 perimeter 外周長 平均
4 area 面積 平均
5 smoothness 中心から外周までの部分偏差 平均
6 compactness コンパクト性(外周長 2÷ 面積-1.0) 平均
7 concavity コンターの凹部強度 平均
8 concave points コンターの凹点の数 平均
9 symmetry 対称性 平均
10 fractal dimension フラクタル次元 平均

● 標準偏差(error)

特徴の名前 説明
11 radius 半径 標準偏差
12 texture テクスチャ―のグレースケールの標準偏差 標準偏差
13 perimeter 外周長 標準偏差
14 area 面積 標準偏差
15 smoothness 中心から外周までの部分偏差 標準偏差
16 compactness コンパクト性(外周長 2÷ 面積-1.0) 標準偏差
17 concavity コンターの凹部強度 標準偏差
18 concave points コンターの凹点の数 標準偏差
19 symmetry 対称性 標準偏差
20 fractal dimension フラクタル次元 標準偏差

● 最悪値(worst)

特徴の名前 説明
21 radius 半径 最悪値
22 texture テクスチャ―のグレースケールの標準偏差 最悪値
23 perimeter 外周長 最悪値
24 area 面積 最悪値
25 smoothness 中心から外周までの部分偏差 最悪値
26 compactness コンパクト性(外周長 2÷ 面積-1.0) 最悪値
27 concavity コンターの凹部強度 最悪値
28 concave points コンターの凹点の数 最悪値
29 symmetry 対称性 最悪値
30 fractal dimension フラクタル次元 最悪値
🎁【予測する対象】

30 個の特徴から、その人が悪性か良性かを分類します。

予測する対象 説明
malignant 悪性 データ内では「 0 」で表されます
benign 良性 データ内では「 1 」で表されます


「ここまでのまとめ」


  1. ボストン市の地区別住宅価格データセット
    家賃を予測しよう!
  2. アヤメの品種データセット
    お花の種類を分類しよう!
  3. 糖尿病患者の診療データセット
    糖尿病になるかを未来予測しよう!
  4. 数字の手書き文字データセット
    画像に何の数字が書いてあるか分類しよう!
  5. 生理学的特徴と運動能力の関係についてのデータセット
    体重から懸垂回数を推測しよう!
  6. ワイン認識データセット
    ワインの成分から品種を分類しよう!
  7. 乳ガンのデータセット
    ガンの特徴から悪性か良性かを分類しよう!



● まとめ表

データセット名 データ数 特徴の数 回帰/分類
01 boston 506 13 回帰
02 iris 150 4 分類(3)
03 diabetes 442 10 回帰
04 digits 1797 64 分類(10)
05 linnerud 20 3 回帰
06 wine 178 13 分類(3)
07 breast_cancer 569 30 分類(2)




少し休憩...

● Real World Datasets(実世界データセット)

ダウンロードすることで使える、サイズの大きいデータです。
現時点で 7 つのデータセットを使うことができます。

Real World Datasets の一覧

  1. 40 人の各 10 種類の顔画像データセット
    顔写真からどの人なのかを当てよう!

  2. 20 の話題に関する 18000 のニュース記事データセット
    何の話題について書かれているか分類しよう!

  3. 5749 人分の有名人の顔写真データセット
    顔写真からどの人なのかを当てよう!

  4. 森林の木の種類データセット
    土地の情報を元に、生えてる木の種類を当てよう!

  5. カテゴリ別のニュースデータセット
    このニュースは何のトピックについて書かれているか分類しよう!

  6. ネットワークの侵入検知データセット
    ネットワーク通信が攻撃的かどうかを当てよう!

  7. カリフォルニアの住宅価格データセット
    家賃を予測しよう!



続きの内容は本にまとめてあります。
手に取って頂けるととても喜びます。

これ ↓

https://zenn.dev/nekoallergy/books/scikit-learn

書いてある内容 ↓

1. 40 人の各 10 種類の顔画像データセット

(The Olivetti faces dataset)

2. 20 の話題に関する 18000 のニュース記事データセット

(The 20 newsgroups text dataset)

3. 5749 人分の有名人の顔写真データセット

(The Labeled Faces in the Wild face recognition dataset)

4. 森林の木の種類データセット

(Forest covertypes)

5. カテゴリ別のニュースデータセット

(RCV1 dataset)

6. ネットワークの侵入検知データセット

(Kddcup 99 dataset)

7. カリフォルニアの住宅価格データセット

(California Housing dataset)

人工知能/AI/機械学習をもっと詳しく

ねこアレルギーのAI

ねこアレルギーの AI
YouTube で機械学習について発信しています。
お時間ある方は覗いていただけると喜びます。


Created by NekoAllergy

参考資料

https://scikit-learn.org/stable/datasets.html

Discussion

ログインするとコメントできます