scikit-learn, seaborn のデータセット(Python,scikit-learn, seaborn を使用)

概要

この資料では,Python のライブラリである seabornscikit-learn に同梱されているサンプルデータセットの一覧と,それらを pandas の DataFrame として読み込み,CSV ファイルとして保存するプログラム例を示す。機械学習や統計の練習に使えるデータをすぐに利用できるようにすることが目的である。

目次

関連する外部ページ

サイト内の関連情報

第1章 前準備

scikit-learn, seaborn のインストール

第2章 seaborn のデータセット

seaborn の load_dataset 関数で読み込めるサンプルデータセットには,次のようなものがある(カッコ内は主な列名)。

次のプログラムは,iris, tips, planets, fmri, titanic, anscombe, exercise を CSV ファイルとして保存し,それぞれの先頭部分を確認表示する。

import seaborn

iris = seaborn.load_dataset('iris')
tips = seaborn.load_dataset('tips')
planets = seaborn.load_dataset('planets')
fmri = seaborn.load_dataset('fmri')
titanic = seaborn.load_dataset('titanic')
anscombe = seaborn.load_dataset('anscombe')
exercise = seaborn.load_dataset('exercise')

iris.to_csv('iris.csv', encoding='utf-8', index_label='id')
tips.to_csv('tips.csv', encoding='utf-8', index_label='id')
planets.to_csv('planets.csv', encoding='utf-8', index_label='id')
fmri.to_csv('fmri.csv', encoding='utf-8', index_label='id')
titanic.to_csv('titanic.csv', encoding='utf-8', index_label='id')
anscombe.to_csv('anscombe.csv', encoding='utf-8', index_label='id')
exercise.to_csv('exercise.csv', encoding='utf-8', index_label='id')

print(iris.head())
print(tips.head())
print(planets.head())
print(fmri.head())
print(titanic.head())
print(anscombe.head())
print(exercise.head())

第3章 scikit-learn のデータセット

公式ページ: https://scikit-learn.org/stable/datasets

次のプログラムは,diabetes, digits, iris, linnerud を CSV ファイルとして保存する。

import numpy as np
import pandas as pd
import sklearn.datasets

a = sklearn.datasets.load_diabetes()
diabetes = pd.DataFrame(pd.Series(map(list, a.data)), columns=["data"])
diabetes["target"] = pd.Series(a.target)

a = sklearn.datasets.load_digits()
digits = pd.DataFrame(pd.Series(map(list, a.data)), columns=["data"])
digits["target"] = pd.Series(a.target)

a = sklearn.datasets.load_iris()
iris = pd.DataFrame(a.data, columns=['sepal_length', 'sepal_width', 'petal_length', 'petal_width'])
iris["species_number"] = pd.Series(a.target)
iris["species"] = pd.Series(a.target_names[a.target])

a = sklearn.datasets.load_linnerud()
linnerud = pd.DataFrame(np.hstack((a.data, a.target)), columns=['chins', 'situps', 'jumps', 'weight', 'waist', 'pulse'])

diabetes.to_csv('diabetes.csv', encoding='utf-8', index_label='id')
digits.to_csv('digits.csv', encoding='utf-8', index_label='id')
iris.to_csv('iris.csv', encoding='utf-8', index_label='id')
linnerud.to_csv('linnerud.csv', encoding='utf-8', index_label='id')

次のプログラムは,digits データセットの 0 番目のデータを 8×8 の画像として表示する。

import numpy as np
import sklearn.datasets
import matplotlib.pyplot as plt

a = sklearn.datasets.load_digits()
plt.gray()
plt.matshow(np.array(a.data[0]).reshape(8, 8))
plt.show()