2016-02-20 51 views
0

在MATLAB R2015b fitcsvm中有一個選項用於設置Support vector machine(SVM)模型中的誤算成本。這是文檔:如何在MATLAB SVM模型中設置誤算成本?

'成本' - Misclassification cost square matrix |結構數組 Misclassification成本,指定爲逗號分隔對 ,由'Cost'和一個方矩陣或結構組成。如果指定:

的方陣成本,那麼成本(I,J)是 點分成類j的成本,如果其真正的班是我(即行對應 到真正的類和列對應於預測的類)。 要指定 成本的相應行和列的類別順序,請另外指定ClassNames名稱 - 值對參數。 結構S,那麼它必須有兩個字段:S.ClassNames,其中 包含作爲與Y 相同數據類型的變量的類名稱S.ClassificationCosts,其中包含行的成本矩陣和 列, S.ClassNames對於兩階段學習,如果您指定一個成本矩陣,那麼軟件會通過合併代碼 矩陣中描述的罰款來更新先前的 概率。隨後,成本矩陣重置爲默認值。有關 BoxConstraint,Cost,Prior,Standardize和Weights的關係和算法行爲的更多詳細信息,請參閱算法。

默認值爲:

對於一個級的學習,成本= 0 對於雙級的學習,成本(I,J)= 1,如果I〜= j和成本(I,J) = 0,如果我= j。示例:'Cost',[0,1; 2,0]

數據類型:double |單| |結構

  • 什麼是SVM此選項的影響?這類似於將靈敏度和特異性結合起來並將更多的重量與另一個相比較嗎?

  • 在例子([0,1;2,0])中,1和2的含義是什麼?

回答

1

此選項在SVM中的作用是什麼?這類似於將靈敏度和特異性結合起來並將更多的重量與另一個相比較嗎?

是的,這些只是用於更專注於特定類別的權重。在SVM中,這是通過更多地懲罰指定類別的錯誤分類而獲得的,或者等價地 - 在雙優化過程中改變對應拉格朗日乘數的限制。

在例子([0,1; 2,0])中,1和2的含義是什麼?

該矩陣是形式的

0 1 
2 0 

因此它意味着:

  • 如果點具有1類和我們爲它分配第1類,罰分是0(正確分類)
  • 如果點有1級,我們將其分配給2級,則罰款爲
  • 如果點h作爲2類,我們爲它分配1級,罰
  • 如果點有2級,我們給它分配2級,罰爲0(正確分類)

因此,我們關心兩倍 2類的比類1.在SVM這個正確的分類將意味着成本形式

1/2 ||w||^2 + C SUM_{i=1}^N xi_i cost_i 

和cost_i的= 1,如果類的第i個樣本爲1,且cost_i = 2否則。正如您所看到的 - 只需在SVM成本中爲錯誤分類術語添加權重。