2013-04-29 3 views
8

は私のコードです:RのKNN: '列車と階級の長さが違う'?ここ

train_points <- read.table("kaggle_train_points.txt", sep="\t") 
train_labels <- read.table("kaggle_train_labels.txt", sep="\t") 
test_points <- read.table("kaggle_test_points.txt", sep="\t") 

#uses package 'class' 
library(class) 
knn(train_points, test_points, train_labels, k = 5); 

dim(train_points)は42000 X 784
dim(train_labels)で42000×1

である私は、問題が表示されていないが、私はエラーを取得しています:

knn(train_points、test_points、train_labels、k = 5)のエラー:
'train'と 'class'の長さが異なります。

どうしたのですか?

答えて

11

データにアクセスできない場合は、本当に助けがありません。しかし、私はtrain_labelsがベクターでなければならないと考えています。私は最近、非常に同様の問題に遭遇した

dim(train_points) 
dim(test_points) 
length(cl) 
0

:だからダブルチェックまた

cl = train_labels[,1] 
knn(train_points, test_points, cl, k = 5) 

を試してみてください。 私は予測子として1つの列だけを与えたかったのです。そのような場合、列を選択するには、約を覚えておき、引数を落としてFALSEに設定する必要があります。 knn()関数は、列またはテスト引数として行列またはデータフレームのみを受け入れます。ベクトルではありません。

knn(train = trainSet[, 2, drop = FALSE], test = testSet[, 2, drop = FALSE], cl = trainSet$Direction, k = 5)

関連する問題