繁体   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