理解Weka中的成本敏感评估(成本矩阵)

时间:2014-06-30 22:57:09

标签: weka

我正在使用Weka 3.7.1

我试图用weka分析棒球的运动预测。我想使用成本矩阵,因为在我赌博游戏的体育博彩中,不同结果的成本并不相同。我的数据集很简单:它是一组具有标称类{WIN,LOSS}的预测。对于这个问题,属性不是问题。

在WEKA Explorer中,加载我的arff文件后,我可以从

设置成本矩阵
  

分类 - >更多选项...->成本敏感的评估 - >设置...->有   在I之后出现在weka成本敏感评估中的2x2网格   设置类== 2

以下是我想要输入成本矩阵的值:

  • 正确归类为损失,成本为0(我没有下注)
  • 错误地归类为损失,费用为0(我没有下注)
  • 正确归类为胜利,费用为-.909(我赢了.909美元)
  • 错误地归类为胜利,成本为1.0(我输了一美元)

注意这是一个成本矩阵'我将利润设定为负值(与成本相反,是利润);并且我将损失设置为正数(因为当我输掉赌注时,我付出了代价)。

经过一番反思后,我决定使用以下网格,如果我做得正确,我也不知道如果我这样做了,请告诉我:

 - a   b       <---- "classified as"
 - 0   1.0     a=LOSS
 - 0   -.909   b=WIN

这是我可能错误的逻辑:( col,row)

(0,0) of grid=0: classified as LOSS, and was LOSS
(0,1) of grid=0: classified as LOSS, but was WIN
(1,0) of grid=1.0; classified as WIN, but was LOSS
(1,1) of grid=.909; classified as WIN, was WIN

当然(0,0)和(0,1)代表预测LOSS的分类器,在这些情况下我不下注,因此没有成本。

另一方面,

(1,0)和(1,1)表示预测WIN的分类器,在这些情况下我下注,因此存在相关成本。

另一个非常混乱的项目:在我设置成本矩阵并执行分类器之后,输出报告包含以下内容:

评估成本矩阵:

 0    1   
 0    0.91   <--- notice that this is not a negative value!

正如您所看到的,当我实际输入-.909时,报告(1,1)中的值为0.91。我确实找到了关于这个主题的另一篇文章,但它没有解释为什么负值变为正值。

提前谢谢你。请注意,这些是有问题的;但是,如果你想提供一些指导,我会非常高兴,因为我还是一个新手,仍在努力建立一个理解框架。

1 个答案:

答案 0 :(得分:6)

成本矩阵是一种改变决策边界阈值的方法。 它将在下面的论文中解释。

http://research.ijcaonline.org/volume44/number13/pxc3878677.pdf

通过查看您的成本矩阵,似乎需要进行一些修正。

e.g。

0    cost
cost 0

仅供参考: 考虑遵循成本矩阵:

a b
c d

这是我已经观察到的两类问题的成本矩阵的一般格式。

现在,如果您在某个位置或某个位置进行了分类,则无需合并费用。

所以重点在于,只有在存在错误分类时,成本才会出现。即在b或c位置。

但是,由于您已将负值视为地方成本,因此会产生混淆。 (请尽可能解释相同的内容,即负成本是什么意思。)

示例成本矩阵可以是:

0  1
10 0

表示将例子分类为误报的成本比假阴性的类似例子的错误分类成本高10倍。此外,当正确分类示例时,没有成本。