【初心者】Pythonのよるデータ分析・機械学習のための練習用scikit-learnデータセットの紹介

スポンサーリンク
Python

データ分析や機械学習を勉強し始めると、理論だけでは面白くありません。独学ではとくに心がくじけそうになります。データセットを使ってデータ分析や機械学習を行うと、勉強の効果がコードの出力で表されます。そうすると、データ分析や機械学習が出来ている感じがして、勉強のモチベーションの維持になります。

また、実際のデータと似たようなデータセットがあり、同じように分析をすることで、実際のデータにも同じようなコードで分析できます。つまり、実際のデータのシミュレーションになります。
scikit-learnをインストールされると、自動的にデータセットが使用できます。Anacondaをインストールした場合は、scikit-learnもインストールされています。scikit learnのデータセットは、大きく分けると2つあります。

  • トイ・データセット(Toy dataset)
  • 実世界データセット(Real world dataset)

まったくの初心者が、データ分析や機械学習を勉強する場合は、トイ・データセット ⇒ 実世界データセット といった流れでデータセットを使って練習していきます。 また、seaborn(データの可視化を行うもの)にもデータセットがあります。これらは、オフライン(インターネットがつながっていない状態)でもデータを使えます。さらに、オンラインではGitHubやKaggleからデータセットをダウンロードできます。さまざまなデータセットがあるため、自分が分析したいデータに近いデータセットで、いろんな分析を練習できます。

自分が分析したいデータに近いデータセットかどうかを、手っ取り早く知りたいと思うので、scikit-learnで使えるデータセットのトイ・データについて紹介していきます。

Pythonの環境設定は以下の記事を参考にして下さい。

M1 mac でanacondaをインストールし、Pythonを動作確認
M1 mac miniを購入したので、anacondaのインストールし、Pythonの動作を確認しました。 以前はWindowsでのanacondaのインストール方法を提示しました。 macでのイ...
【2021年最新】WindowsでAnacondaをインストールする方法、初心者がPythonの環境を構築する
Pythonの環境構築におすすめなのが、「anaconda」です。anacondaのなかにある、Jupyter Labはデータ解析や機械学習に非常に相性がいいです。理由は、コードを実行すると結果を返してくれます。その結果をみて、新たなコード

Wine

from sklearn.datasets import load_wine  # scikit-learnからwineのデータセットをインポートする

wine=load_wine()                        # インポートしたデータセットを「wine」と指定する

データ分析しやすいように、データフレーム(行列)の形に変える

df_wine = pd.DataFrame(wine.data, columns=wine.feature_names)
df_wine['class']=wine.target
df_wine

出力:

目的変数:ワインの品種(classという変数)
3分類問題

Boston

from sklearn.datasets import load_boston  # scikit-learnからbostonのデータセットをインポートする

boston=load_boston()                      # インポートしたデータセットを「boston」と指定する

データ分析しやすいように、データフレーム(行列)の形に変える

df_boston = pd.DataFrame(boston.data, columns=boston.feature_names)
df_boston['PRICE']=boston.target
df_boston

出力:

目的変数:ボストンの住宅価格(PRICEという変数)
回帰問題

Iris

from sklearn.datasets import load_iris  # scikit-learnからirisのデータセットをインポートする

iris=load_iris()                        # インポートしたデータセットを「iris」と指定する

データ分析しやすいように、データフレーム(行列)の形に変える

df_iris = pd.DataFrame(iris.data, columns=iris.feature_names)
df_iris['Species']=iris.target
df_iris

出力:

目的変数:アイリス(花)の品種(speciesという変数)
3分類問題

Diabetes

from sklearn.datasets import load_diabetes  # scikit-learnからdiabetesのデータセットをインポートする

diabetes=load_diabetes()                    # インポートしたデータセットを「diabetes」と指定する

データ分析しやすいように、データフレーム(行列)の形に変える

df_diabetes = pd.DataFrame(diabetes.data, columns=diabetes.feature_names)
df_diabetes['severity']=diabetes.target
df_diabetes

出力:

目的変数:糖尿病の重症度(severityという変数)
回帰問題

Digits

from sklearn.datasets import load_digits  # scikit-learnからdigitsのデータセットをインポートする

digits=load_digits()                      # インポートしたデータセットを「digits」と指定する

データ分析しやすいように、データフレーム(行列)の形に変える

df_digits = pd.DataFrame(digits.data, columns=digits.feature_names)
df_digits['labels']=digits.target
df_digits

出力:

目的変数:手書き数字の識別(labelsという変数)
10分類問題

Linnerud

from sklearn.datasets import load_linnerud  # scikit-learnからlinnerudのデータセットをインポートする

linnerud=load_linnerud()                    # インポートしたデータセットを「linnerud」と指定する

データ分析しやすいように、データフレーム(行列)の形に変える

df_linnerud_features = pd.DataFrame(linnerud.data, columns=linnerud.feature_names)
df_linnerud_target=pd.DataFrame(linnerud.target, columns=linnerud.target_names)
df_linnerud=pd.concat([df_linnerud_features,df_linnerud_target], axis=1)
df_linnerud

出力:

目的変数:運動機能(Chins: 懸垂回数、Situps: 腹筋回数、Jumps: ジャンプの距離)
回帰問題

Cancer

from sklearn.datasets import load_cancer  # scikit-learnからcancerのデータセットをインポートする

cancer=load_cancer()                      # インポートしたデータセットを「cancer」と指定する

データ分析しやすいように、データフレーム(行列)の形に変える

df_cancer = pd.DataFrame(cancer.data, columns=cancer.feature_names)
df_cancer['cancer']=cancer.target
df_cancer

出力:

目的変数:乳がんの有無
2分類問題

こんな感じです。
とりあえず、自分がしたい分析は、回帰問題(数値の程度が知りたい)なのか、分類問題(分けたい)なのか、分類問題では2分類問題(2つに分けたい)のか、多分類問題(3つ以上に分けたい)のかで、練習用のデータセットを選べばよいです。
以下は、scikit-kearnのデータセットを使った、データ分析や機械学習の例です。参考にして下さい。

分類問題

探索的データ解析(分類問題)
探索的データ解析(Exploratory data analysis:EDA)とはデータの確認作業です。一般的にデータ解析は、仮説検証的に行うものです。つまり、「恐らくこんな関係性があるであろうから、本当にそうなのか、は...
初心者でも決定木
非エンジニアがお届けする、コピペでできる決定木編です。決定木は予測精度はそこまで高くないですが、理解しやすい機械学習で、現場の改善にも威力を発揮します。大まかな理解と、コードのコピペで実際に行っていきましょう。
【初心者】コピペでできるロジスティック回帰
非エンジニアであるサラリーマンにとって、機械学習の細かいアルゴリズムは必要ない! まずは、Pythonにコードをコピペして実行させることが大切です。その結果をどう判断するかは、現場経験があるサラリーマンの腕のみせど...
【初心者】コピペでできる決定木とランダムフォレスト
非エンジニアサラリーマンがお届けする、コピペでできる機械学習シリーズの決定木、ランダムフォレスト編です。問題解決にコードは最低限でいいと考えています。コードはコピーして、データ収集や結果の解釈に力を注いで下さい。 ...
【初心者】コピペでできるXGBoost
非エンジニアサラリーマンがお届けする、コピペでできる機械学習シリーズのXGBoost編です。XGBoostは機械学習のなかでも、非常に予測精度が高いです。Kaggleなどの機械学習のコンペでも多く用いられています。 問...
【初心者】コピペでできるサポートベクタマシン分類
非エンジニアサラリーマンがお届けする、コピペでできる機械学習シリーズのサポートベクタマシン編です。サポートベクタマシンは分類問題と回帰問題をどちらにも対応でき、機械学習のなかで広く使われているモデルです。線形・非線形の分類・回帰など対応できますが、今回は分類問題をみていきましょう。
はじめての手書き文字認識
今回は、機械学習を学び始めるなら、必ず通る道である「手書き文字認識」です。 手書き文字認識は、MNIST(Modified National Institute of Standards and Technolog...

回帰問題

探索的データ解析(回帰問題)
探索的データ解析(Exploratory data analysis:EDA)とはデータの確認作業です。回帰問題は値の量や程度を予測する問題です。そこで、scikit-learnにあるbostonデータセットを用いてEDAを確認していきましょう。
【初心者】コピペでできる線形回帰
非エンジニアサラリーマンがお届けする、コピペでできる機械学習シリーズの線形回帰編です。問題解決にコードは最低限でいいと考えています。コードはコピーして、データ収集や結果の解釈に力を注いで下さい。 だれでも、すぐに実...
【初心者】コピペでできるRidge・Lasso回帰
非エンジニアサラリーマンがお届けする、コピペでできる機械学習シリーズのRidge・Lasso回帰編です。XGBoostは機械学習のなかでも、非常に予測精度が高いです。Kaggleなどの機械学習のコンペでも多く用いられています。 問題解...
【初心者】コピペでできる決定木回帰
非エンジニアサラリーマンがお届けする、コピペでできる機械学習シリーズの決定木の回帰編です。決定木は以前も分類問題で紹介しましたが、今回は回帰問題です。 分類問題は分けるもの 回帰問題は量を予測するもの ...
【初心者】コピペでできるランダムフォレス回帰
非エンジニアサラリーマンがお届けする、コピペでできる機械学習シリーズのランダムフォレストの回帰編です。 ランダムフォレストは以前も分類問題で紹介しましたが、今回は回帰問題です。ランダムフォレストは決定木を何個も作成...
【初心者】コピペでできるXGBoost回帰
非エンジニアサラリーマンがお届けする、コピペでできる機械学習シリーズのXGBoost回帰編です。XGBoostは以前も分類問題で紹介しましたが、今回は回帰問題です。XGBoostは決定木を何個も作成して、それらを総合した...

コメント

タイトルとURLをコピーしました