我正在尝试在Android Studio中使用Weka。我被困在这一行:
linearRegresion.buildClassifier(data);
它的红色下划线说:
未处理的异常:Java.lang.Exception
我正在尝试其他方式和不同的数据集及其在 .buildClassifier 上划线的所有方式
//test:
NaiveBayes nB = new NaiveBayes();
nB.buildClassifier(dataSet); //Unhandled exception
Classifier cModel = (Classifier)new LinearRegression();
cModel.buildClassifier(data); //Unhandled exception
尝试解决此问题数小时,无法在互联网上找到解决方案,我想我只是缺少一些东西,也许我只需要导入更多的东西?
我从教程中执行此操作,因此代码应该可以工作。教程:http://www.ibm.com/developerworks/opensource/library/os-weka3/index.html
整个代码
import weka.*;
import weka.classifiers.trees.J48;
import weka.core.*;
import weka.classifiers.Classifier;
import weka.core.Instance;
import weka.core.Instances;
import weka.classifiers.functions.LinearRegression;
import weka.classifiers.bayes.NaiveBayes;
public class Meni extends Activity {
public void Weka(){
//@ATTRIBUTE houseSize NUMERIC
Attribute a1 = new Attribute("houseSize", 0);
Attribute a2 = new Attribute("lotSize", 1);
Attribute a3 = new Attribute("bedrooms", 2);
Attribute a4 = new Attribute("granite", 3);
Attribute a5 = new Attribute("bathroom", 4);
Attribute a6 = new Attribute("sellingPrice", 5);
//ArrayList attr = new ArrayList();
FastVector attrs = new FastVector();
attrs.addElement(a1);
attrs.addElement(a2);
attrs.addElement(a3);
attrs.addElement(a4);
attrs.addElement(a5);
attrs.addElement(a6);
//@DATA
Instance i1 = new DenseInstance(6);
i1.setValue(a1, 3529);
i1.setValue(a2, 9191);
i1.setValue(a3, 6);
i1.setValue(a4, 0);
i1.setValue(a5, 0);
i1.setValue(a6, 205000);
Instance i2 = new DenseInstance(6);
i2.setValue(a1, 3247);
i2.setValue(a2, 10061);
i2.setValue(a3, 5);
i2.setValue(a4, 1);
i2.setValue(a5, 1);
i2.setValue(a6, 224900);
Instance i3 = new DenseInstance(6);
i3.setValue(a1, 4032);
i3.setValue(a2, 10150);
i3.setValue(a3, 5);
i3.setValue(a4, 0);
i3.setValue(a5, 1);
i3.setValue(a6, 197900);
//set class Atribute
dataSet.setClassIndex(dataSet.numAttributes()-1);
//Creating model
LinearRegression linearRegresion = new LinearRegression();
linearRegresion.buildClassifier(data); //Unhandled exception :(
}}
这是 weka.jar 库的问题。我从weka网站下载的普通版本不适用于安卓。现在我从用户 rjmanrsan 下载了修改后的一个:https://github.com/rjmarsan/Weka-for-Android现在工作:)