Computer >> 컴퓨터 >  >> 프로그램 작성 >> 프로그램 작성

K-최근접이웃 알고리즘이란?

<시간/>

k-최근접 이웃 알고리즘은 클래스 구성원(Y)과 예측 변수 X1 간의 관계 구조에 대한 가정을 생성하지 않는 분류 접근 방식입니다. , X2 , .... Xn .

이것은 선형 회귀에서 가장한 선형 형식을 포함하여 가장된 함수 형식에서 매개변수 추정을 포함하지 않기 때문에 비모수적 접근 방식입니다. 이 접근 방식은 데이터 세트에 있는 데이터의 예측 변수 값 간의 유사성에서 데이터를 가져옵니다.

k-nearest-neighbors 방법의 개념은 분류에 필요한 새 데이터와 동일한 훈련 데이터 세트의 k 레코드를 인식하는 것입니다. 이러한 유사한(인접한) 레코드를 사용하여 새 레코드를 클래스로 정의하여 이러한 이웃 간의 우세한 클래스에 대한 새 데이터를 생성할 수 있습니다. 이 새 레코드에 대한 예측 변수 값을 X1로 나타냅니다. , X2 , .... Xn .

핵심 질문은 예측 변수 값에 따라 데이터 사이의 거리를 계산하는 방법입니다. 거리의 잘 알려진 척도는 유클리드 거리입니다. 두 레코드 간의 유클리드 거리(X1 , X2 , .... Xn ) 및 (U1 , U2 , .... Un )는

$$\mathrm{\sqrt{(X_1-U_1)^2+(X_2-U_2)^2+...+(X_n-U_n)^2}}$$

k-NN 알고리즘은 여러 거리 계산(예측할 각 데이터와 훈련 세트의 각 데이터 사이)에 의존하므로 계산 비용이 저렴한 유클리드 거리가 k-NN에서 가장 많이 사용됩니다.

여러 예측 변수가 가질 수 있는 척도의 균형을 맞출 수 있습니다. 대부분의 경우 유클리드 거리를 계산하기 전에 예측 변수를 표준화해야 합니다. 새로운 데이터를 표준화할 수 있는 평균과 표준편차는 훈련 데이터의 것이며, 새로운 데이터는 계산에 관여하지 않습니다. 새 데이터와 같은 검증 데이터도 이 계산에 포함되지 않습니다.

정의하고자 하는 데이터와 현재 레코드 사이의 거리를 계산한 후, 이웃의 클래스에 따라 분류할 레코드에 클래스를 할당하는 규칙이 필요합니다.

가장 간단한 경우는 k =1이며, 여기서 가장 가까운 데이터(가장 가까운 이웃)를 찾고 새 데이터를 가장 가까운 이웃과 같은 클래스에 속하는 것으로 분류합니다.

단일 최근접 이웃을 사용하여 레코드를 분류하는 이 간단하고 지각적인 개념이 훈련 세트에 여러 레코드가 있을 때 강력할 수 있다는 것은 놀라운 사실입니다. 1-최근접이웃 설계의 오분류 오차는 각 클래스에 대한 확률밀도함수를 정확히 이해할 수 있을 때 오차의 2배 이하인 오분류율을 갖는다는 것을 변화시킨다.