2016-10-02 5 views
1

class R 라이브러리에 들어있는 knn 함수를 사용하려고합니다. "train"이 "class"와 같은 길이가 아니라는 오류가 발생합니다.K- 가장 가까운 이웃

기차 길이와 클래스를 각각 인쇄 할 때 기차 길이가 100 (필요에 따라)이고 클래스 길이가 2 (예상대로) 인 것으로 나타났습니다. 올바르게 이해하면 cl 또는 클래스는 팩터링 된 레이블 벡터입니다. 내 레이블은 단지 "주황색"및 "파란색"입니다. 설명서의 예제를 따라했지만 오류는 계속 발생합니다. 눈에 띄게 내 코드에 문제가 있습니까? 어떤 도움을 주셔서 감사합니다.

library(class) 

x <- runif(100, 1, 100) 
y <- runif(100, 1, 100) 
train.df <- data.frame(x, y) 

x.test <- runif(100, 1, 100) 
y.test <- runif(100, 1, 100) 
test.df <- data.frame(x.test, y.test) 

cl <- factor(c(rep("orange", 100), rep("blue", 100))) 

knn(train.df, test.df, cl, k=3, prob=TRUE) 
+1

cl은 200 요소 길이입니다. 대신'rep '를 각 클래스에 대해 50 번 호출 해보십시오. –

+0

그건 속임수 였어. 답변으로 의견을 게시하고 싶다면 체크해 볼 수 있습니다. 감사! – KingDan

+0

R/오류 메시지를 사용하는 방법에 대한 질문은 여기에 있습니다. 이것은 [SO]에 관한 주제에있을 것입니다. 기다릴 수 있다면 Google에서 귀하를 위해 마이그레이션 할 것입니다. – gung

답변

0

cl은 길이가 200 요소입니다. 대신 각 클래스에 대해 rep 번을 50 번 시도해보십시오.

library(class) 

x <- runif(100, 1, 100) 
y <- runif(100, 1, 100) 
train.df <- data.frame(x, y) 

x.test <- runif(100, 1, 100) 
y.test <- runif(100, 1, 100) 
test.df <- data.frame(x.test, y.test) 

cl <- factor(c(rep("orange", 50), rep("blue", 50))) 

knn(train.df, test.df, cl, k=3, prob=TRUE) 
관련 문제