訂閱
糾錯
加入自媒體

PCA和SVM是什么?該如何建立人臉識別模型?

在本文中,我們將使用主成分分析和支持向量機來建立人臉識別模型。

首先,讓我們了解PCA和SVM是什么:

主成分分析:主成分分析(PCA)是一種機器學習算法,廣泛應用于探索性數據分析和建立預測模型,它通常用于降維,通過將每個數據點投影到前幾個主成分上,以獲得低維數據,同時盡可能保留數據的變化。

Matt Brems的文章全面深入地介紹了該算法。現在,讓我們用更簡單的術語來理解算法:假設我們現在正在收集數據,我們的數據集產生了多個變量、多個特征,所有這些都會在不同方面影響結果。我們可能會選擇刪除某些特征,但這意味著會丟失信息。因此我們開源使用另一種減少特征數量(減少數據維數)的方法,通過提取重要信息并刪除不重要的信息來創(chuàng)建新的特征,這樣,我們的信息就不會丟失,但起到減少特征的作用,而我們模型的過擬合幾率也會減少。支持向量機支持向量機(SVM)是一種用于兩組分類問題的有監(jiān)督機器學習模型,在為每個類別提供一組帶標簽的訓練數據后,他們能夠對新的測試數據進行分類。

支持向量機基于最大化間隔的平面對數據進行分類,決策邊界是直的。支持向量機是一種很好的圖像分類算法,實驗結果表明,支持向量機在經過3-4輪相關優(yōu)化后,其搜索精度明顯高于傳統的查詢優(yōu)化方案,這對于圖像分割來說也是如此,包括那些使用改進的支持向量機。Marco Peixeiro的文章解釋了需要有一個最大間隔超平面來分類數據,開源幫助你更好地理解SVM!人臉識別人臉是由許多像素組成的高維數據。高維數據很難處理,因為不能用二維數據的散點圖等簡單技術進行可視化。我們要做的是利用PCA對數據的高維進行降維處理,然后將其輸入到SVM分類器中對圖像進行分類。下面的代碼示例取自關于eigenfaces的sklearn文檔,我們將一步一步地實現代碼,以了解其復雜性和結果。導入相關庫和模塊首先,我們將導入所需的庫和模塊,我們將在后文深入討論我們?yōu)槭裁匆獙胨鼈。import pylab as pl
import numpy as np
from matplotlib import pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.datasets import fetch_lfw_people
from sklearn.model_selection import GridSearchCV
from sklearn.metrics import classification_report
from sklearn.metrics import confusion_matrix
from sklearn.decomposition import PCA as RandomizedPCA
from sklearn.svm import SVC

將數據加載到Numpy數組中接下來,我們將數據下載到磁盤中,并使用fetch_lfw_people將其作為NumPy數組加載到sklearn.datasetslfw_people = fetch_lfw_people(min_faces_per_person=70, resize=0.4)

lfw數據集包括一個用于研究無約束人臉識別問題的人臉圖像數據庫,它從網絡收集的13000多張照片中包含了超過13000張照片,每個人臉都貼上了照片,1680個人臉在數據集中有兩張或兩張以上不同的照片。圖像采用灰度值(像素值=0-255)。

圖像Numpy數組接下來,我們將尋找圖像數組圖片的形狀。我們使用NumPy shape屬性,該屬性返回一個元組,每個索引都有對應元素的數量。

1  2  3  下一頁>  
聲明: 本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權或其他問題,請聯系舉報。

發(fā)表評論

0條評論,0人參與

請輸入評論內容...

請輸入評論/評論長度6~500個字

您提交的評論過于頻繁,請輸入驗證碼繼續(xù)

暫無評論

暫無評論

    掃碼關注公眾號
    OFweek人工智能網
    獲取更多精彩內容
    文章糾錯
    x
    *文字標題:
    *糾錯內容:
    聯系郵箱:
    *驗 證 碼:

    粵公網安備 44030502002758號