2013-04-29 2 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)가 X 784
dim(train_labels) 42000 내가 문제를 볼 수 없습니다 42000 X 1

입니다,하지만 난 오류 받고 있어요 :

knn (train_points, test_points, train_labels, k = 5)의 오류 :
'train'과 'class'의 길이가 다릅니다.

무엇이 문제입니까?

답변

11

데이터에 액세스 할 수 없으면 실제로 도움이되지 않습니다. 그러나 train_labels은 벡터 여야한다고 생각합니다. 그래서 또한

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

한 번 확인을 시도 :

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

는 최근 매우 유사한 문제가 발생했습니다. 하나의 열만 예측 자로 사용하고자했습니다. 이 경우 열을 선택하면 약 을 기억하고 인수를 놓고 FALSE으로 설정해야합니다. knn() 함수는 열 및 테스트 인수로 행렬 또는 데이터 프레임 만 받아들입니다. 벡터가 아닙니다.

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

관련 문제