我正在使用Weka 3.7.1
我试图用weka分析棒球的运动预测.我想使用成本矩阵,因为在我赌博游戏的体育博彩中,不同结果的成本并不相同.我的数据集很简单:它是一组具有标称类{WIN,LOSS}的预测.对于这个问题,属性不是问题.
在WEKA Explorer中,加载我的arff文件后,我可以设置成本矩阵
分类 - >更多选项...->成本敏感的评估 - >设置...->我设置类== 2后,在weka成本敏感的评估中出现了一个2x2网格
以下是我想要输入成本矩阵的值:
观察到这是一个"成本矩阵",我将我的利润设定为负值(与成本相反,它是利润); 并且我将损失设置为正数(因为当我输掉赌注时,我付出了代价).
经过一番反思后我决定使用下面的网格,如果我没有正确的话,我也不知道如果我这样做了,请告诉我:
- 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) 如果我宣布以下内容:
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 - 例如,有时我可能会使用引用类型.
我有一个Delphi应用程序,它生成一个数据blob,我目前正在以xml的形式写入文件系统.然后由C#.Net应用程序读入该数据以进行进一步处理.
问题是对象图很大,生成的xml文件大小为2 GB +.编写xml文件需要相对较长的时间,并且还要读取它.
而不是写入文件系统,如何在RAM中传输数据更快?
我有两个应用程序的源代码和编译器.我在一个应用程序中使用.Net版本4.0和VS2010.另一个我正在使用Delphi 5(我可以访问更高版本,但我不确定迁移是否有帮助).
更新:感谢所有的建议,这需要处理很多.我会在进一步审查后回复.
一段时间以来一直困扰着我的东西我终于决定在stackoverflow上问这里了:
为什么在DEBUG模式下执行Windows窗体项目时,当我单击暂停按钮时,它将始终在Application.Run上停止?
Application.Run(new FormGuiV2()); // pressing pause stops here
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎是一个缺陷.为什么它不会暂停在正在执行的代码行上?调试时,在堆栈顶部停止是没有用的.我想我必须错误地使用调试器?
为了解决这个问题,我必须知道正在执行哪些代码行并放置一个调试点,这很容易出错,有时需要耗费时间来追踪我想放置调试点的位置.
我想知道点击暂停按钮的正确方法,并让它实际停在执行的代码行.
谢谢
我有以下 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 的突出显示:
是的我先做了功课.我仍然被困住了.首先,请允许我对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类型的对象并重建.为此,我尝试了以下方法:
右键单击我的Windows窗体项目,添加新项目,图标,保存所有
在步骤1中打开图标文件,在其中绘制一些文本,保存所有文本
右键单击项目并选择rebuild(没有错误,看起来不错)
左键单击"指定应用程序数据" - >"文件",在项目中选择*.ico(注意:我可以清楚地看到它,并在对话框中显示为index0)
左键单击"常规信息" - >"显示图标" - >浏览*.ico(位于MyProject.Gui.exe的项目文件夹中)
保存所有并重建所有
...我仍然收到相同的错误消息.
如何"重新编译您的EXE以包含图标并且消息将消失"?