2016-05-18 14 views
1

Я сравниваю различные алгоритмы классификации для проекта с использованием knime. Я был очень доволен результатами, полученными в поддержку Vector Machines (LibSVM). Затем я хотел попробовать иерархическую классификацию и установить плагин Rapidminer для knime. Чтобы заставить работать, я сначала протестировал реализацию SVM без иерархии.SVM приводит к тому, что Rapidminer намного хуже, чем в knime

Сравнивая результаты реализации LibSVM knime и реализации LibSVM quickminer, я заметил, что реализация fastminer дала худшие результаты. Фактическая реализация knime породила частоту ошибок около 2,4%, в то время как quickminer произвела частоту ошибок ок. 61%. Почему? Я делаю что-то неправильно?

Confusion Matrix Comparison

Я использую C-SVC SVMs с линейным ядром, 1,0 Стоимость, 0,001 эпсилон и кэш 80Mb для обеих реализаций.

Rapidminer Workflow and OptionsKnime Options

Документы тексты статей Википедии, предварительно обработанные, превращенные в двоичный вектор документа и маркированный с каким-то типом.

Надеюсь, вы можете мне помочь.

+1

Немного сложно сказать без версий библиотеки (я думаю, RapidMiner использует более старый LibSVM, чем KNIME), но возможно, что в старых версиях LibSVM была ошибка. Возможно также, что я сделал ошибку в преобразовании данных, и RapidMiner (внутри KNIME) видит неправильные данные. Не могли бы вы проверить версию RapidMiner 5.3.15 вне KNIME? (Возможно, также интересно ознакомиться с последней версией 7.1.x или если у вас есть доступ к превью 7.2. Я знаю, что в недавних RapidMiners есть некоторые сумасшедшие ограничения в отношении импорта/экспорта. Я понимаю, если вы предпочитаете не проверять их.) Благодаря. –

+0

Большое спасибо за ваш ответ. Преобразование данных, по-видимому, является проблемой. Используя студию rapidminer (5.3.15), уровень ошибок снизился до 3,3%, чего достаточно для продолжения. – user2509422

+0

Я попытался воспроизвести вашу проблему: https://drive.google.com/file/d/0B_71sAq09Nu2VzM3bmxoakNJN00/view?usp=sharing, хотя у меня были только незначительные отличия. То, что я считаю подозрительным, заключается в том, что вы используете оператор «Номинал ...» в RapidMiner. Я думаю, что это не требуется. (В моем рабочем процессе я удалил столбец идентификатора строки из процесса, чтобы подчеркнуть это изменение, но вы также можете просто нажать кнопку «Использовать» на вкладке «Row ID», чтобы не использовать ее (ее текст станет «Do not use').) –

ответ

2

Вам не нужно включать Row ID с в этом случае (Row ID вкладки, застегивать шоу Do not use, щелкнув по нему в случае Use и текстовое поле не отключается), и вы не должны выполнять Nominal to... преобразования на них. После этого вы должны получить аналогичные результаты в обоих случаях.