Message d'avertissement: “les valeurs manquantes dans nombre de mesures de la performance” en signe de train() à l'aide de rpart
Je suis en utilisant le signe d'insertion de paquet pour former un modèle avec "rpart" paquet;
tr = train(y ~ ., data = trainingDATA, method = "rpart")
Données n'a pas de valeurs manquantes ou de NA, mais lors de l'exécution de la commande, un message d'avertissement apparaît;
Warning message:
In nominalTrainWorkflow(x = x, y = y, wts = weights, info = trainInfo, :
There were missing values in resampled performance measures.
Personne ne sait (ou pourrait m'indiquer où trouver une réponse) quel est cet avertissement signifie?
Je sais que c'est de me dire qu'il y avait des valeurs manquantes dans nombre de mesures de la performance - mais que veut dire exactement et comment une situation comme celle qui se présentent?
BTW, le predict()
fonction fonctionne très bien avec le modèle ajusté, de sorte qu'il est juste ma curiosité.
OriginalL'auteur USER_1 | 2014-11-09
Vous devez vous connecter pour publier un commentaire.
Pas définitivement sûr, sans plus de données.
Si c'est la régression, il est probable que l'arbre n'a pas trouvé un bon split et utilisé la moyenne de l'issue que le prédicteur. C'est bien, mais vous ne pouvez pas calculer R^2 car la variance des prévisions est de zéro.
Si la classification, c'est difficile à dire. Vous pourriez avoir un rééchantillonnage où l'un des résultats les classes a zéro des échantillons, afin de sensibilité ou de spécificité est pas défini et donc
NA
.J'ai connu le même problème avec
rpart
etnnet
. Pour ce dernier, j'ai simplement eu à définirlinout = TRUE
pour se débarrasser du message d'avertissement et obtenir une validation croisée des prédictions. Cependant, je ne pouvais pas trouver un solution pourrpart
encore: cross-validation des prédictions ont été parfaitement bien. J'ai le sentiment querpart
s'attend à une certaine argument que l'on ne peut pas passer à l'aide detrain
commemethod = "anova"
. La page d'aide derpart
dit que "c'est la plus sage de préciser le mode direct".OriginalL'auteur topepo
Le Problème
Le problème est que le rpart est à l'aide d'un arbre en fonction de l'algorithme, qui ne peut gérer qu'un nombre limité de facteurs dans une fonctionnalité donnée. On peut donc avoir une variable qui a été définie à un facteur avec plus de 53 catégories:
À la base de votre problème, l'accent circonflexe est en cours d'exécution de cette fonction, alors assurez-vous de réparer votre les variables catégorielles avec plus de 53 niveaux.
C'est là que mon problème menti avant (avis code postal de venir en facteur):
La Solution
Supprimer toutes les variables catégorielles qui ont plus de 53 niveaux.
Voici mon fixe code, le réglage de la variable catégorique code postal, vous pourriez même avoir enveloppé dans un numérique wrapper comme ceci:
as.numeric(rf.train.2$zipcode)
.J'ai seulement des hommes femmes et a obtenu le même message d'erreur
Peut-être que je me trompe, mais c'est pas clair pour moi qu'il serait sage de les convertir en quelque chose comme code postal en un entier. Si c'est un entier, alors l'algorithme va le traiter comme covariable au lieu d'un facteur, de sorte que le code postal 55105 est une unité plus grande que 55104, quand vraiment ils n'ont pas ce genre de relation. Je pense que tu ferais mieux de réduire la précision de la zipcode vers le bas peut-être juste pour les deux premiers chiffres. Je me rends compte que cette discussion est une sorte de gelée, mais je pensais que c'était la peine d'en parler de toute façon.
OriginalL'auteur bmc