[英]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
因此,这意味着:
因此,我们对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.