Сериализация Weka Filters
Я использовал Weka GUI (проводник в 3.7.11 специально) для обучения некоторых моделей. Затем я сохраняю обученную модель, щелкая правой кнопкой мыши модель в области результатов. Я написал простой Java-код, который может загрузить эту сохраненную модель и использовать ее для классификации новых экземпляров. Это все прекрасно работает.
Естественно, я хотел бы сделать некоторую предварительную обработку моих данных перед обучением модели. Некоторые из этапов предварительной обработки изучают значения. Например, фильтр пропущенных значений определяет среднее значение или режим каждой функции на основе данных обучения. Поэтому я хотел бы сохранить изученные фильтры так же, как я сохранил изученную модель, чтобы я мог применить фильтры, а затем модель к новым экземплярам, которые не были доступны, когда я обучал свою модель.
Я не могу найти способ сериализации фильтров. Можно ли это сделать? Если нет, какой-нибудь совет для простого обхода?
2 ответа
От Марка Холла в списке рассылки Weka:
http://list.waikato.ac.nz/pipermail/wekalist/2014-November/062329.html
В основном вы выбрали "Фильтрованный классификатор" в категории "мета-классификаторы" в качестве классификатора. Затем выберите любой классификатор, который вы хотите, в качестве используемого классификатора. Затем выберите метафильтр с несколькими фильтрами и примените любой ряд фильтров перед классификатором. Результатом является то, что кажется единственным классификатором, который можно сохранить, но на самом деле это серия фильтров, за которыми следует классификатор.
Вы можете использовать ObjectInputStream, предоставляемый в Java.
Проверьте эту ссылку, объясняющую, как вы можете сериализовать и десериализовать weka-объекты. https://waikato.github.io/weka-wiki/serialization/