bri*_*itt 5 java nlp classification weka
我的weka输出显示:
Correctly Classified Instances 32083 94.0244 %
Incorrectly Classified Instances 2039 5.9756 %
Run Code Online (Sandbox Code Playgroud)
我希望能够打印出不正确的实例,以便我可以进行调整并理解为什么它们被错误分类.
我的打印方法如下.
我试图找到其预测类值不等于实际类值的实例,然后打印其属性.
但是当我这样做时,属性枚举不打印任何东西.
有没有人建议如何打印错误分类的实例?
非常感谢.
private void printSummary(Classifier base, Evaluation eval, Instances data) throws Exception
{
// output evaluation
System.out.println();
System.out.println("=== Setup ===");
System.out.println("Classifier: " + classifierName.getClass().getName() + " " + Utils.joinOptions(base.getOptions()));
System.out.println("Dataset: " + data.relationName());
System.out.println();
// output predictions
System.out.println("# - actual - predicted - error - distribution - token");
for (int i = 0; i < data.numInstances(); i++)
{
double pred = base.classifyInstance(data.instance(i));
double actual = data.instance(i).classValue();
double[] dist = base.distributionForInstance(data.instance(i));
if (pred != actual)
{
System.out.print((i+1));
System.out.print(" - ");
System.out.print(data.instance(i).toString(data.classIndex()));
System.out.print(" - ");
System.out.print(data.classAttribute().value((int) pred));
System.out.print(" - ");
if (pred != data.instance(i).classValue())
System.out.print("yes");
else
System.out.print("no");
System.out.print(" - ");
System.out.print(Utils.arrayToString(dist));
System.out.print(" - ");
data.instance(i).enumerateAttributes().toString();
System.out.println();
}
}
System.out.println(eval.toSummaryString());
System.out.println(eval.toClassDetailsString());
System.out.println(eval.toMatrixString());
}
Run Code Online (Sandbox Code Playgroud)
我这样做:
| 归档时间: |
|
| 查看次数: |
4771 次 |
| 最近记录: |