gpt4 book ai didi

java - WEKA 分类器返回一种分类,无论值如何

转载 作者:行者123 更新时间:2023-12-02 10:40:52 25 4
gpt4 key购买 nike

我正在尝试在 Android 应用程序中使用/导入 WEKA 3.8.3(GUI 分类器)中制作的 J48 分类器,但无论传入值如何,生成的类仅返回一个分类结果。

原始数据集looks like this ,所以我在 SO 上找到的第一个答案是使用 SMOTE 来弥补这一点。我找不到 SMOTE,但从我可以看到 ClassBalancer 过滤器实现了相同的结果。结果数据looks like this .

These是原始数据的结果,these是过滤数据的结果。

使用原始数据的 J48 类仅返回值 2.0,这与步行相对应,我猜测这是因为步行是迄今为止训练集中最常见的分类。使用过滤数据的 J48 类仅返回值 1.0,我无法完全解释。

我已经尝试将以前项目中的工作分类器加载到应用程序中;这个(J48)分类器确实返回了不同的值。我还尝试手动删除数据行,直到所有 Activity 具有相同数量的条目,但这并没有解决问题。我还尝试输入一个我知道应该与手动“坐”相对应的值,但这也不起作用。

当我将值打印到日志时,发送到分类器的实例看起来非常好,所以我认为这与输入无关。以防万一我遗漏了一些明显的东西,我将添加以下代码:

    public double createInstances(double x, double y, double z){

double result = 0;

Instances dataRaw = new Instances("TestInstances", atts, 3);
dataRaw.setClassIndex(dataRaw.numAttributes()-1);

Log.d(TAG,"Rawdata:" + dataRaw);

Instance inst = new DenseInstance(3);
inst.setDataset(dataRaw);
inst.setValue(accel_x,x);
inst.setValue(accel_y,y);
inst.setValue(accel_z,z);

Log.d(TAG,"NEWDATARAW:" + inst);

try {
result = weka.classifyInstance(inst);
Log.d(TAG,"RESULT:" + result);

}

catch (Exception e){
Log.e(TAG,"DID NOT WORK:" + e);
}

return result;
}

我还确保属性被添加到属性 ArrayList“atts”中。

我能想到的唯一剩下的选项是数据格式有问题,但我想在创建算法时它已经显示出问题的迹象。 This是包含数据的 ARFF 文件的示例。

我尝试在默认的 J48 算法中输入两个数据集(原始/过滤后),并且在一个禁用所有修剪选项的数据集(以防修剪其他 Activity )的情况下输入数据集,但这些分类器都没有返回多个 Activity 。

我认为这就是所有相关信息,但如果我遗漏了任何内容,请告诉我,以便我添加。我相当确定问题出在分类器本身的某个地方,但我不知道它到底是什么。

最佳答案

事实证明,WEKA 在classifyInstance 方法中放置了以下代码:

// set class value to missing
s[i.classIndex()] = null;

这导致数组中的最后一个值(在本例中为 accel_z 值)被设置为 null,导致分类器始终返回相同的值,因为这是分类器中的第一次检查(请注意“if( i[2] == null”语句):

static double N69cd8e58128(Object []i) {
double p = Double.NaN;
if (i[2] == null) {
p = 1;
} else if (((Double) i[2]).doubleValue() <= 6.43) {
p = WekaClassifier.Nad3034129(i);
} else if (((Double) i[2]).doubleValue() > 6.43) {
p = WekaClassifier.N26ef16ed242(i);
}
return p;
}

我不确定这条线通常有什么用途,但删除它似乎已经解决了问题。

关于java - WEKA 分类器返回一种分类,无论值如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52925529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com