Если я в настоящее время с помощью дерева решений Weka (или другой) классификатор следующим образом в моем Java коде:Реализация параметров в мета-классификатор в Weka
// Get training and testing data.
Instances train = new Instances ("from training file");
train.setClassIndex(train.numAttributes() - 1);
Instances test = new Instances ("from testing file");
test.setClassIndex(test.numAttributes() - 1);
// Set classifier.
Object obj = Class.forName("weka.classifiers.trees.J48").newInstance();
Classifier cls = (Classifier) Class.forName("weka.classifiers.trees.J48").cast(obj);
// Set parameters for classifier.
String options = ("-C 0.05 -M 2");
String[] optionsArray = options.split(" ");
cls.setOptions(optionsArray);
// Train classifier.
cls.buildClassifier(train);
Evaluation eval = new Evaluation(train);
// Test trained classifier.
eval.evaluateModel(cls, test);
Что произойдет, если я хочу использовать мета-классификатор, например, мешок, чтобы попытаться повысить результаты? В проводнике Weka, в случае я использую расфасовку с моим обучением и тестированием данных, строка параметров для классификатора является:
weka.classifiers.meta.Bagging -P 100 -S 1 -num-slots 1 -I 10 -W weka.classifiers.trees.J48 -- -C 0.25 -M 2
Кто-нибудь знает, что такое кодовое представление этого может быть?
В идеале, я хочу, чтобы хранить классы классификатора и мета-классификатором в таблице базы данных, то есть так строки:
Object obj = Class.forName("weka.classifiers.trees.J48").newInstance();
становится:
Object obj = Class.forName(classifier.getWekaClass()).newInstance();
И где параметры могут быть указаны в таблице базы данных, а также упростить их изменение, если я поменяю классы с J48 на NB.
Я считаю, что это то, что я ищу, но ...
http://weka.wikispaces.com/Use+WEKA+in+your+Java+code#Attribute selection-Meta-Classifier
Спасибо за ответ: Я планирую поле varchar «один размер подходит всем» в таблице базы данных. Это можно прочитать в строке Java во время выполнения. Затем цепочку можно разбить так, чтобы она соответствовала cls.setOptions (optionsArray); Это использование мета-классификатора, который меня получает. –
Вам нужно будет хранить эту информацию отдельно, поскольку классификатор будет создаваться по-другому (т. Е. Вам нужно будет установить базовый классификатор). –
Если я правильно понимаю эту проблему, базовый классификатор, например, J48, будет устанавливаться нормально. Это приложение мета-классификатора, о котором я не знаю. –