回帰用データや画像データなど20種類程度+α
https://github.com/ninomae-makoto/python-snippets/blob/master/datasets.ipynb
に簡単なサンプルとともに上げている。
ライブラリ読み込み
事前に必要なライブラリを読み込み。
1 2 3 | import pandas as pd import matplotlib.pyplot as plt import numpy as np |
アヤメの品種データ(Iris-plants-dataset)
がく片の長さ、幅、花びらの長さ、幅の4つの特徴量から3種類に分類する。
1 2 3 4 5 | from sklearn.datasets import load_iris src = load_iris() print(src.DESCR) df = pd.DataFrame(src.data, columns=src.feature_names) df.describe() |
ボストン市の住宅価格データ(Boston-house-prices-dataset)
住宅情報から価格を予想する。
1 2 3 4 5 6 | from sklearn.datasets import load_boston src = load_boston() print(src.DESCR) df = pd.DataFrame(src.data, columns=src.feature_names) df[ 'Price' ] = src.target df.describe() |
糖尿病患者の診療データ(Diabetes-dataset)
データ正規化済み。
1 2 3 4 5 6 | from sklearn.datasets import load_diabetes src = load_diabetes() print(src.DESCR) df = pd.DataFrame(src.data, columns=src.feature_names) pd.options.display.float_format= '{:.8f}' .format df.describe() |
数字の手書き文字データ
1791枚 8x8 グレースケールの画像。
手書き数字の分類ができる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | from sklearn.datasets import load_digits src = load_digits(n_class= 10 ) df = pd.DataFrame(src.data) print(src.DESCR) # 1791 枚 8x8 グレースケール print(src.images.shape) num = 80 plt.figure(figsize=( 10 ,num/ 2 )) plt.subplots_adjust(hspace= 1.4 ) for i in range(num): plt.subplot(num/ 2 , 10 , i + 1 ) plt.imshow(src.images[i], cmap=plt.cm.gray_r, interpolation= 'nearest' ) plt.axis( 'off' ) plt.title( '%i' % src.target[i]) plt.show() |
生理学的特徴と運動能力の関係についてのデータ(Linnerrud-dataset)
1 2 3 4 5 6 7 | from sklearn.datasets import load_linnerud src = load_linnerud() print(src.DESCR) df = pd.DataFrame(src.data, columns=src.feature_names) df2 = pd.DataFrame(src.target, columns=src.target_names) df = pd.concat([df, df2], axis= 1 ) df.describe() |
ワインの品質データ(Wine-recognition-dataset)
1 2 3 4 5 6 | from sklearn.datasets import load_wine src = load_wine() print(src.DESCR) df = pd.DataFrame(src.data, columns=src.feature_names) df[ 'Class' ] = src.target df.describe() |
乳がんデータ(Breast-cancer-wisconsin-[diagnostic]-dataset)
1 2 3 4 5 6 7 | from sklearn.datasets import load_breast_cancer src = load_breast_cancer() print(src.DESCR) df = pd.DataFrame(src.data, columns=src.feature_names) # 0 :悪性 1 :良性 df[ 'Target' ] = src.target df.describe() |
顔の表情データ
400枚 64x64 グレースケール の顔画像。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | from sklearn.datasets import fetch_olivetti_faces src = fetch_olivetti_faces() print(src.DESCR) # 400 枚 64x64 グレースケール print(src.images.shape) num = 10 plt.figure(figsize=( 20 ,num* 2 )) plt.subplots_adjust(hspace= 0.4 ) for i in range(num): plt.subplot(num/ 2 , 5 , i + 1 ) plt.imshow(src.images[i], cmap=plt.cm.gray, interpolation= 'nearest' ) plt.axis( 'off' ) plt.title( '%i' % src.target[i]) plt.show() src.images.shape |
トピック別ニュース記事
14MB.
1 2 3 4 5 6 7 8 9 10 | from sklearn.datasets import fetch_20newsgroups src = fetch_20newsgroups() print(src.DESCR) print( '-----------------------------------------------------' ) for i in range( 3 ): print( '*** target_name = ' + src.target_names[src.target[i]] + ' ***' ) print(src.data[i]) print( '-----------------------------------------------------' ) |
有名人の顔写真
300MB~
13233枚 62x47 グレースケール画像。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | from sklearn.datasets import fetch_lfw_people src = fetch_lfw_people() print(src.DESCR) # 400 枚 64x64 グレースケール print(src.images.shape) num = 10 plt.figure(figsize=( 20 ,num* 2 )) plt.subplots_adjust(hspace= 0.4 ) for i in range(num): plt.subplot(num/ 2 , 5 , i + 1 ) plt.imshow(src.images[i], cmap=plt.cm.gray, interpolation= 'nearest' ) plt.axis( 'off' ) plt.title( '%i' % src.target[i]) plt.show() src.images.shape |
1 |
森林の木の種類
14.3MB.
1 2 3 4 5 6 | from sklearn.datasets import fetch_covtype src = fetch_covtype() print(src.DESCR) df = pd.DataFrame(src.data) df[ 'Target' ] = src.target df.describe() |
ネットワークの侵入検知
150MB.
1 2 3 4 5 6 | from sklearn.datasets import fetch_kddcup99 src = fetch_kddcup99() print(src.DESCR) df = pd.DataFrame(src.data) df[ 'Target' ] = src.target df.describe() |
カリフォルニアの住宅価格
1 2 3 4 5 6 | from sklearn.datasets import fetch_california_housing src = fetch_california_housing() print(src.DESCR) df = pd.DataFrame(src.data, columns=src.feature_names) df[ 'Price' ] = src.target df.describe() |
CIFAR10-画像分類
10種類にラベリングされたカラー画像。
1 2 3 4 5 6 7 8 9 10 | from keras.datasets import cifar10 (x_train, y_train), (x_test, y_test) = cifar10.load_data() fig = plt.figure(figsize=( 9 , 15 )) fig.subplots_adjust(left= 0 , right= 1 , bottom= 0 , top= 0.5 , hspace= 0.05 , wspace= 0.05 ) seed = np.random.randint( 100 ) for i in range( 9 ): ax = fig.add_subplot( 1 , 9 , i + 1 , xticks=[], yticks=[]) ax.imshow(x_train[i+seed], cmap= 'gray' ) |
CIFAR100-画像分類
100種類にラベリングされた画像。
161MB.
1 2 3 4 5 6 7 8 9 10 11 | from keras.datasets import cifar100 (x_train, y_train), (x_test, y_test) = cifar100.load_data(label_mode= 'fine' ) fig = plt.figure(figsize=( 9 , 15 )) fig.subplots_adjust(left= 0 , right= 1 , bottom= 0 , top= 0.5 , hspace= 0.05 , wspace= 0.05 ) seed = np.random.randint( 100 ) for i in range( 9 ): ax = fig.add_subplot( 1 , 9 , i + 1 , xticks=[], yticks=[]) ax.imshow(x_train[i+seed], cmap= 'gray' ) |
IMDB映画レビュー感情分類
感情 (肯定/否定) のラベル付けをされた,25,000のIMDB映画レビューのデータセット。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | from keras.datasets import imdb (x_train, y_train), (x_test, y_test) = imdb.load_data(path= "imdb.npz" , num_words=None, skip_top= 0 , maxlen=None, seed= 113 , start_char= 1 , oov_char= 2 , index_from= 3 ) word_index = imdb.get_word_index() reverse_word_index = dict([(value, key) for (key, value) in word_index.items()]) review = ' ' .join([reverse_word_index.get(i - 3 , '?' ) for i in x_train[ 0 ]]) review |
MNIST-手書き数字データベース
フォーマットは違うがおそらくsklearnと同じもの。
1 2 3 4 5 6 7 8 9 10 11 | from keras.datasets import mnist (x_train, y_train), (x_test, y_test) = mnist.load_data() fig = plt.figure(figsize=( 9 , 9 )) fig.subplots_adjust(left= 0 , right= 1 , bottom= 0 , top= 1.5 , hspace= 0.05 , wspace= 0.05 ) index = 0 # 100 *n for i in range( 0 , 100 ): ax = fig.add_subplot( 10 , 10 , i + 1 , xticks=[], yticks=[]) ax.imshow(x_train[i+index], cmap= 'gray' ) plt.title(str(i+index)+ ", " +str(y_train[i+index])); |
Fashion-MNIST-ファッション記事データベース
1 2 3 4 5 6 7 8 9 10 11 | from keras.datasets import fashion_mnist (x_train, y_train), (x_test, y_test) = fashion_mnist.load_data() fig = plt.figure(figsize=( 9 , 9 )) fig.subplots_adjust(left= 0 , right= 1 , bottom= 0 , top= 1.5 , hspace= 0.05 , wspace= 0.05 ) index = 0 # 100 *n for i in range( 0 , 100 ): ax = fig.add_subplot( 10 , 10 , i + 1 , xticks=[], yticks=[]) ax.imshow(x_train[i+index], cmap= 'gray' ) plt.title(str(i+index)+ ", " +str(y_train[i+index])); |
ボストンの住宅価格回帰データセット
1 2 3 4 5 6 7 8 | from keras.datasets import boston_housing (x_train, y_train), (x_test, y_test) = boston_housing.load_data() x_train df = pd.DataFrame(x_train, columns=[ 'CRIM' , 'ZN' , 'INDUS' , 'CHAS' , 'NOX' , 'RM' , 'AGE' , 'DIS' , 'RAD' , 'TAX' , 'PTRATIO' , 'B' , 'LSTAT' ]) df[ 'MEDV' ] = y_train df.describe() |
その他
kaggleデータセットが良さそう。
https://keras.io/ja/datasets/
参考
https://scikit-learn.org/stable/modules/classes.html#module-sklearn.datasets
https://yolo.love/scikit-learn/datasets/