簡體   English   中英

如何在MATLAB SVM模型中設置錯誤計算成本?

[英]How set miscalculation cost in MATLAB SVM model?

MATLAB R2015b fitcsvm有一個選項可以在Support vector machine(SVM)模型中設置錯誤計算成本。 這是文檔:

'成本'-分類錯誤的成本方矩陣| 結構數組分類錯誤成本,指定為由“成本”和方矩陣或結構組成的逗號分隔對。 如果指定:

方陣Cost,然后Cost(i,j)是將點分類為類j(如果其真實類為i)的成本(即,行對應於真實類,列對應於預測類)。 要為Cost的相應行和列指定類順序,請另外指定ClassNames名稱-值對參數。 結構S,那么它必須具有兩個字段:S.ClassNames,它包含類名作為與Y相同數據類型的變量S.ClassificationCosts,它包含具有按S.ClassNames排序的行和列的成本矩陣兩類學習,如果您指定成本矩陣,則軟件會通過合並成本矩陣中所述的懲罰來更新先驗概率。 隨后,成本矩陣重置為默認值。 有關BoxConstraint,成本,優先級,標准化和權重的關系和算法行為的更多詳細信息,請參閱算法。

默認值為:

對於一類學習,Cost =0。對於兩類學習,如果i〜= j,則Cost(i,j)= 1,如果i = j,則Cost(i,j)= 0。 示例:“費用”,[0,1; 2,0]

數據類型:double | 結構

  • 此選項在SVM中有什么作用? 這與將敏感性,特異性和體重相結合是否更像另一個?

  • 示例( [0,1;2,0] )中1和2的明確含義是什么?

此選項在SVM中有什么作用? 這與將敏感性,特異性和體重相結合是否更像另一個?

是的,這些只是用於更專注於特定班級的權重。 在SVM中,這是通過對指定類別的誤分類進行更多懲罰,或​​等效地-在雙重優化過程中更改相應滯后范圍乘數的極限來實現的。

示例([0,1; 2,0])中1和2的明確含義是什么?

該矩陣的形式

0 1
2 0

因此,這意味着:

  • 如果點的類別為1,而我們將其指定為類別1,則懲罰為0(正確的分類)
  • 如果點的類別為1,而我們將其指定為類別2,則懲罰為1
  • 如果點的類別為2,我們將其分配為類別1,則罰則為2
  • 如果點的類別為2,我們將其分配為類別2,則懲罰為0(正確的分類)

因此,我們對2類的正確分類的關注程度是對1類的兩倍 。在SVM中,這意味着代價為

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

如果第i個樣本的類別為1,則cost_i = 1,否則,cost_i = 2。 如您所見-只需在SVM成本中為未分類項增加權重即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM