fetch_lfw_peopleのimport

In [1]:
from sklearn.datasets import fetch_lfw_people

データのダウンロード

  • ひとまず、最低100種類の写真があるデータに限定してダウンロード
  • downloadサイズは245 MB でした。
  • 時間はかかりますが、一度ダウンロードして保持しておけばその後は時間はかからない。
In [2]:
lfw = fetch_lfw_people(data_home='./scikit_learn_data/',color=True , min_faces_per_person=100)

keyを確認して、中身を確認してみる。

  • data :画像数は1140個。1画像は8742( 縦62×横47×RGB3)
  • imges :画像形式の配列
  • target :分類結果(dataを分類した場合の正解データになる値)
  • target_name : 分類結果(target)の値に対応する人物名(文字列)
In [3]:
lfw.keys()
Out[3]:
dict_keys(['data', 'images', 'target', 'target_names', 'DESCR'])
In [4]:
lfw.data.shape
Out[4]:
(1140, 8742)
In [5]:
lfw.images.shape
Out[5]:
(1140, 62, 47, 3)

imagesはfloat型で格納されている

In [6]:
lfw.images.dtype
Out[6]:
dtype('float32')
In [7]:
lfw.target
Out[7]:
array([2, 3, 1, ..., 4, 2, 4], dtype=int64)

5人のデータが入っているようです

In [8]:
lfw.target_names
Out[8]:
array(['Colin Powell', 'Donald Rumsfeld', 'George W Bush',
       'Gerhard Schroeder', 'Tony Blair'], dtype='<U17')

最初の3画像を表示してみる

In [9]:
from matplotlib import pyplot as plt

plt.subplots_adjust(wspace=0.2, hspace=0.6)

for i in range(3):
    subplt = plt.subplot(1,3, i+1)
    subplt.imshow(lfw.images[i]/255) # RGBデータ表示の場合、floatは[0 - 1]でclipされるので、[0 - 1]に正規化して表示する
    subplt.set_title(lfw.target_names[lfw.target[i]])

plt.savefig('.\lfw_color.jpg')    
plt.show()
In [ ]:
 
In [ ]:
 
In [ ]: