2012-04-16 3 views
2

필자의 자릿수를 분류하기 위해 matlab에 KNN 알고리즘을 적용했습니다. 자릿수는 처음에 8 * 8의 벡터 형식이며 벡터 1 * 64를 형성하기 위해 늘어납니다. 그래서 첫 번째 숫자와 나머지 모든 데이터 세트를 비교할 때마다 (매우 큰 것입니다.), 두 번째 세트는 나머지 등으로 설정됩니다. 이제는 내 질문이 1 이웃이 최선의 선택이 아닙니다. 항상? 유클리드 거리를 사용하고 있기 때문에 (내가 가까운 것을 선택합니다.) 왜 가장 가까운 숫자를 얻었으므로 2 ~ 3 개의 이웃을 선택해야합니까?이웃의 수 KNN 알고리즘

감사합니다.

+0

이의 당신이 잘못 쓰여지고 지금 확인 정확히 1처럼 보이는 한 7 있다고 가정 해 봅시다 "그립니다". 당신은 잘못된 결과를 얻습니다. 이제 5 개의 베스트 매치 중 1이 아닌 7이 더 많이 나올 가능성은 얼마나 될까요? – svinja

+0

남자는 90.21 %의 성공률을 얻는 것이 정상입니까? 1593 자리 데이터 세트에? –

+0

@TestTest 저는 이미지 인식 전문가가 아니므로 ML을 다른 목적으로 사용하지만 90.2 %는 나에게 꽤 좋은 것처럼 들립니다. – amit

답변

1

잡음을 고려해야합니다. 어쩌면 분류 된 예제 중 일부가 잘못 분류되었거나 그 중 하나가 기묘하게 다른 예제와 매우 유사하다고 가정합니다. 다른 것은 있지만 실제로는 "결함"입니다. 이러한 경우에 따라 트랙 예제에서 분류하면 실수로 이어질 수 있습니다.

개인 경험에 의하면, 은 일반적으로인데 k = 3/5/7에 대해 최상의 결과가 얻어 지지만 인스턴스에 따라 다릅니다.

최상의 성능을 얻으려면 cross validation 맨 위에 특정 인스턴스에 가장 적합한 k을 사용해야합니다.

또한, 피하기 위해, KNN에 대한 k로 홀수 번호를 사용하는 것이 일반적입니다

+0

남자는 90.21 %의 성공률을 얻는 것이 정상입니까? 1593 자리 데이터 세트에? –

관련 문제