【发布时间】:2014-08-21 09:59:18
【问题描述】:
我正在使用 Weka 3.7.1
我正在尝试使用 weka 分析棒球运动预测。我想使用成本矩阵,因为在我赌博的体育博彩中,不同结果的成本是不一样的。我的数据集很简单:它是一组具有标称类 {WIN,LOSS} 的预测。对于这个问题,属性不是问题。
在 WEKA Explorer 中,加载我的 arff 文件后,我可以从
设置成本矩阵分类->更多选项...->成本敏感评估->设置...->有 在我之后出现在 weka 成本敏感评估中的 2x2 网格 设置类 == 2
以下是我想输入成本矩阵的值:
- 正确归类为损失,成本为 0(我没有下注)
- 错误归类为损失,成本为 0(我没有下注)
- 正确分类为赢,成本为 -.909(我赢了 0.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) 代表预测损失的分类器,在这些情况下我不下注,因此没有成本。
另一方面,(1,0) 和 (1,1) 表示预测获胜的分类器,在这些情况下,我下注,因此存在相关成本。
另外一个非常令人困惑的项目:在我设置成本矩阵并执行分类器后,输出报告包含以下内容:
评估成本矩阵:
0 1
0 0.91 <--- notice that this is not a negative value!
如您所见,当我实际输入 -.909 时,报告中的 (1,1) 为 0.91。我确实找到了关于这个主题的另一篇文章,但它没有解释为什么负值变成正值。
提前谢谢你。请注意,这些都是可以回答的问题;但是,如果您想提供一些指导,我会很高兴,因为我是一个仍在尝试建立理解框架的新手。
【问题讨论】:
-
嗨,我正要问这个确切的问题。你得出结论了吗?这行得通吗?当我将值放入 Weka 上的成本/收益分析窗口时,它似乎起作用了,就像这样。 dowce.com/~ZbX 非常感谢任何帮助:) -Jason
-
不幸的是我还没有弄清楚这一点。我认为答案将源于对底层数学模型的理解。具体来说,成本矩阵中的值如何与分类器交互?您可以在 user3598769 的帖子中看到,他表示对使用负值作为成本感到困惑。但在棒球投注的背景下,这是完全合理的。如果您找到正确的使用方法,请回帖,我会给您积分。
-
就我的上下文而言,它也很有意义,我不记得任何文档中关于这是“坏”的任何内容。我认为这可能取决于分类器是如何实现的,它是否有一些假设成本函数是 user3598769 暗示/预期的形式。在 AveragedNDependenceEstimator 的情况下,它似乎在 UI 中工作。我只是想知道其中一些算法在幕后发生了什么,所以我正在考虑弄清楚 eclipse 环境,这样我就可以在调试器的分类器中断点,看看到底发生了什么。
-
使用 AveragedNDependenceEstimator 我认为它使用成本矩阵来指导分类任务。如果我没记错的话,根据最小错误做出决定。这意味着必须按照我指定的方式处理成本矩阵,而不是用某种软糖来处理。
标签: weka