2014-03-25 2 views
0

배경 컨텍스트를 제공하겠습니다. 각 벡터는 50 개의 차원으로 구성된 100 개의 벡터 목록을 가지며 처음 50 개의 벡터를 클래스 A와 연관시키고 마지막 벡터를 클래스 B와 연관 시키려고합니다.KNN 다차원 벡터

내 질문은 kNN을 나중에 적용하기 위해 어떻게 할 수 있으며 kNN 방법이 더 적절한 라이브러리는 무엇입니까?

미리 감사드립니다.

답변

0

마음에 오는 첫 번째 옵션 중 하나는 벡터 목록에서 data.frame을 만들고 요인 표시기를 만든 다음 class package의 knn을 사용하는 것입니다.

는 rbind 사용 벡터

목록에서 data.frame 만들기 행렬을 다음 as.data.frame 함수 (본 실시 예에서 더 question)를 사용한다. 그 리터를 가정하면 벡터의 목록입니다

data <- as.data.frame(do.call(rbind, l)) 

요소 표시

class <- as.factor(c(rep("A", 50), rep("B", 50))) 

KNN 분류하여 클래스 패키지

경우 당신이 테스트를 위해 별도의 데이터가없는, 아마도 가장 좋은 방법은

train.ind <- sample(1:100, 75) # making indexes to split data into 75% train and 25% test 
resulting.classes <- knn(train = data[train.ind, ], test = data[-train.ind, ], cl = class) 
,210

그리고 당신은 별도의 훈련과 테스트 데이터가있는 경우 다음 단지 유용 할 수 있습니다 KNN에 대한

resulting.classes <- knn(train = train.data, test = test.data, cl = class) 

다른 선택 사용 - ‘kknn’ package'FNN' package.하지만 클래스 패키지는 간단한 KNN 분류를위한 가장 쉬운 것 같습니다.

+0

이것은 훌륭하게 작동했습니다. :) – gcolucci