我有这个数据集,我想通过请求 API 将 weka 算法应用于它
@RELATION dataset
@ATTRIBUTE timestamp DATE "yyyy-MM-dd HH:mm:ss z"
@ATTRIBUTE action {scale_up}
@ATTRIBUTE duration NUMERIC
@ATTRIBUTE useful {0,1}
@DATA
"2023-07-05 11:31:18 WAT",scale_up,12,0
"2023-07-05 11:31:17 WAT",scale_up,10,0
"2023-07-05 11:31:16 WAT",scale_up,8,0
"2023-07-05 11:31:15 WAT",scale_up,42,1
"2023-07-05 11:31:14 WAT",scale_up,12,0
"2023-07-05 12:31:13 WAT",scale_up,32,1
这是存在问题的代码的一部分,其余代码是 for 循环,并且没有被执行
try {
String pathToWineData = "C:\\Users\\HP\\Desktop\\vermeg\\models\\dataset.arff";
Instances wine = new Instances(new BufferedReader(new FileReader(pathToWineData)));
int trainSize = (int) Math.round(wine.numInstances()*0.67);
int testSize = wine.numInstances()-trainSize;
Instances train = new Instances (wine,0,trainSize);
Instances test = new Instances (wine, trainSize,testSize);
ArrayList<Double> errors = new ArrayList<Double>();
WekaForecaster forecaster = new WekaForecaster();
forecaster.setFieldsToForecast("useful");
if(algorithme.equalsIgnoreCase("Gaussian")){
forecaster.setBaseForecaster(new GaussianProcesses());
}
if(algorithme.equalsIgnoreCase("Linear")){
forecaster.setBaseForecaster(new LinearRegression());
}
if(algorithme.equalsIgnoreCase("Multilayer")){
forecaster.setBaseForecaster(new MultilayerPerceptron());
}
forecaster.getTSLagMaker().setTimeStampField("timestamp");
forecaster.buildForecaster(wine, System.out);
forecaster.primeForecaster(wine);
List<List<NumericPrediction>> forecast = forecaster.forecast(nombre, System.out);
forecaster.postExecution();
并且错误表明正是由于以下原因引起的错误
forecaster.getTSLagMaker().setTimeStampField("timestamp");
forecaster.buildForecaster(wine, System.out);
forecaster.primeForecaster(wine);
这就是错误
weka.core.expressionlanguage.core.SemanticException: Multiplication is only applicable to doubles!
at weka.core.expressionlanguage.common.Operators.times(Operators.java:75)
at weka.core.expressionlanguage.parser.Parser$CUP$Parser$actions.CUP$Parser$do_action_part00000000(Parser.java:556)
at weka.core.expressionlanguage.parser.Parser$CUP$Parser$actions.CUP$Parser$do_action(Parser.java:720)
at weka.core.expressionlanguage.parser.Parser.do_action(Parser.java:224)
想不通。有任何想法吗?