J'utilise l'algorithme PART dans R (via le paquetage RWeka) pour la classification multi-classes. L'attribut cible est un intervalle de temps dans lequel une facture sera payée par le client (comme 7-15 jours, 15-30 jours, etc.). J'utilise le code suivant pour le montage et la prévision du modèle:Arbre de classification basé sur une règle d'élagage (algorithme PART)
fit <- PART(DELAY_CLASS ~ AMT_TO_PAY + NUMBER_OF_CREDIT_DAYS + AVG_BASE_PRICE, data= trainingData)
predictedTrainingValues <- predict(fit, trainingData)
En utilisant ce modèle, je reçois environ une précision de 82% sur les données de formation. Mais la précision sur les données de test est d'environ 59%. Je comprends que j'ajuste le modèle. J'ai essayé de réduire le nombre de variables prédictives (variables prédictives dans le code ci-dessus sont des variables réduites), mais cela n'aide pas beaucoup.Réduire le nombre de variables améliore la précision sur les données de test à environ 61% et réduit la précision 79%.
Étant donné que l'algorithme PART est basé sur un arbre de décision partiel, une autre option peut être d'élaguer l'arbre. Mais je ne suis pas au courant de la façon d'élaguer l'arbre pour l'algorithme PART. Sur la recherche sur Internet, j'ai trouvé que les critères FOIL peuvent être utilisés pour élaguer l'algorithme basé sur les règles. Mais je ne suis pas capable de trouver l'implémentation du critère FOIL dans R ou RWeka.
Ma question est la suivante: comment tailler l'arbre pour l'algorithme PART, ou toute autre suggestion pour améliorer la précision des données de test?
Merci à l'avance !! REMARQUE: Je calcule la précision en multipliant le nombre d'instances correctement classées par le nombre total d'instances.
Merci pour la réponse! C'est le facteur de confiance C qui détermine le niveau d'élagage. Plus le facteur de confiance est faible, plus l'élagage sera effectué par algorithme. Je n'ai pas utilisé la validation croisée plus tôt. Mais va essayer. Merci pour suggestion! – user3697157
Super :). Content que je puisse être utile! – LyzandeR