Я создал модель NaiveBayes в Weka.Я экспортировал модель на диск.Теперь я хочу внедрить эту модель в MATLAB 2018, чтобы я мог проверить, как она работает с некоторыми данными, которые я получаю.
Я загружаю свою модель в MATLAB, заявив что-то вроде этого:
loadedModel = weka.core.SerializationHelper.read('myweka.model');
Затем я создаю объект Weka Instance, и пусть он содержит эти данные:
instance = infrequent,low,high,medium-high,high,medium,medium,low,low
Если я выполню эти две команды:
loadedModel.distributionForInstance(instance)
loadedModel.classifyInstance(instance)
Я вижу следующий вывод:
0.0001
0.9999
1
Это странно для меня, потому что, если я наблюдаю ту же запись в WEKA ui, я вижу тот же самый случай с вероятностями 0,993 и 0,007, классифицированный как '2'.(Я могу несколько раз загрузить одну и ту же модель с диска в WEKA и воспроизвести это поведение, и это правильно). После дальнейшего изучения я заметил, что независимо от последовательности атрибутов, которые имеет мой объект Instance, я всегда получаю одинаковую выходную вероятность, ита же классификация, вызывая модель через MATLAB.
В сети есть несколько постов, которые разделяют одну и ту же проблему, например:
Всегда получаю один и тот же вывод
Weka - Классификатор возвращает одинаковое распределение для любого ввода
Однако рекомендуемое решение для вызова instance.setClassMissing () не решило мою проблему.Я что-то пропустил или могу попытаться сделать, чтобы устранить проблему?