1 | package org.greenstone.mars;
|
---|
2 |
|
---|
3 | import weka.core.Instances;
|
---|
4 |
|
---|
5 | import weka.classifiers.Classifier;
|
---|
6 | import weka.classifiers.Evaluation;
|
---|
7 |
|
---|
8 | // Based on:
|
---|
9 | // https://waikato.github.io/weka-wiki/use_weka_in_your_java_code/
|
---|
10 |
|
---|
11 |
|
---|
12 | class WekaTrainValenceModel
|
---|
13 | {
|
---|
14 | // Scheme: weka.classifiers.trees.REPTree -M 2 -V 0.001 -N 3 -S 1 -L -1 -I 0.0 -- (i.e., default vals)
|
---|
15 | // Relation: deam-essentia-features-arousal-valence-weka.filters.unsupervised.attribute.Remove-R471-weka.filters.unsupervised.attribute.Remove-R458-466-weka.filters.unsupervised.attribute.Remove-R425
|
---|
16 | // Instances: 1743
|
---|
17 |
|
---|
18 | // Note, above missed -R 427 (ordinal val)
|
---|
19 |
|
---|
20 |
|
---|
21 | public static void main(String[] args)
|
---|
22 | {
|
---|
23 | WekaUtil.checkUsageTraining(args);
|
---|
24 |
|
---|
25 | String input_data_filename = args[0];
|
---|
26 | String output_model_filename = args[1];
|
---|
27 |
|
---|
28 | // knock out 471 (arousal) from dataset
|
---|
29 | Instances filtered_data_instances = WekaUtil.loadAndFilterDataInstances(input_data_filename, "471");
|
---|
30 | Classifier classifier = WekaUtil.trainREPTree(filtered_data_instances);
|
---|
31 | System.out.println(classifier);
|
---|
32 |
|
---|
33 | Evaluation eval = WekaUtil.evaluateClassifier(classifier,filtered_data_instances);
|
---|
34 | System.out.println(eval.toSummaryString());
|
---|
35 |
|
---|
36 | try {
|
---|
37 | System.out.println("Saving REPTree classifier model as: " + output_model_filename);
|
---|
38 | weka.core.SerializationHelper.write(output_model_filename, classifier);
|
---|
39 | }
|
---|
40 | catch (Exception e) {
|
---|
41 | e.printStackTrace();
|
---|
42 | }
|
---|
43 | }
|
---|
44 | }
|
---|