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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人工智能 > 循环神经网络 >内容正文

循环神经网络

机器学习:林智仁libsvm 工具箱 在matlab下的应用总结

發(fā)布時(shí)間:2025/3/21 循环神经网络 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习:林智仁libsvm 工具箱 在matlab下的应用总结 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

  • 簡(jiǎn)單介紹一下機(jī)器學(xué)習(xí)中的libsvm
  • libsvm工具箱在matlab下的安裝
  • libsvm工具箱在matlab下的應(yīng)用
  • libsvm的實(shí)際應(yīng)用
  • 小結(jié)

  • 一、機(jī)器學(xué)習(xí)中的libsvm介紹

    支持向量機(jī)(SUPPORT VECTOR MACHINE),是非常強(qiáng)大且流行的算法,在一些情況下,能面向一些復(fù)雜的非線性問(wèn)題提供比邏輯回歸或神經(jīng)網(wǎng)絡(luò)要更加簡(jiǎn)潔的解決方案。?
    下面具體講一下SVM?
    ?
    ?

    LIBSVM是臺(tái)灣大學(xué)林智仁(Lin Chih-Jen)教授等開(kāi)發(fā)設(shè)計(jì)的一個(gè)簡(jiǎn)單、易于使用和快速有效的SVM模式識(shí)別與回歸的軟件包,他不但提供了編譯好的可在Windows系列系統(tǒng)的執(zhí)行文件,還提供了源代碼,方便改進(jìn)、修改以及在其它操作系統(tǒng)上應(yīng)用;該軟件對(duì)SVM所涉及的參數(shù)調(diào)節(jié)相對(duì)比較少,提供了很多的默認(rèn)參數(shù),利用這些默認(rèn)參數(shù)可以解決很多問(wèn)題;并提供了交互檢驗(yàn)(Cross Validation)的功能。該軟件可以解決C-SVM、ν-SVM、ε-SVR和ν-SVR等問(wèn)題,包括基于一對(duì)一算法的多類(lèi)模式識(shí)別問(wèn)題。

    下面一個(gè)網(wǎng)站里面是大牛寫(xiě)的關(guān)于libsvm的一些東西,可以看看?關(guān)于libsvm的那點(diǎn)破事

    二、libsvm在matlab下的安裝

    1、首先下載libsvm工具箱

    下載網(wǎng)址:LIBSVM a library for support vector machines?
    上述網(wǎng)址是林智仁官網(wǎng),可以從github中下載最新版本的libsvm

    2、接著是將下載的工具箱安裝

  • 將libsvm-mat所在工具箱添加到matlab工作搜索目錄?
    (File ——》?
    Set Path… ——》?
    Add with Subfolders…);
  • 選擇編譯器(mex -setup);
  • 編譯文件(make)。
  • 詳細(xì)的步驟講解請(qǐng)看?LIBSVM 在matlab下的安裝?
    這里我只說(shuō)我遇到的問(wèn)題,在選擇編譯器的時(shí)候不管是 y還是n 都找不到自己所安裝的編譯器,有可能是安裝順序的問(wèn)題,我所解決的方法是,講編譯器和matlab卸載,然后重新安裝,重安裝的時(shí)候注意先安裝編譯器,再安裝matlab

    在編譯文件make的時(shí)候出現(xiàn)找不到文件,需要進(jìn)入到libsvm-master>matlab 中再make就可以了

    三、 libsvm工具箱在matlab下的應(yīng)用

    詳細(xì)的使用說(shuō)明請(qǐng)看網(wǎng)址?如何使用LIBSVM進(jìn)行分類(lèi)

    <code class="hljs delphi has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;"><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//%獲取traindata、trainlabel,testdata、testlabel</span> traindata =[ train( : , <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span> ), train( : , <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">4</span> ), train( : , <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">8</span> ), train( : , <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">10</span> )]; trainlabel = train( : , <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">14</span> );testdata = [ test( : , <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span> ), test( : , <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">4</span> ), test( : , <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">8</span> ), test( : , <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">10</span> ) ]; testlabel = test( : , <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">14</span> );<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//%用traindata和trainlabel來(lái)訓(xùn)練出一個(gè)模型,引號(hào)里面參數(shù)的詳細(xì)解釋看上述網(wǎng)址的詳解</span> model = svmtrain(trainlabel ,traindata,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'-s 0 -t 2 -c 4 -g 1.2 -b 1'</span>); save model model<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//%用testdata、testlabel和訓(xùn)練出的模型進(jìn)行做預(yù)測(cè)</span> [plabel, accuracy, dec_values] = svmpredict(testlabel,testdata,model,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'-b 1'</span>); save <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">label</span>.txt plabel -ascii<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//%evaluate training results evaluate是自己寫(xiě)的一個(gè)評(píng)估函數(shù)</span> [TP,FN,FP,TN,POD,<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">FAR</span>,CSI,AUC,P,R,F] = Evaluate(plabel,testlabel); save result P R F AUC CSI POD <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">FAR</span> TP FN FP TN dec_values </code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li></ul>

    四、 libsvm的實(shí)際應(yīng)用

    1、獲取原始數(shù)據(jù)

    獲取所需要的特征值和標(biāo)簽

    2、將數(shù)據(jù)進(jìn)行預(yù)處理

    差分、歸一化?
    (1)差分?
    由于氣象中的特征,差分后的特征值會(huì)包含一些有用的信息,所以需要差分。新的特征值=原始特征值+差分(差分用的是向前差分d(t)=data(t)-data(t-1))?
    (2)歸一化?
    現(xiàn)在的歸一化方法有兩種max_min歸一化和mu_sigma歸一化。公式如下:?
    new—data=(data-min)/(max-min)?
    new—data=(data-mu)/sigma

    經(jīng)對(duì)比結(jié)果發(fā)現(xiàn)第一種歸一化方法更適用于我們的應(yīng)用。

    3、訓(xùn)練、預(yù)測(cè)

    這里的訓(xùn)練、預(yù)測(cè)如‘三、libsvm工具箱在matlab下的應(yīng)用’中的代碼

    4、評(píng)估

    對(duì)評(píng)估結(jié)果分析發(fā)現(xiàn)POD、CSI、FAR達(dá)不到要求,分析可能是由于正例置信度為0.5,即:當(dāng)某一個(gè)樣例的概率大于50%,預(yù)測(cè)此樣例為正樣例。如果想要提高各項(xiàng)預(yù)測(cè)值,需要獲得每個(gè)樣本的預(yù)測(cè)概率以此來(lái)修改置信度。?
    具體解決方法如下?

    如上圖橢圓框出來(lái)的,在訓(xùn)練 svmtrain和預(yù)測(cè) svmpredict的時(shí)候都加上參數(shù)‘-b 1’會(huì)得到 dec_values。 在我們的實(shí)驗(yàn)中(二分,label 有1和-1)dec_values分為2列,第一列為樣例預(yù)測(cè)為-1的概率,第二列為樣例預(yù)測(cè)為1的概率。這樣我們就可以根據(jù)dec_values來(lái)調(diào)整閾值(正例置信度),以達(dá)到提高精確度的效果。

    五、小結(jié)

    通過(guò)這一階段的學(xué)習(xí)我發(fā)現(xiàn),不能怕遇到問(wèn)題,遇到問(wèn)題后不能急仔細(xì)查找各種解決的方法。要仔細(xì)分析。。。心細(xì)。。。

    總結(jié)

    以上是生活随笔為你收集整理的机器学习:林智仁libsvm 工具箱 在matlab下的应用总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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