首页 > 解决方案 > Type mismatch: cannot convert from J48 to Classifier

问题描述

I am a newcomer to Weka. And I want to use Weka self-training model. I have imported weka.jar when I created the project. But I want to know how to solve this problem? Thank you in advance for you help.

enter image description here

import java.io.File;

import weka.classifiers.Classifier;
import weka.classifiers.trees.J48;
import weka.core.Instances;
import weka.core.converters.ArffLoader;

public class J48 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Classifier m_classifier = new J48();

标签: javaweka

解决方案


您创建了一个名为 的新类J48,它不继承任何基类或实现任何接口,因此错误消息是正确的:

无法从 J48 转换为分类器

您可能想要实例化 Weka 的 J48 分类器。您可以通过使用其完全限定名称来做到这一点:

Classifier m_classifier = new weka.classifiers.trees.J48();

(另请参阅:Java:import 语句与完全限定名称?

但是您通常应该避免这些名称冲突并将您的类重命名为不同的名称,例如:

public class J48Demo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Classifier m_classifier = new J48();

您已经导入了正确的包,因此通过重命名您的类来解决名称冲突 new J48()将引用正确的类。


推荐阅读