web-dev-qa-db-fra.com

Message d'avertissement: "valeurs manquantes dans les mesures de performance rééchantillonnées" dans caret train () à l'aide de rpart

J'utilise le paquet caret pour former un modèle avec le paquet "rpart";

tr = train(y ~ ., data = trainingDATA, method = "rpart")

Les données n'ont pas de valeurs manquantes ni 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.

Quelqu'un sait-il (ou peut-il m'indiquer où trouver une réponse) que signifie cet avertissement? Je sais qu'il me dit qu'il manque des valeurs dans les mesures de performance ré-échantillonnées - mais qu'est-ce que cela signifie exactement et comment Une telle situation se produit? BTW, la fonction predict() fonctionne bien avec le modèle ajusté, c’est donc ma curiosité.

19
USER_1

Pas vraiment sûr sans plus de données. 

S'il s'agit d'une régression, le cas le plus probable est que l'arbre n'a pas trouvé une bonne division et a utilisé la moyenne du résultat comme facteur prédictif. C'est bien, mais vous ne pouvez pas calculer R ^ 2 car la variance des prévisions est égale à zéro.

Si classement, c'est difficile à dire. Vous pourriez avoir un rééchantillonnage dans lequel l'une des classes de résultats ne contient aucun échantillon; par conséquent, la sensibilité ou la spécificité n'est pas définie et donc NA

20
topepo

Cette erreur se produit lorsque le modèle n'a pas convergé dans certains plis de validation croisée. Les prédictions obtiennent une variance nulle. Par conséquent, les métriques telles que RMSE ou Rsquared ne peuvent pas être calculées, elles deviennent donc des NA . Il existe parfois des paramètres que vous pouvez ajuster pour une meilleure convergence, par exemple. la bibliothèque neuralnet propose d’augmenter le seuil, ce qui conduit presque toujours à la convergence. Pourtant, je ne suis pas sûr de la bibliothèque Rpart.

Une autre raison à cela est que vous avez déjà des NA dans vos données d'entraînement. Ensuite, le remède évident consiste à les supprimer avant de les suivre en train (data = na.omit (training.data)).

J'espère que cela éclaire un peu.

0
Agile Bean