- 簽證留學(xué) |
- 筆譯 |
- 口譯
- 求職 |
- 日/韓語(yǔ) |
- 德語(yǔ)
(1)收集數(shù)據(jù):提供的文本文件。
(2)準(zhǔn)備數(shù)據(jù):基于二值圖像構(gòu)造向量。
(3)分析數(shù)據(jù):對(duì)圖像向量進(jìn)行目測(cè)。
(4)訓(xùn)練算法:采用兩種不同的核函數(shù),并對(duì)徑向基核函數(shù)采用不同的設(shè)置來(lái)運(yùn)行SMO算法。
(5)測(cè)試算法:編寫一個(gè)函數(shù)來(lái)測(cè)試不同的核函數(shù)并計(jì)算錯(cuò)誤率。
(6)使用算法:一個(gè)圖像識(shí)別的完整應(yīng)用還需要一些圖像處理的知識(shí),這里并不打算深入介紹。
使用其它一些代碼和SMO算法,可以構(gòu)建一個(gè)系統(tǒng)去測(cè)試手寫數(shù)字上的分類器。打開svmMLiA.py并將img2vector()函數(shù)復(fù)制過來(lái)。然后,加入程序清單1中的代碼。
程序清單1基于SVM的手寫數(shù)字識(shí)別
函數(shù)loadImages()是作為前面kNN.py中的handwritingClassTest()的一部分出現(xiàn)的。它已經(jīng)被重構(gòu)為自身的一個(gè)函數(shù)。其中僅有的一個(gè)大區(qū)別在于,在kNN.py中代碼直接應(yīng)用類別標(biāo)簽,而同支持向量機(jī)一起使用時(shí),類別標(biāo)簽為一1或者+1。因此,一旦碰到數(shù)字9,則輸出類別標(biāo)簽-1,否則輸出+1。本質(zhì)上,支持向量機(jī)是一個(gè)二類分類器,其分類結(jié)果不是+1就是-1?;赟VM構(gòu)建多類分類器已有很多研究和對(duì)比了,如果讀者感興趣,建議閱讀C.W.Huset等人發(fā)表的一篇論文“A Comparison of Methods for Multiclass Support Vector Machines”。由于這里我們只做二類分類,因此除了1和9之外的數(shù)字都被去掉了。