日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python sklearn NMF人脸识别

發(fā)布時(shí)間:2024/3/26 python 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python sklearn NMF人脸识别 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

非負(fù)矩陣分解(NMF,Non-negative Matrix Factorization)

非負(fù)矩陣分解是在矩陣中所有元素均為非負(fù)數(shù)約束條件之下的矩陣分解方法
基本思想:給定一個(gè)非負(fù)矩陣V,NMF能夠找到一個(gè)百負(fù)矩陣W和一個(gè)非負(fù)矩陣H,使得矩陣W和H的乘積近似等于矩陣V中的值V=W*H
W矩陣:基礎(chǔ)圖像矩陣,相當(dāng)于從原矩陣V中抽取出來的特征
V矩陣:系數(shù)矩陣
NMF能夠廣泛應(yīng)用于圖像分析、文本挖掘和語音等領(lǐng)域

矩陣分解優(yōu)化目標(biāo):最小化W矩陣和H矩陣的乘積和原始矩陣之間的差別

http://blog.csdn.net/acdreamers/article/details/44663421/

主要參數(shù):

dp.NMF(n_components=None,init=None,solver=‘cd’,beta_loss=‘frobenius’,tol=1e-4,
max_iter=200,random_state=None,alpha-0.,l1_ratio=0.,verbose=0,shuffle=False)
n_components:用于指定分解后矩陣的單個(gè)維度k
init:W矩陣和H矩陣的初始化方式,默認(rèn)為’nndsvdar’

NMF人臉數(shù)據(jù)特征提取

目標(biāo):已知Olivetti人臉數(shù)據(jù)共400個(gè)每個(gè)數(shù)據(jù)是64*64大小,由于NMF分解得到的W矩陣相當(dāng)于從原始矩陣中提取的特征,
那么就可以使用NMF對(duì)400個(gè)人臉數(shù)據(jù)提行特征提取
通過設(shè)置k的大小,設(shè)置提取的特征數(shù)目,在本實(shí)驗(yàn)中設(shè)置k=6,隨后將提取的特征以圖像的形式展示出來

人臉特征提取實(shí)例:

import sklearn.decomposition as dp import matplotlib.pyplot as plt from sklearn.datasets import fetch_olivetti_faces from numpy.random import RandomState #創(chuàng)建隨機(jī)種子 n_row,n_col=2,3 n_components=n_row*n_col image_shape=(64,64) datasets=fetch_olivetti_faces(shuffle=True,random_state=RandomState(0)) #dataset=fetch_olivetti_faces(data_home=None,shuffle=False,random_state=0,download_if_missing=True) faces=datasets.data #加載工打開數(shù)據(jù)def plot_gallery(title,images,n_col=n_col,n_row=n_row):plt.figure(figsize=(2.*n_col,2.26*n_row)) #創(chuàng)建圖片,并指定圖片大小plt.suptitle(title,size=18) #設(shè)置標(biāo)題及字號(hào)大小for i,comp in enumerate(images):plt.subplot(n_row,n_col,i+1) #選擇繪制的子圖vmax=max(comp.max(),-comp.min())plt.imshow(comp.reshape(image_shape),cmap=plt.cm.gray,interpolation='nearest',vmin=-vmax,vmax=vmax) #對(duì)數(shù)值歸一化,并以灰度圖形式顯示plt.xticks(())plt.yticks(()) #去除子圖的坐標(biāo)軸標(biāo)簽plt.subplots_adjust(0.01,0.05,0.99,0.94,0.04,0.) #對(duì)子圖位置及間隔調(diào)整plot_gallery('First centered Olivetti faces',faces[:n_components]) estimators=[('Eigenfaces-PCA using randomized SVD',dp.PCA(n_components=6,whiten=True)),('Non-negative components - NMF',dp.NMF(n_components=6,init='nndsvda',tol=5e-3))] #NMFPCA實(shí)例化for name,estimator in estimators: #分別調(diào)用PCANMFestimator.fit(faces) #調(diào)用PCANMF提取特征components_=estimator.components_ #獲取提取的特征plot_gallery(name,components_[:n_components]) #按照固定格式進(jìn)行排列 plt.show()

學(xué)習(xí)目標(biāo):https://blog.csdn.net/qq_32892383/article/details/91347164

總結(jié)

以上是生活随笔為你收集整理的python sklearn NMF人脸识别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。