楊永琪 徐欣蕾 陳曦
摘要:支持向量機(jī)(SVM)是一種二分類模型,通過在給定的特征空間中找到兩個(gè)類別的數(shù)據(jù)樣本之間的最大間隔超平面,可以使任何兩個(gè)類別線性地分離。該文提出了不同核函數(shù)的SVM的分類模型,用于識(shí)別不同類型的手寫識(shí)別數(shù)字圖案。在此模型中,使用SHeen模塊中現(xiàn)有結(jié)構(gòu)作為訓(xùn)練的特征提取器,而核函數(shù)SVM的執(zhí)行作為識(shí)別器,該模型自動(dòng)從原始手寫數(shù)字集圖像中提取特征并生成預(yù)測(cè),通過MNIST數(shù)字?jǐn)?shù)據(jù)庫(kù)進(jìn)行了驗(yàn)證,并經(jīng)多個(gè)核函數(shù)和懲罰系數(shù)的調(diào)整、擬舍得到了較高的預(yù)測(cè)分類準(zhǔn)確率,最終呈現(xiàn)的預(yù)測(cè)結(jié)果準(zhǔn)確率達(dá)98.3%。
關(guān)鍵詞:手寫數(shù)字識(shí)別;支持向量機(jī);核函數(shù)
中圖分類號(hào):TP3 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2020)06-0195-02
1簡(jiǎn)介
支持向量機(jī)fSVM,Support Vector Machine)是一類按監(jiān)督學(xué)習(xí)的方式對(duì)數(shù)據(jù)進(jìn)行二元分類的一種分類器(方法),其決策邊界為求解訓(xùn)練樣本的最大邊距分割超平面。支持向量機(jī)可分為三種:硬間隔支持向量機(jī)、軟間隔支持向量機(jī)、核函數(shù)支持向量機(jī)。其中,硬間隔支持向量機(jī)適用于無(wú)噪聲或離群點(diǎn)的數(shù)據(jù)集,其損失函數(shù)不存在,損失值為0;軟間隔支持向量機(jī)允許樣本集存在一定的分類錯(cuò)誤,即存在部分噪聲或離群點(diǎn),其優(yōu)化函數(shù)包括兩部分,一部分是支持向量到分割超平面的間隔距離,另一部分為誤分類的損失個(gè)數(shù);核函數(shù)支持向量機(jī)適用于非線性部分的數(shù)據(jù)集,對(duì)于在N維空間中線性不可分的數(shù)據(jù),在N+I維或更高維度的空間而變成線性可分的,其中常用的核函數(shù)為(RBF)高斯核函數(shù),高斯核函數(shù)可以將維度擴(kuò)展到無(wú)窮維的空間,
SVM的主要優(yōu)點(diǎn):
(1)有效解決高維特征的分類問題和回歸問題,在特征維度大于樣本數(shù)時(shí)依然有很好的效果;
(2)僅使用部分支持向量來做超平面的決策無(wú)須依賴全部數(shù)據(jù);
(3)核函數(shù)使用廣泛、靈活,從而可以從多角度來解決各種非線性的分類回歸問題;
(4)樣本量不是海量數(shù)據(jù)的時(shí)候,分類準(zhǔn)確率高,泛化能力強(qiáng)。
SVM的主要缺點(diǎn):
(1)當(dāng)特征維度遠(yuǎn)遠(yuǎn)大于樣本數(shù)時(shí)則SVM的分類效果并不明顯;
(2)處理大樣本數(shù)據(jù)集時(shí),核函數(shù)映射維度過高,計(jì)算量過大,影響運(yùn)行效率;
(3)非線性問題的核函數(shù)選擇沒有通用標(biāo)準(zhǔn),難以選擇一個(gè)合適的核函數(shù);
(4)SVM對(duì)缺失數(shù)據(jù)、缺失值較為敏感。
2基于支持向量機(jī)的手寫數(shù)字識(shí)別
2.1設(shè)計(jì)流程
SVM模型采用了Sklearn模塊的ovr模式,對(duì)于Mnist數(shù)據(jù)集采用預(yù)處理的辦法進(jìn)行歸一化、二值化、去噪等操作,再選取部分?jǐn)?shù)據(jù)作為訓(xùn)練數(shù)據(jù)集,打亂數(shù)據(jù)后,采用分層抽樣、交叉驗(yàn)證地方式代入改進(jìn)的SVM模型中進(jìn)行模型訓(xùn)練,選用不同的核函數(shù)并調(diào)整權(quán)重系數(shù)C進(jìn)行ovr的SVM模型,從而進(jìn)行分類預(yù)測(cè)準(zhǔn)確率的實(shí)驗(yàn),并輸出文本報(bào)告、混淆矩陣、Loss迭代圖分析預(yù)測(cè)情況。
2.2支持向量機(jī)解決手寫數(shù)字識(shí)別分類問題的基本方法
基于SVM技術(shù)實(shí)現(xiàn)手寫數(shù)字的識(shí)別分類的基本辦法包括四部分:
(1)準(zhǔn)備數(shù)據(jù):讀取Mnist中手寫數(shù)字模塊的數(shù)據(jù)集,并將該部分?jǐn)?shù)據(jù)集重新打亂,避免識(shí)別過程中造成誤差,并將其劃分為訓(xùn)練集和測(cè)試集兩部分,同時(shí)采用分層抽樣、交叉驗(yàn)證的辦法對(duì)數(shù)據(jù)集進(jìn)行劃分。
(2)數(shù)據(jù)預(yù)處理:對(duì)劃分好的數(shù)據(jù)集進(jìn)行歸一化、二值化、降噪等預(yù)處理操作,實(shí)現(xiàn)識(shí)別手寫數(shù)字中有效信息的簡(jiǎn)易化,并提升手寫數(shù)字圖像的識(shí)別精度,本文中該數(shù)據(jù)集采用的手寫數(shù)字圖片為28*28的像素,也可以預(yù)先進(jìn)行降維操作,以便后期引入核函數(shù)時(shí)簡(jiǎn)化計(jì)算。
(3)特征提?。和ㄟ^結(jié)構(gòu)化特征提取或統(tǒng)計(jì)化特征提取的方法對(duì)手寫數(shù)字中的各個(gè)圖像特征進(jìn)行處理,以一個(gè)圖像特征的提取為例,即將圖像分成n*n的區(qū)域,統(tǒng)計(jì)每塊區(qū)域中像素點(diǎn)所占的百分比與SVM中參數(shù)的選擇f核函數(shù)與懲罰系數(shù)C的選擇),當(dāng)不需要參數(shù)選擇時(shí),可以采用默認(rèn)參數(shù);此過程可采用Sklearn模塊中的LinearSVC或SVC工具包等實(shí)現(xiàn)。
(4)訓(xùn)練及測(cè)試:通過matshowO方法繪制該模型的混淆矩陣,并對(duì)采用不同參數(shù)(核函數(shù)與懲罰系數(shù)C)的SVM模型進(jìn)行混淆矩陣的比較;輸出詳細(xì)報(bào)告,給出不同參數(shù)下SVM模型的整體準(zhǔn)確性、預(yù)測(cè)精度、回召率、支持向量個(gè)數(shù)等數(shù)值。
3測(cè)試結(jié)果及分析
該SVM模型中通過選用Mnist手寫數(shù)字?jǐn)?shù)據(jù)集,對(duì)其經(jīng)數(shù)據(jù)預(yù)處理后,先通過Skleam包中的LinearSVC工具包中的函數(shù)進(jìn)行處理,得到其整體準(zhǔn)確性均在90%水平浮動(dòng),故又引入了SVC函數(shù),通過對(duì)RBF、Polynomial、Linear、Sigmoid等核函數(shù)的選擇,運(yùn)用Ovr分類方案,得到了在高斯核函數(shù)、設(shè)置懲罰系數(shù)為15的條件下得到最高、最精確的預(yù)測(cè)率98.3%及實(shí)驗(yàn)精度。
4總結(jié)
本文通過Mnist數(shù)據(jù)集,選取了30%作為測(cè)試集、70%作為訓(xùn)練集進(jìn)行實(shí)驗(yàn),經(jīng)Sklearn模塊中的函數(shù)進(jìn)行實(shí)現(xiàn),在選擇高斯核函數(shù)、設(shè)置懲罰系數(shù)為15的模型參數(shù)條件下可得到最精確的預(yù)測(cè)率98.3%及實(shí)驗(yàn)精度,得到了高斯核對(duì)于數(shù)據(jù)集的擬合程度較高,并且使用高斯核的SVM模型整體準(zhǔn)確性及各個(gè)報(bào)告參數(shù)也顯著提升的結(jié)論。顯示了手寫數(shù)字識(shí)別的混淆矩陣,其中值得注意的是,在“3”和“5”這類手寫數(shù)字之間發(fā)生的混淆的概率較大,但經(jīng)相關(guān)參數(shù)的選擇與修改本文最終得到了較為準(zhǔn)確的預(yù)測(cè)結(jié)果。