lfw分类 python_Python机器学习:PCA与梯度上升:009人脸识别与特征脸(lfw_people数据集)...
將w的每一行想成一個樣本,則第一行是最重要的樣本。。第二行次重要。。(Wk特征engen face)
CODE
我們使用lfw_people數據集
#人臉識別與特征臉
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import fetch_lfw_people
這個數據集很大有200多m直接用fetch命令下載卻失敗了,手動下載數據
鏈接:https://pan.baidu.com/s/11ebeCTH7E24XAgYVL7y_-A
提取碼:3gut
復制這段內容后打開百度網盤手機App,操作更方便哦
放在這個目錄下面,解壓(job本來沒有,重新啟動一下jupyter運行一下就ok了)
也是一個字典結構
faces.keys()
dict_keys(['data', 'images', 'target', 'target_names', 'DESCR'])
看看data的大小
print(faces.data.shape)
(13233, 2914)
print(faces.images.shape)
62*47 = 2914
(13233, 62, 47)
打亂索引
random_indexs = np.random.permutation(len(faces.data))
X = faces.data[random_indexs]
example_faces = X[:36,:]
print(example_faces.shape)
(36,2914)
繪制36幅圖片
#cmap 改變繪制風格,cmaps['Sequential'] = [
# 'Greys', 'Purples', 'Blues', 'Greens', 'Oranges', 'Reds',
# 'YlOrBr', 'YlOrRd', 'OrRd', 'PuRd', 'RdPu', 'BuPu',
# 'GnBu', 'PuBu', 'YlGnBu', 'PuBuGn', 'BuGn', 'YlGn']
def plot_faces(faces):
fig,axes = plt.subplots(6,6,figsize = (10,10),
subplot_kw = {'xticks':[],'yticks':[]},
gridspec_kw =dict(hspace = 0.1,wspace = 0.1))
for i ,ax in enumerate(axes.flat):
ax.imshow(faces[i].reshape(62,47),
cmap='bone')
plot_faces(example_faces)
特征臉
使用隨機方式求PCA,數據量較大
#特征臉
from sklearn.decomposition import PCA
pca = PCA(svd_solver='randomized')#使用隨機的方式求pca,數據較大
%time pca.fit(X)
Wall time: 32.3 s
特征臉矩陣大小
print(pca.components_.shape)
(2914, 2914)
還可以繪制36-73
繪制特征臉
plot_faces(pca.components_[:36,:])#繪制特征臉,第一張就很簡單只有輪廓,越往后細節越多
標簽:2914,people,Python,36,shape,lfw,faces,pca,data
來源: https://blog.csdn.net/weixin_46815330/article/details/110912694
總結
以上是生活随笔為你收集整理的lfw分类 python_Python机器学习:PCA与梯度上升:009人脸识别与特征脸(lfw_people数据集)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 流媒体 关键词解释
- 下一篇: python读取uci数据集