我不想像这样将Weka分类器的名称硬编码到我的Java中:
Classifier cls = new J48();
分类符是Weka类。
相反,我更愿意将值“J48”存储在数据库表varchar列中。
关于如何将包含“J48”的Java字符串转换为Weka类型的任何想法?我没有成功尝试这样的事情:
cls = Class.forName("weka.classifiers.trees.J48;");
J48是决策树的Weka类的名称。
答案 0 :(得分:2)
快速解决方案:
Object obj = Class.forName("weka.classifiers.trees.J48").newInstance();
Classifier cls = Class.forName("weka.classifiers.trees.J48").cast(obj);
J48应该有0个param构造函数。
答案 1 :(得分:1)
有一个更好的单行版
Classifier classifier = AbstractClassifier.forName(className, options);
或者以下版本的Weka
Classifier classifier = Classifier.forName(className, options);
答案 2 :(得分:0)
技术上答案相同,但只是一个较短的单行版本
Classifier cls = (Classifier) Class.forName("weka.classifiers.trees.J48").newInstance();