2017-04-10 12 views
1

NaiveBayes()ヘルプでは、最初のパラメータ 'x'に数値を渡すことができますが、正常に実行することはできません。数値変数(再販)がなければ正常に動作します。ここではスクリプトは次のとおりです。R NaiveBayesの数値変数の問題

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) 

「モデル」と「type」は要因である、 「mylogicalは」論理と 「再販」で数値変数です。 私は自分のデータファイルを添付することができないので、私はここにいくつかの行を貼り付けています。これらの行をコピーし、ドライブにsampledata.csvファイルとして保存します。上記のスクリプトのread_csv()をこの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 

"再販"のNaiveBayesを実行すると、次のエラーが発生します。

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

Rヘルプ(help(NaiveBayes))は数値を使用できると言っています。私は何が間違っているのか分からない。助けてください。

よろしく、

SG

答えて

0

エラーがmodelにおける結果の各々について可変resale値をゼロ分散によって引き起こされます。ほとんどの場合、トレーニングセットには、modelの個別の値ごとに1つのトレーニングレコードが含まれています。

+0

私は今問題を見る。各モデルは周波数が1です。私は異なるデータでテストし、それが機能しました。助けてくれてありがとう。 – aura