2017-04-10 2 views
1

Même si l'aide NaiveBayes() indique que numérique peut être passé dans le premier paramètre 'x', je ne suis pas en mesure de l'exécuter avec succès. Sans variable numérique (revente) cela fonctionne bien. Voici le script:R NaiveBayes problème avec des variables numériques

library(readr) 
    library(klaR) 
    ### load dataset 
    Dataset <- read_csv("D:/sampledata.csv") 
    ### converting 'model' and 'type' to factor 
    Dataset$model <- factor(Dataset$model) 
    Dataset$type <- factor(Dataset$type) 
    ### Executing NaiveBayes with numeric 'resale' 
    NaiveBayesModel1 <- NaiveBayes(model~type+mylogical+resale,data=Dataset,na.action =na.omit) 
    ### now removing resale. Following works as expected. 
    NaiveBayesModel1 <- NaiveBayes(model~type+mylogical,data=Dataset,na.action =na.omit) 

'modèle' et 'type' sont des facteurs, 'mylogical' est logique et 'revente' est une variable numérique. Depuis, je ne peux pas joindre mon fichier de données, je colle quelques lignes ici. Copiez ces lignes et enregistrez le fichier sampledata.csv sur votre disque. Modifiez read_csv() dans le script ci-dessus pour pointer vers ce fichier csv.

"model","sales","resale","type","mylogical" 
"Integra",16.919,16.36,"Automobile",TRUE 
"TL",39.384,19.875,"Automobile",FALSE 
"Camry",247.994,13.245,"Automobile",FALSE 
"Avalon",63.849,18.14,"Automobile",TRUE 
"Celica",33.269,15.445,"Automobile",TRUE 
"Tacoma",84.087,9.575,"Truck",TRUE 
"RAV4",25.106,13.325,"Truck",FALSE 
"4Runner",68.411,19.425,"Truck",FALSE 
"Land Cruiser",9.835,34.08,"Truck",TRUE 
"Golf",9.761,11.425,"Automobile",FALSE 
"Jetta",83.721,13.24,"Automobile",FALSE 
"Passat",51.102,16.725,"Automobile",TRUE 
"Cabrio",9.569,16.575,"Automobile",FALSE 
"GTI",5.596,13.76,"Automobile",FALSE 

Je reçois une erreur de suivi si je cours NaiveBayes avec "revente".

Error in if (any(temp)) stop("Zero variances for at least one class in variables: ", : 
    missing value where TRUE/FALSE needed 

R aide (aide (NaiveBayes)) dit que je peux utiliser numérique. Je ne comprends pas ce qui ne va pas. S'il vous plaît aider.

Regards, SG

Répondre

0

L'erreur est provoquée par zéro variance dans resale variables des valeurs pour chacun des résultats dans model. Votre ensemble d'entraînement contient très probablement un enregistrement d'entraînement unique pour chaque valeur distincte dans model.

+0

Je vois le problème maintenant. Chaque modèle a une fréquence 1. J'ai testé avec différentes données et cela a fonctionné. Merci pour l'aide. – aura