K 최근접 이웃: 주변에 있는 것을 사용하여 예측하기
소개
K Nearest Neighbors는 또한 KNN이 예측을 생성하기 위해 가장 가까운 점을 사용하는 회귀 및 분류 알고리즘으로 알고 있습니다. K는 예측을 위해 보고자 하는 점의 수입니다. 이것은 회귀 및 분류에 대해 약간 다르게 작동한다고 말했습니다. 회귀의 경우 KNN은 k개의 가장 가까운 이웃의 평균을 취하여 예측하고 분류의 경우 KNN은 가장 가까운 이웃의 가장 일반적인 클래스를 취합니다. 이제 제 예술 기술의 먼지를 털고 시각적으로 만들어 보도록 하겠습니다.
위는 K=3(3개의 가장 가까운 점)을 사용하여 예측되는 점인 별과 함께 분류에 사용되는 KNN의 예입니다. 예측된 점은 해당 점에 가장 일반적인 클래스이므로 빨간색으로 분류합니다.
거리 계산
포인트가 항상 2D 평면에 존재하는 것은 아니므로 더 기술적으로 알아보기 위해 거리 계산 방법을 살펴보겠습니다. 맨하탄 거리, 유클리드 거리 및 Minkowski 거리가 가장 일반적으로 사용되는 거리입니다.
맨해튼 거리
맨해튼 거리는 여러분이 맨해튼과 수학을 들을 때 여러분이 이동한 블록의 양을 세는 것을 들을 때 생각하는 것과 정확히 관련이 있습니다. 공식은 각 방향으로 이동한 거리의 절대값을 합한 것입니다. 따라서 위치 (0,0)에서 시작하여 위치 (4,5)로 이동하면 |0-4|+|0-5| = 9.
파이썬에서 그것을 가지고 놀고 싶다면 다음과 같이 보일 것입니다.
# Locations of two points A and B
A = (0, 0)
B = (4, 5)
manhattan_distance = 0
# Use a for loop to iterate over each element
for i in range(2):
# Calculate the absolute difference and add it
manhattan_distance += abs(A[i] - B[i])
manhattan_distance
*A 및 B 좌표에 더 많은 숫자를 추가한 다음 좌표 중 하나에 있는 숫자의 양으로 범위를 늘려보십시오.
유클리드 거리
이것은 계산에 많은 것을 추가하는 것처럼 보일 수 있지만 실제로는 그렇지 않습니다. a^2 + b^2 = c^2의 두 차원만 있는 이 공식을 살펴보겠습니다. 바로 피타고라스의 정리입니다! 유클리드 거리는 직선으로 이동하는 점 사이의 거리입니다.
다시 한 번 Python에서 사용해 보고 싶다면 다음과 같은 코드가 있습니다.
from math import sqrt
# Locations of two points A and B
A = (2, 3, 5)
B = (1, -1, 3)
euclidean_distance = 0
# Use a for loop to iterate over each element
for i in range(3):
# Calculate the difference, square, and add it
euclidean_distance += (A[i] - B[i])**2
# Square root of the final result
euclidean_distance = sqrt(euclidean_distance)
euclidean_distance
민코프스키 거리
그런 다음 마지막으로 내가 다룰 거리에서 Minkowski 거리가 있습니다. 나는 맨해튼과 유클리드 거리를 실제로 포함한다는 점을 제외하고는 이 거리를 계산하는 수학에 너무 많이 들어가지 않을 것입니다. c를 1로 바꾸면 맨해튼 거리가 되고 2로 똑같이 하면 유클리드 거리가 됩니다. . Minkowski 거리는 Normed Vector Space에서 일반화된 거리 메트릭이기 때문입니다.
얼마나 많은 K를 사용해야합니까?
이제 우리는 거리 메트릭을 살펴보고 "가장 가까운 이웃"을 찾는 아이디어를 얻었으므로 살펴봐야 할 가장 가까운 지점이 몇 개인지 살펴보겠습니다. 너무 작은 K를 선택하면 많은 노이즈가 발생하고 모델이 "과적합"되는 방향으로 기울어지기 때문에 까다로울 수 있고 데이터 세트에 따라 달라질 수 있습니다. 그런 다음 너무 큰 K를 선택하면 모두 우리의 예측은 동일한 결과에 기울고 "과소 적합"합니다. 따라서 일반적으로 K = sqrt(N)으로 시작하는 것이 가장 좋습니다. N은 샘플 크기이고 클래스 수가 짝수인 경우 K는 홀수입니다. 여기에서 첫 번째 값 주변의 다양한 K 모델로 모델을 생성하고 오류율을 비교할 수 있습니다.
결론
이것이 KNN 모델을 실행하면서 뒤에서 무슨 일이 일어나고 있는지, 거리가 어떻게 계산되는지, 이웃이 실제로 무엇인지를 더 잘 이해하는 데 도움이 되기를 바랍니다.
Reference
이 문제에 관하여(K 최근접 이웃: 주변에 있는 것을 사용하여 예측하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/trossii/k-nearest-neighbors-using-what-is-around-you-to-make-a-prediction-514j
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
포인트가 항상 2D 평면에 존재하는 것은 아니므로 더 기술적으로 알아보기 위해 거리 계산 방법을 살펴보겠습니다. 맨하탄 거리, 유클리드 거리 및 Minkowski 거리가 가장 일반적으로 사용되는 거리입니다.
맨해튼 거리
맨해튼 거리는 여러분이 맨해튼과 수학을 들을 때 여러분이 이동한 블록의 양을 세는 것을 들을 때 생각하는 것과 정확히 관련이 있습니다. 공식은 각 방향으로 이동한 거리의 절대값을 합한 것입니다. 따라서 위치 (0,0)에서 시작하여 위치 (4,5)로 이동하면 |0-4|+|0-5| = 9.
파이썬에서 그것을 가지고 놀고 싶다면 다음과 같이 보일 것입니다.
# Locations of two points A and B
A = (0, 0)
B = (4, 5)
manhattan_distance = 0
# Use a for loop to iterate over each element
for i in range(2):
# Calculate the absolute difference and add it
manhattan_distance += abs(A[i] - B[i])
manhattan_distance
*A 및 B 좌표에 더 많은 숫자를 추가한 다음 좌표 중 하나에 있는 숫자의 양으로 범위를 늘려보십시오.
유클리드 거리
이것은 계산에 많은 것을 추가하는 것처럼 보일 수 있지만 실제로는 그렇지 않습니다. a^2 + b^2 = c^2의 두 차원만 있는 이 공식을 살펴보겠습니다. 바로 피타고라스의 정리입니다! 유클리드 거리는 직선으로 이동하는 점 사이의 거리입니다.
다시 한 번 Python에서 사용해 보고 싶다면 다음과 같은 코드가 있습니다.
from math import sqrt
# Locations of two points A and B
A = (2, 3, 5)
B = (1, -1, 3)
euclidean_distance = 0
# Use a for loop to iterate over each element
for i in range(3):
# Calculate the difference, square, and add it
euclidean_distance += (A[i] - B[i])**2
# Square root of the final result
euclidean_distance = sqrt(euclidean_distance)
euclidean_distance
민코프스키 거리
그런 다음 마지막으로 내가 다룰 거리에서 Minkowski 거리가 있습니다. 나는 맨해튼과 유클리드 거리를 실제로 포함한다는 점을 제외하고는 이 거리를 계산하는 수학에 너무 많이 들어가지 않을 것입니다. c를 1로 바꾸면 맨해튼 거리가 되고 2로 똑같이 하면 유클리드 거리가 됩니다. . Minkowski 거리는 Normed Vector Space에서 일반화된 거리 메트릭이기 때문입니다.
얼마나 많은 K를 사용해야합니까?
이제 우리는 거리 메트릭을 살펴보고 "가장 가까운 이웃"을 찾는 아이디어를 얻었으므로 살펴봐야 할 가장 가까운 지점이 몇 개인지 살펴보겠습니다. 너무 작은 K를 선택하면 많은 노이즈가 발생하고 모델이 "과적합"되는 방향으로 기울어지기 때문에 까다로울 수 있고 데이터 세트에 따라 달라질 수 있습니다. 그런 다음 너무 큰 K를 선택하면 모두 우리의 예측은 동일한 결과에 기울고 "과소 적합"합니다. 따라서 일반적으로 K = sqrt(N)으로 시작하는 것이 가장 좋습니다. N은 샘플 크기이고 클래스 수가 짝수인 경우 K는 홀수입니다. 여기에서 첫 번째 값 주변의 다양한 K 모델로 모델을 생성하고 오류율을 비교할 수 있습니다.
결론
이것이 KNN 모델을 실행하면서 뒤에서 무슨 일이 일어나고 있는지, 거리가 어떻게 계산되는지, 이웃이 실제로 무엇인지를 더 잘 이해하는 데 도움이 되기를 바랍니다.
Reference
이 문제에 관하여(K 최근접 이웃: 주변에 있는 것을 사용하여 예측하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/trossii/k-nearest-neighbors-using-what-is-around-you-to-make-a-prediction-514j
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이것이 KNN 모델을 실행하면서 뒤에서 무슨 일이 일어나고 있는지, 거리가 어떻게 계산되는지, 이웃이 실제로 무엇인지를 더 잘 이해하는 데 도움이 되기를 바랍니다.
Reference
이 문제에 관하여(K 최근접 이웃: 주변에 있는 것을 사용하여 예측하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/trossii/k-nearest-neighbors-using-what-is-around-you-to-make-a-prediction-514j텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)