2016-05-18 1 views
1

Je compare différents algorithmes de classification pour un projet utilisant des nœuds. J'étais très content des résultats obtenus pour Support Vector Machines (LibSVM). Je voulais ensuite essayer la classification hiérarchique et installer le plugin Rapidminer pour Knime. Pour que les choses fonctionnent, j'ai d'abord testé l'implémentation SVM sans hiérarchies. En comparant les résultats de l'implémentation de LibSVM de knime et de l'implémentation rapide de LibSVM, j'ai remarqué que l'implémentation de rapidminer donnait de plus mauvais résultats. La mise en œuvre du knime a en effet produit un taux d'erreur d'environ 2,4% tandis que le rapidminer a produit un taux d'erreur d'env. 61%. Pourquoi est-ce? Est-ce que je fais quelque chose de mal?SVM conduit à Rapidminer bien pire que dans le knime

Confusion Matrix Comparison

J'utilise C-SVM SVC avec noyau linéaire, 1,0 coût, 0,001 epsilon et le cache de 80 Mo pour les deux implémentations.

Rapidminer Workflow and OptionsKnime Options

Les documents sont des textes d'article wikipedia, prétraitées, transformé en un vecteur de document binaire et étiquetés avec une sorte de type.

J'espère que vous pouvez m'aider.

+1

C'est un peu difficile à dire sans les versions de la bibliothèque (je suppose que RapidMiner utilise plus de LibSVM que KNIME), mais il est possible qu'il y ait eu un bug dans les anciennes versions de LibSVM. Il est également possible que j'ai fait une erreur dans la transformation des données et RapidMiner (dans KNIME) voit des données erronées. Pourriez-vous vérifier avec la version RapidMiner 5.3.15 en dehors de KNIME? (Il peut aussi être intéressant de vérifier avec la dernière version de 7.1.x ou si vous avez accès à l'aperçu de la version 7.2, je sais qu'il y a des limitations folles dans les RapidMiners récents concernant l'import/export, je comprends si vous préférez ne pas les vérifier.) Merci. –

+0

Merci beaucoup pour votre réponse. La transformation des données semble être le problème. En utilisant rapidminer studio (5.3.15), le taux d'erreur a baissé à 3.3%, ce qui est suffisant pour continuer. – user2509422

+0

J'ai essayé de reproduire votre problème: https://drive.google.com/file/d/0B_71sAq09Nu2VzM3bmxoakNJN00/view?usp=sharing bien que je n'ai eu que des différences mineures. Ce que je trouve suspect, c'est que vous utilisez un opérateur 'Nominal to ...' dans RapidMiner. Je pense que ce n'est pas nécessaire. (Dans mon flux de travail, j'ai supprimé la colonne d'identification de ligne du processus pour souligner ce changement, mais vous pouvez également cliquer sur le bouton 'Utiliser 'sur l'onglet' Row ID' pour ne pas l'utiliser (son texte deviendra 'Do not use').) –

Répondre

2

Vous n'avez pas besoin d'inclure les Row ID s dans ce cas (Row ID onglet, faites à bouton Afficher Do not use en cliquant dessus dans le cas où il est Use et le champ de texte n'est pas désactivé), et vous ne devriez pas effectuer Nominal to... transformations sur eux. Après cela, vous devriez obtenir des résultats similaires dans les deux cas.