Каково истинное правильное использование параметра -S в классификаторе weka A1DE?

Поэтому я использую weka 3.7.11 на компьютере под управлением Windows (и скрипты bashings bash с cygwin), и я обнаружил несогласованность в отношении классификатора AODE (который в этой версии weka происходит из дополнительного пакета).

Используя Оценки усредненных N-зависимостей из графического интерфейса, я получаю следующую конфигурацию (из примера, который хорошо работал в Weka Explorer):

weka.classifiers.meta.FilteredClassifier -F "weka.filters.unsupervised.attribute.Discretize -F -B 10 -M -1.0 -R first-last" -W weka.classifiers.bayes.AveragedNDependenceEstimators.A1DE -- -F 1 -M 1.0 -S

Поэтому я изменил это, чтобы получить следующую команду в моем сценарии bash:

java -Xmx60G -cp "C:\work\weka-3.7.jar;C:\Users\Oracle\wekafiles\packages\AnDE\AnDE.jar" weka.classifiers.meta.FilteredClassifier \
 -t train_2.arff -T train_1.arff \
 -classifications "weka.classifiers.evaluation.output.prediction.CSV -distribution -p 1 -file predictions_final_multi.csv -suppress" \
 -threshold-file umbral_multi.csv \
 -F "weka.filters.unsupervised.attribute.Discretize -F -B 10 -M -1.0 -R first-last" \
 -W weka.classifiers.bayes.AveragedNDependenceEstimators.A1DE -- -F 1 -M 1.0 -S

Но это дает мне ошибку:

Weka exception: No value given for -S option.

Что странно, так как это не проблема с графическим интерфейсом. В графическом интерфейсе в окне "Информация" говорится, что -S это просто флаг ("Разрешающее разрешение может быть достигнуто с помощью опции -S"), поэтому он не должен ожидать какого-либо числа вообще, что согласуется с тем, что я получил используя проводник.

Итак, какая сделка с параметром -S при использовании командной строки? Глядя на текст ошибки, данный weka, я нашел следующее:

Options specific to classifier weka.classifiers.bayes.AveragedNDependenceEstimators.A1DE:

-D
 Output debugging information

-F <int>
 Impose a frequency limit for superParents (default is 1)
-M <******>
 Specify a weight to use with m-estimate (default is 1)

-S <int>
 Specify a critical value for specialization-generalilzation SR (default is 100)

-W
 Specify if to use weighted AODE
</int></******></int>

Таким образом, кажется, что этот класс работает по-разному, в зависимости от того, какой метод я использую (GUI vs. Command Line).

Решение, которое я нашел, по крайней мере в то же время, заключалось в том, чтобы написать -S 100 в моем сценарии. Это действительно то же самое, что просто положить -S в графический интерфейс?

Заранее спасибо. JM

1 ответ

У меня была игра с этим классификатором, и я могу подтвердить, что то, что вы испытываете на своем пути, соответствует тому, что у меня есть. В графическом интерфейсе -S Option (Subumption Resolution) не требуется никаких параметров во время выполнения командной строки (специализация-обобщение SR).

Они не похожи на один и тот же параметр, поэтому вам может потребоваться поднять эту проблему с разработчиком стороннего пакета, если вы хотите узнать больше информации об этих параметрах. Вы можете найти эту информацию в Диспетчере инструментов → Диспетчер пакетов → AnDE, который укажет вам на контакты для библиотеки.

licensed under cc by-sa 3.0 with attribution.