小编sap*_*ket的帖子

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

我正在使用Weka 3.7.1

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

在WEKA Explorer中,加载我的arff文件后,我可以设置成本矩阵

分类 - >更多选项...->成本敏感的评估 - >设置...->我设置类== 2后,在weka成本敏感的评估中出现了一个2x2网格

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

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

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

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

 - a   b       <---- "classified as"
 - 0   1.0     a=LOSS
 - 0   -.909   b=WIN
Run Code Online (Sandbox Code Playgroud)

这可能是我错误的逻辑:( 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
Run Code Online (Sandbox Code Playgroud)

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

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

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

评估成本矩阵:

 0    1   
 0    0.91   <--- notice …
Run Code Online (Sandbox Code Playgroud)

weka

2
推荐指数
1
解决办法
6272
查看次数

C#如何用null而不是零来初始化泛型int数组?

如果我宣布以下内容:

    public T[] GetFoo<T>(int length)
    {
        return new T[length];
    }
Run Code Online (Sandbox Code Playgroud)

在客户端代码中我调用上面这样:

int[] foo = GetFoo<int>(3);
Run Code Online (Sandbox Code Playgroud)

然后foo[]将像这样初始化:

foo[0]=0;
foo[1]=0;
foo[2]=0;
Run Code Online (Sandbox Code Playgroud)

有没有办法可以让它像这样初始化?

foo[0]=null;
foo[1]=null;
foo[2]=null;
Run Code Online (Sandbox Code Playgroud)

我问,因为'0'有特殊含义,我想用'null'代替表示数组元素尚未设置.请注意,我使用的是泛型,有时我不会使用int - 例如,有时我可能会使用引用类型.

c# generics nullable

2
推荐指数
1
解决办法
227
查看次数

如何在不写入磁盘的情况下将XML从Delphi传递到C#?

我有一个Delphi应用程序,它生成一个数据blob,我目前正在以xml的形式写入文件系统.然后由C#.Net应用程序读入该数据以进行进一步处理.

问题是对象图很大,生成的xml文件大小为2 GB +.编写xml文件需要相对较长的时间,并且还要读取它.

而不是写入文件系统,如何在RAM中传输数据更快?

我有两个应用程序的源代码和编译器.我在一个应用程序中使用.Net版本4.0和VS2010.另一个我正在使用Delphi 5(我可以访问更高版本,但我不确定迁移是否有帮助).

更新:感谢所有的建议,这需要处理很多.我会在进一步审查后回复.

c# delphi ipc

1
推荐指数
1
解决办法
867
查看次数

视觉工作室ide按下暂停按钮停在RUN而不是我想要的地方?

一段时间以来一直困扰着我的东西我终于决定在stackoverflow上问这里了:

为什么在DEBUG模式下执行Windows窗体项目时,当我单击暂停按钮时,它将始终在Application.Run上停止?

 Application.Run(new FormGuiV2()); // pressing pause stops here
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎是一个缺陷.为什么它不会暂停在正在执行的代码行上?调试时,在堆栈顶部停止是没有用的.我想我必须错误地使用调试器?

为了解决这个问题,我必须知道正在执行哪些代码行并放置一个调试点,这很容易出错,有时需要耗费时间来追踪我想放置调试点的位置.

我想知道点击暂停按钮的正确方法,并让它实际停在执行的代码行.

谢谢

debugging visual-studio-2010 winforms

1
推荐指数
1
解决办法
320
查看次数

SQLite Select...Where 语句“没有这样的列”错误

我有以下 SQLite 语句:

"SELECT * FROM HISTORICALPICKS WHERE BETTYPE = " + betType.ToString().ToUpper() + " ORDER BY DATETIME ASC"
Run Code Online (Sandbox Code Playgroud)

而 betType.ToString().ToUpper() 是字符串“ATS”

出于某种原因,我收到以下错误:

System.Data.SQLite.SQLiteException : SQL logic error or missing database
no such column: ATS
Run Code Online (Sandbox Code Playgroud)

……这让我很困惑。ATS 不是列。BETTYPE 是列。我希望它选择在 BETTYPE 列中具有“ATS”的行。

我的预感是语法有问题。这是一张显示表名和列名的图片,以及值 ATS 的突出显示:

在此处输入图片说明

sqlite

1
推荐指数
1
解决办法
7485
查看次数

InstallShield:无法提取索引为0的图标(对于傻瓜)

是的我先做了功课.我仍然被困住了.首先,请允许我对Microsoft弃用Installer项目类型表示不满.他们真丢人.

回到我的问题,这是错误:

Error   3   -3204: Cannot extract icon with index 0 from file <some_path>\obj\Debug\MyProject.Gui.exe.
Run Code Online (Sandbox Code Playgroud)

尝试#1:InstallShield:无法提取索引为0 vb.net的图标

- 答案说在我的exe中包含一个type类型的对象并重建.为此,我尝试了以下方法:

  1. 右键单击我的Windows窗体项目,添加新项目,图标,保存所有

  2. 在步骤1中打开图标文件,在其中绘制一些文本,保存所有文本

  3. 右键单击项目并选择rebuild(没有错误,看起来不错)

  4. 左键单击"指定应用程序数据" - >"文件",在项目中选择*.ico(注意:我可以清楚地看到它,并在对话框中显示为index0)

  5. 左键单击"常规信息" - >"显示图标" - >浏览*.ico(位于MyProject.Gui.exe的项目文件夹中)

  6. 保存所有并重建所有

...我仍然收到相同的错误消息.

如何"重新编译您的EXE以包含图标并且消息将消失"?

c# installer visual-studio-2012 installshield-le

0
推荐指数
1
解决办法
9016
查看次数