Pythonによるデータ分析・機械学習ブログ

Pythonによるデータの前処理・グラフ化、機械学習、統計解析、画像処理、Webスクレイピング、自然言語処理の基礎について紹介していきます。

MENU

【第1回】scikit-learnで用意されているデータセット

 

はじめに

scikit-learnはPythonオープンソース機械学習ライブラリです。サポートベクターマシン、ランダムフォレスト、k近傍法、などを含む様々な分類、回帰、クラスタリングアルゴリズムを備えており、Python数値計算ライブラリのNumPyとSciPyとやり取りするよう設計されています。

本記事では、scikit-learnで用意されているデータセットについて紹介します。

Aidemy Premium

 

データセットの種類

まずは必要なライブラリをインストールします。

用意されているデータセットは以下です。

 

データセット 内容 用途
sklearn.datasets.load_boston ボストンの住宅価格 回帰
sklearn.datasets.load_iris 3種類のアヤメのデータ 分類
sklearn.datasets.load_diabetes 糖尿病の進行状況 回帰
sklearn.datasets.load_digits 数字0~9の手書き数字 分類
sklearn.datasets.load_linnerud 生理学的データと運動能力データの関係 回帰
sklearn.datasets.load_wine 3種類のワインのデータ 分類
sklearn.datasets.load_breast_cancer 乳がんの診断データ 分類

読み込んで、DataFrame型で表示するには以下の方法を用います。

 

 

1. sklearn.datasets.load_boston

sklearn.datasets.load_boston — scikit-learn 1.1.2 documentation

ボストンの住宅価格のデータが格納されています。説明変数は以下の表で、目的変数(target)は住宅価格になります。

説明変数の項目 意味
CRIM 町ごとの一人当たりの犯罪率
ZN 25,000 平方フィートを超える区画に分類される住宅地の割合
INDUS 町ごとの非小売業の割合
CHAS Charles Riverのダミー変数 (= 区画が川に接する場合は1、それ以外の場合は0)
NOX 一酸化窒素濃度 (1000 万分の 1)
RM 1住居あたりの平均部屋数
AGE 1940年以前に建てられた持ち家の割合
DIS ボストンの5つの雇用センターまでの加重距離
RAD 主要高速道路へのアクセス性指標
TAX $10,000あたりの固定資産税の税率
PTRATIO 町ごとの生徒と教師の比率
B 1000(Bk - 0.63)^2、Bkは町ごとの黒人の割合
LSTAT 低所得者人口の割合

 

データの中身(上5行)は以下です。

 

2. sklearn.datasets.load_iris

sklearn.datasets.load_iris — scikit-learn 1.1.2 documentation

'setosa', 'versicolor', 'virginica'の3種類のアヤメのがくの長さ、幅、花びらの長さ、幅の説明変数が格納されています。目的変数であるtargetの0はsetosa、1はversicolor、2はvirginicaです。

説明変数の項目 意味
sepal length がくの長さ[cm]
sepal width がくの幅[cm]
petal length 花弁の長さ[cm]
petal width 花弁の幅[cm]
target 0:Setosa、1:Versicolour、2:Virginica

データの中身(上5行)は以下です。

 

3. sklearn.datasets.load_diabetes

sklearn.datasets.load_diabetes — scikit-learn 1.1.2 documentation

糖尿病患者の診断データが格納されています。

説明変数の項目 意味
age 年齢
sex 性別
bmi BMI
bp 平均血圧
s1 コレステロール
s2 低密度リポタンパク質
s3 高密度リポタンパク質
s4 コレステロール/HDL
s5 トリグリセリドの血清レベル
s6 血糖値

データの中身(上5行)は以下です。

 

4. sklearn.datasets.load_digits

sklearn.datasets.load_digits — scikit-learn 1.1.2 documentation

数字0~9の手書き文字のデータが格納されています。

データの中身(上5行)は以下です。

 

5. sklearn.datasets.load_linnerud

sklearn.datasets.load_linnerud — scikit-learn 1.1.2 documentation

生理学的データと運動学的データが格納されています。

データの中身(上5行)は以下です。

 

6. sklearn.datasets.load_wine

sklearn.datasets.load_wine — scikit-learn 1.1.2 documentation

3種類のワインに関するデータが格納されています。

説明変数の項目 意味
Alcohol アルコール
Malic acid リンゴ酸
Ash 灰分
Alcalinity of ash 灰分のアルカリ度
Magnesium マグネシウム
Total phenols フェノール
Flavanoids <ブラボノイド/td>
Nonflavanoid phenols 非フラボノイドフェノール
Proanthocyanins プロアントシアニン
Color intensity 色の濃度
Hue Hue値
OD280/OD315 of diluted wines 希釈ワインのOD280/OD315
Proline プロリン

データの中身(上5行)は以下です。

 

7. sklearn.datasets.load_breast_cancer

sklearn.datasets.load_breast_cancer — scikit-learn 1.1.2 documentation

乳がんに関するデータが格納されています。

説明変数の項目 意味
radius 半径(中心から周囲の点までの平均距離
texture テクスチャ(グレースケール値の標準偏差
perimeter 周囲
area 面積
smoothness 滑らかさ (半径の長さの局所的な変化)
compactness コンパクトさ (周囲^2 / 面積 - 1.0)
concavity 凹み(輪郭の凹みの程度)
concave points 凹数(輪郭の凹みの数)
symmetry 対称
fractal dimension フラクタル次元

データの中身(上5行)は以下です。

 

オススメ書籍

Pythonによるあたらしいデータ分析の教科書

Python3エンジニア認定データ分析試験の教科書にもなっている書籍で、データ分析に必要なPythonの基礎手法を身に付けることができます。具体的には、numpyとpandasを用いたデータの前処理、matplotlibを用いたデータのグラフ化、scikit-learnを用いた機械学習の基礎記述方法を身に付けることができます。これ一つで基礎はバッチリで、実務でも十分活用できると思います。個人的には見やすい書籍でした。

データサイエンス教本 Pythonで学ぶ統計分析・パターン認識・深層学習・信号処理・時系列データ分析

こちらの書籍は初心者から少し記述できるようになった人、かつ数学的な理論と一緒にPythonの記述方法を理解したい方にオススメです。統計分析、パターン認識、深層学習、信号処理、時系列データといった幅広く実務で使用する手法を学びたい方にもオススメです。

東京大学のデータサイエンティスト育成講座 ~Pythonで手を動かして学ぶデ―タ分析~

こちらの基礎を抑えながら実務で必要なPython記述法を学べる書籍です。基礎を一つ一つ抑えるというよりも実務で活用できるように必要な知識を身に付けられると感じました。これ一冊あれば十分かなと思いました。

 

スキル修得&転職

 近年、DXの進展に伴うデジタル人材の需要の高まりに追いついていない状況が続いていると経済産業省がホームページで記載している通り、DX人材、IT人材が不足しているのが現状です。さらにコンピュータの性能向上やAI技術の発展により、よりDX人材、IT人材の需要が高まってきます。さらには、今後の長期間安定して職がある業種とも考えられます。

以下の求人では、IT業界の転職や、IT未経験だけどIT人材を志望する就活を支援してくれます。無料で会員登録もできるので、まずは登録だけでもして様子を見てみてはいかがでしょうか?

▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼

▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲

 

>

おわりに

scikit-learnで用意されているデータセットについて紹介しました。この学習用データセットを用いて次回以降にscikit-learnを用いて機械学習をしていきます。