Я довольно новичок в Weka. Я делаю код, где я построил J48 для прогнозирования результатов результатов учащихся. Теперь я попытался проверить модель с использованием файла ARFF, но хочу получить классификацию тестового примера, введенного пользователем. . Я хочу, чтобы пользователь вводил два числовых значения, которые являются метками, полученными двумя субъектами, то есть CS и Maths, а затем прогнозируют их конечный результат, то есть PASS или FAIL. Результатом будет переменная класса.Как протестировать один тестовый пример в Weka, введенный пользователем?
я не знаю, как создать экземпляр для выполнения что-то вроде этого
double pred = tree.ClassifyInstance(testcase);
Вот мой код.
import java.security.KeyStore;
import weka.classifiers.Classifier;
import weka.classifiers.Evaluation;
import weka.classifiers.trees.J48;
import weka.core.Attribute;
import weka.core.FastVector;
import weka.core.Instance;
import weka.core.Instances;
import weka.core.Utils;
import weka.core.converters.ConverterUtils.DataSource;
public class WekaTest {
public static void main (String[] args) throws Exception
{
//load the train set
DataSource source = new DataSource("train.arff");
Instances train = source.getDataSet();
//Set class variable i.e. Outcome
train.setClassIndex(train.numAttributes()- 1);
Classifier tree = new J48();
tree.buildClassifier(train);
// Instance test = new Instance();
// Evaluation eval = new Evaluation(train);
Attribute COMS1000 = new Attribute("COMS1000");
Attribute MATH1001 = new Attribute("MATH1001");
FastVector classVal = new FastVector(2);
classVal.addElement("PASS");
classVal.addElement("FAIL");
FastVector testAttributes = new FastVector(3);
testAttributes.addElement(COMS1000);
testAttributes.addElement(MATH1001);
testAttributes.addElement(classVal);
Instance testcase = new Instance(3);
//testcase.setClassIndex(testcase.numAttributes()-1);
testcase.setValue((Attribute)testAttributes.elementAt(0),60);
testcase.setValue((Attribute)testAttributes.elementAt(1),70);
testcase.setValue((Attribute)testAttributes.elementAt(2),"?");
double pred = tree.classifyInstance(testcase)
System.out.println(pred.value(Double.toString(pred)));
}
}
Большое спасибо. Я использовал некоторый код, который вы предоставили. Только не способ вывода прогноза. И мне пришлось добавить экземпляр в набор данных. Это может быть пустой набор данных, и он сработал. – kartiksandlesh