科学の箱

科学・IT・登山の話題

機械学習

手書き数字のデータセットについてイメージを確認

投稿日:

sklearnには手書き数字のデータが用意されている。このデータはイメージの分類モデルを学ぶためによいスタートである。今回はこのバイナリデータを読み込み、イメージとして確認する。

内容
  • load_digitsによりデータを読み込み
  • イメージの検証

load_digitsによりデータを読み込み

sklearn.datasets.load_digits — scikit-learn 0.21.3 documentation

# イメージデータの読み込みおよび確認
from sklearn.datasets import load_digits
digits = load_digits()
print(digits.data.shape)

# (1797, 64)

 

さてこのデータはイメージデータ(バイナリ)である。ここには1797個のデータがある。一つのデータは8×8=64個の数値から成り立っている。

print(digits.data)

# 
[[ 0.  0.  5. ...  0.  0.  0.]
 [ 0.  0.  0. ... 10.  0.  0.]
 [ 0.  0.  0. ... 16.  9.  0.]
 ...
 [ 0.  0.  1. ...  6.  0.  0.]
 [ 0.  0.  2. ... 12.  0.  0.]
 [ 0.  0. 10. ... 12.  1.  0.]]

これはイメージデータの配列である。pythonではイメージを表示してくれるpyplot.matshow()を使ってイメージを表示する。

import matplotlib.pyplot as plt 
%matplotlib inline
plt.gray()
plt.matshow(digits.images[0]) 
plt.show()

 

また戻り値は辞書型に類似しており、targetにイメージの値が入っている。

print(digits.target)
# [0 1 2 ... 8 9 8]

 

イメージの俯瞰

イメージとtargetを組み合わせて、load_digitで読み込んだデータを最初の100個について俯瞰してみる。

fig, axes = plt.subplots(10, 10, figsize=(8, 8),subplot_kw={'xticks':[], 'yticks':[]})
for i, ax in enumerate(axes.flat):
    ax.imshow(digits.images[i], cmap='binary', interpolation='nearest')
    ax.text(0, 0, str(digits.target[i]))

まずsubplotsによりfigure(これはプロットするエリア全体), axes(座標軸であり、サブプロットはこのaxesに沿って設定する)を取得する。サブプロットの数は10×10=100である。全体のサイズはfigsize=(8,8)である。これは8inch x 8inchを意味する。サブプロットの形式としてxticksとyticksを消している。

次にaxes.flatをイテレータとする繰り返し処理をしている。

for i, ax in enumerate(axes.flat):

ax.imshowを使って、画像をサブプロットに設定する。またax.textにより各サブプロットの左上に数字を表示する。

 

 

メタ情報

inarticle



メタ情報

inarticle



-機械学習
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

Pythonではじめる機械学習 – 多様体学習

多様体学習 次元削減に利用できる手法として主成分分析がある。これは柔軟であり、すぐに実装可能な次元削減アルゴリズムの一つである。しかし一つだけ問題がある。それは主成分分析に適用できるデータは線形のみで …

no image

売り上げデータの分析

利益 = 売り上げ – コスト 売り上げ = 客数 x 客単価 コスト ≒ 人件費 + 廃棄コスト 客数 客単価 = Σ 品物i x 購入数 客数を増やす方法 来てもらう方法 安売りキャン …

no image

irisをナイーブベイズで分類

ナイーブベイズの概要 ナイーブベイズは教師ありの分類アルゴリズムの一つである。 計算アルゴリズムとしてはベイズ定理を用いている。 機械学習における特徴としてはいかがある 実装が簡単であり、複雑なハイパ …

no image

dataanalysis-002-week4

クラスタリング SVDと組み合わせることでよりクラスに分かれているクラスタリングを実行できる。 散布図でクラスタリングする変数を探す クラスタリング SVDを実行する SVDの結果をクラスタリングに取 …

no image

Pythonではじめる機械学習 – Chap04

4.4 Binning, Discretization, Linear Models, and Trees ビン化のメリット 決定木でビン化するメリットはあまりない 決定木はモデルの中で一つの特徴につ …

2019年10月
« 9月   11月 »
 123456
78910111213
14151617181920
21222324252627
28293031  

side bar top



アーカイブ

カテゴリー