0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

支持向量機(兵(車)王問題MATLAB程序)

RG15206629988 ? 來源:行業(yè)學(xué)習(xí)與研究 ? 2023-06-16 16:06 ? 次閱讀

一、下載LIBSVM工具包

首先將LIBSVM工具包下載至SVM EXAMPLE的目錄下。

33ecb346-0c1c-11ee-962d-dac502259ad0.png

圖片來源:中國慕課大學(xué)《機器學(xué)習(xí)概論》

然后將LIBSVM的路徑加載至MATLAB的路徑中,以使MATLAB可找到LIBSVM工具包中所有與MATLAB有接口的函數(shù)(個人理解:經(jīng)過此步驟后,MATLAB可以調(diào)用LIBSVM工具包中的函數(shù))。

3402b754-0c1c-11ee-962d-dac502259ad0.png

圖片來源:中國慕課大學(xué)《機器學(xué)習(xí)概論》

二、數(shù)據(jù)預(yù)處理

處理兵(車)王問題的MATLAB程序文件名稱為:testSVMChessLibSVM.m。該MATLAB程序采用讀文件的方式獲取數(shù)據(jù),并將六維數(shù)據(jù)(六維數(shù)據(jù)表示三個棋子的位置)存儲于xapp中,一維數(shù)據(jù)(一維數(shù)據(jù)表示某一情況下,兵(車)王問題返回結(jié)果)存儲于yapp中。

343afcb8-0c1c-11ee-962d-dac502259ad0.png

圖片來源:中國慕課大學(xué)《機器學(xué)習(xí)概論》

獲取數(shù)據(jù)后,首先需所有28056個數(shù)據(jù)順序打亂,再將5000個數(shù)據(jù)作為訓(xùn)練集,將23056個數(shù)據(jù)作為測試集,以保證訓(xùn)練集和測試集的選擇完全隨機。之后將訓(xùn)練集和測試集歸一化。

3454b86a-0c1c-11ee-962d-dac502259ad0.png3484840a-0c1c-11ee-962d-dac502259ad0.png

圖片來源:中國慕課大學(xué)《機器學(xué)習(xí)概論》

該MATLAB程序選擇的核函數(shù)是RBF核函數(shù)(高斯徑向基函數(shù)核),并根據(jù)LIBSVM網(wǎng)站,將超參數(shù)c的取值范圍選定為2-5~215,超參數(shù)g(gamma,gamma代表RBF核函數(shù)中1/σ2的值)取值范圍選定為2-15~23。

三、確定超參數(shù)c和g的值

在上述超參數(shù)c和g的取值范圍內(nèi)遍歷所有c和g的組合,尋找識別率最大的c和g組合的機器學(xué)習(xí)模型。

為估計識別率,需要在5000個訓(xùn)練集中選取部分?jǐn)?shù)據(jù)作為估計識別率的數(shù)據(jù)。所選取估計識別率的數(shù)據(jù)不能與訓(xùn)練機器學(xué)習(xí)模型的數(shù)據(jù)相同,否則會導(dǎo)致過擬合(OVERFITTING),從而導(dǎo)致估計識別率高于實際識別率。估計識別率的數(shù)據(jù)與訓(xùn)練機器學(xué)習(xí)模型的數(shù)據(jù)相同類似于學(xué)生考試的題目與日常練習(xí)題目相同,若學(xué)生考試的題目與日常練習(xí)題目相同,則學(xué)生的考試成績將偏高。

為充分利用訓(xùn)練集數(shù)據(jù),機器學(xué)習(xí)模型訓(xùn)練常采用交叉驗證的方式估計識別率。在該MATLAB程序中,訓(xùn)練集數(shù)據(jù)被等分為5份,每份1000個數(shù)據(jù),分別以A、B、C、D、E標(biāo)號,然后進行下述訓(xùn)練和估計:

(1)采用A、B、C、D訓(xùn)練,采用E估計識別率;

(2)采用A、B、C、E訓(xùn)練,采用D估計識別率;

(3)采用A、B、D、E訓(xùn)練,采用C估計識別率;

(4)采用A、C、D、E訓(xùn)練,采用B估計識別率;

(5)采用B、C、D、E訓(xùn)練,采用A估計識別率; 最后將五個識別率取平均值,得出總識別率,該過程被稱為五折交叉驗證(5-fold cross validation),LIBSVM工具包中“-v 5”表示五折交叉驗證。

34a6fefe-0c1c-11ee-962d-dac502259ad0.png

圖片來源:中國慕課大學(xué)《機器學(xué)習(xí)概論》

交叉驗證在訓(xùn)練數(shù)據(jù)數(shù)量不變的情況下,保證采用更多的數(shù)據(jù)訓(xùn)練和估計識別率,從而估計出更準(zhǔn)確的識別率。交叉驗證的劣勢是增加模型訓(xùn)練的時間。

交叉驗證的形式之一是留一法(LEAVE-ONE-OUT),即每次采用一個數(shù)據(jù)估計識別率,剩余數(shù)據(jù)均參與訓(xùn)練。留一法常被用于訓(xùn)練數(shù)據(jù)較少且需要精確估計識別率的情況。

在該MATLAB程序中,共包含兩次交叉驗證,第一次交叉驗證初步確定超參數(shù)c和g的組合,第二次交叉驗證更精確地確定超參數(shù)c和g的組合。
四、訓(xùn)練機器學(xué)習(xí)模型

在確定超參數(shù)c和g的組合后,使用該超參數(shù)c和g的組合和5000個訓(xùn)練樣本得出最終的機器學(xué)習(xí)模型,圖一為所得出的機器學(xué)習(xí)模型的參數(shù),其中,“nr_class:2”表示此機器學(xué)習(xí)模型是二分類模型,“totalSV:220”表示此機器學(xué)習(xí)模型具有220個支持向量,“rho:39.9485”表示b的值為39.9485。

34cb82d8-0c1c-11ee-962d-dac502259ad0.png

圖一,圖片來源:中國慕課大學(xué)《機器學(xué)習(xí)概論》

最后,采用測試集的數(shù)據(jù)測試模型,得出識別率為99.61%。




審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 存儲器
    +關(guān)注

    關(guān)注

    38

    文章

    7366

    瀏覽量

    163095
  • MATLAB仿真
    +關(guān)注

    關(guān)注

    4

    文章

    175

    瀏覽量

    19841
  • 機器學(xué)習(xí)
    +關(guān)注

    關(guān)注

    66

    文章

    8306

    瀏覽量

    131845
  • LibSvm
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    6434

原文標(biāo)題:機器學(xué)習(xí)相關(guān)介紹(17)——支持向量機(兵(車)王問題MATLAB程序)

文章出處:【微信號:行業(yè)學(xué)習(xí)與研究,微信公眾號:行業(yè)學(xué)習(xí)與研究】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    #硬聲創(chuàng)作季 人工智能入門課程:16. [2.11.1]--支持向量問題程序設(shè)計)

    向量人工智能機器學(xué)習(xí)
    Mr_haohao
    發(fā)布于 :2022年09月21日 11:14:16

    四種支持向量用于函數(shù)擬合與模式識別的Matlab示例程序

    四種支持向量用于函數(shù)擬合與模式識別的Matlab示例程序,內(nèi)容主要在四個文件夾里面[hide] [/hide]
    發(fā)表于 03-13 15:46

    基于支持向量的分類問題

    小菜鳥一枚 ,有哪位大神能提供部分基于支持向量積的分類鑒別問題的MATLAB編碼,思路過程,不勝感激
    發(fā)表于 04-03 18:54

    特征加權(quán)支持向量

    該文針對現(xiàn)有的加權(quán)支持向量(WSVM)和模糊支持向量(FSVM)只考慮樣本重要性而沒有考慮特
    發(fā)表于 11-21 11:15 ?15次下載

    基于改進支持向量的貨幣識別研究

    首先,預(yù)抽取支持向量以減少訓(xùn)練樣本數(shù)量,大大縮減訓(xùn)練時間;然后,用縮減后的樣本對改進后的分類支持向量進行貨幣識別,改進后的
    發(fā)表于 12-14 14:57 ?14次下載

    基于支持向量(SVM)的工業(yè)過程辨識

    支持向量應(yīng)用到典型的時變、非線性工業(yè)過程 連續(xù)攪拌反應(yīng)釜的辨識中, 并與BP 神經(jīng)網(wǎng)絡(luò)建模相比較, 仿真結(jié)果表明了支持向量
    發(fā)表于 03-30 16:12 ?42次下載
    基于<b class='flag-5'>支持</b><b class='flag-5'>向量</b><b class='flag-5'>機</b>(SVM)的工業(yè)過程辨識

    基于支持向量的圖書館借閱量預(yù)測_麗華

    基于支持向量的圖書館借閱量預(yù)測_麗華
    發(fā)表于 03-16 08:59 ?0次下載

    支持向量的故障預(yù)測模型

    針對現(xiàn)有的故障預(yù)測技術(shù)無法從整體上反映系統(tǒng)性能下降趨勢等問題,提出一種基于健康度分析的故障預(yù)測方法。首先,在支持向量回歸算法基礎(chǔ)上構(gòu)造多輸出支持
    發(fā)表于 12-29 11:24 ?0次下載

    MATLAB的循環(huán)向量化編程方法的詳細(xì)資料研究

    在簡要介紹MATLAB軟件基礎(chǔ)上,探討了MABLAB傳統(tǒng)循環(huán)結(jié)構(gòu)編程思想及循環(huán)向量化編程思想。通過實例對循環(huán)結(jié)構(gòu)編程與循環(huán)向量化編程進行比較。說明了循環(huán)向量化編程的優(yōu)點。循環(huán)
    發(fā)表于 08-28 17:46 ?4次下載

    OpenCV機器學(xué)習(xí)SVM支持向量的分類程序免費下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是OpenCV機器學(xué)習(xí)SVM支持向量的分類程序免費下載。
    發(fā)表于 10-09 11:45 ?5次下載

    什么是支持向量 什么是支持向量

    支持向量,英文為Support Vector Machine,簡稱SV(論文中一般簡稱SVM)。它是一 種監(jiān)督式學(xué)習(xí)的方法,它廣泛的應(yīng)用于統(tǒng)計分類以及回歸分析中。
    發(fā)表于 01-28 16:01 ?2.2w次閱讀
    什么是<b class='flag-5'>支持</b><b class='flag-5'>向量</b><b class='flag-5'>機</b> 什么是<b class='flag-5'>支持</b><b class='flag-5'>向量</b>

    支持向量網(wǎng)絡(luò)搜索優(yōu)化應(yīng)用程序下載

    支持向量網(wǎng)絡(luò)搜索優(yōu)化應(yīng)用程序下載
    發(fā)表于 04-20 09:51 ?0次下載

    支持向量(原問題和對偶問題)

    本文主要介紹原問題(PRIME PROBLEM)和對偶問題(DUAL PROBLEM),支持向量優(yōu)化問題可通過原問題向?qū)ε紗栴}的轉(zhuǎn)化求解。
    的頭像 發(fā)表于 05-25 09:31 ?1111次閱讀

    支持向量問題描述)

    本文主要內(nèi)容為采用支持向量(SVM)解決國際象棋問題。
    的頭像 發(fā)表于 06-09 17:52 ?1113次閱讀
    <b class='flag-5'>支持</b><b class='flag-5'>向量</b><b class='flag-5'>機</b>(<b class='flag-5'>兵</b><b class='flag-5'>王</b>問題描述)

    支持向量問題程序設(shè)計)

    問題的樣本數(shù)據(jù)集包含六個維度,六個維度代表三個棋子在棋盤中的位置??倶颖緮?shù)為28056個,其中,正樣本(和棋)數(shù)量為2796個,負(fù)樣本(白方勝)數(shù)量為25260個。
    的頭像 發(fā)表于 06-12 16:06 ?552次閱讀
    <b class='flag-5'>支持</b><b class='flag-5'>向量</b><b class='flag-5'>機</b>(<b class='flag-5'>兵</b>(<b class='flag-5'>車</b>)<b class='flag-5'>王</b>問題<b class='flag-5'>程序</b>設(shè)計)