머신 러닝을위한 KNN (K-Nearest Neighbors) 알고리즘

Madison Schott

팔로우

2019 년 4 월 22 일 · 5 분 읽기

입문 머신 러닝 알고리즘 시리즈의 1 부

머신 러닝 및 기본 알고리즘에 익숙한 경우 현장에서 사용 된 경우 k- 최근 접 이웃 알고리즘 (KNN)에 대해 들어 보셨을 것입니다. 이 알고리즘은 기계 학습에 사용되는보다 간단한 기술 중 하나입니다. 사용하기 쉽고 계산 시간이 짧기 때문에 업계에서 많은 사람들이 선호하는 방법입니다.

KNN이란? KNN은 가장 유사한 포인트를 기준으로 데이터 포인트를 분류하는 모델입니다. 테스트 데이터를 사용하여 분류되지 않은 포인트가 무엇으로 분류되어야하는지에 대해 “교육적인 추측”을합니다.

장점 :

  • 사용하기 쉽습니다.
  • 빠른 계산 시간.
  • 데이터에 대해 가정하지 않습니다.

단점 :

  • 정확성은 데이터의 품질에 따라 달라집니다. 데이터.
  • 최적의 k 값 (가장 가까운 이웃의 수)을 찾아야합니다.
  • 경계에서 데이터 요소를 분류 할 수있는 경계에서 데이터 포인트를 분류하는 데 어려움이 있습니다.

KNN은 비 매개 변수이자 lazy의 예로 간주되는 알고리즘입니다. 이 두 용어는 정확히 무엇을 의미합니까?

  • 비모수는 가정을하지 않음을 의미합니다. 모델은 구조가 정상이라고 가정하지 않고 주어진 데이터로 전적으로 구성됩니다.
  • 지연 학습은 알고리즘이 neralizations. 이것은이 방법을 사용할 때 관련된 교육이 거의 없음을 의미합니다. 이 때문에 모든 학습 데이터는 KNN을 사용할 때 테스트에도 사용됩니다.

KNN을 사용하는 위치

KNN은 종종 간단한 추천 시스템에서 사용됩니다. 인식 기술 및 의사 결정 모델. 넷플릭스 나 아마존과 같은 회사들이 다른 영화를 보거나 구매할 책을 추천하기 위해 사용하는 알고리즘입니다. Netflix는 심지어 가장 정확한 추천 알고리즘을 만든 팀에 100 만 달러를 수여하는 Netflix Prize 대회를 시작했습니다.

“하지만이 회사들은 어떻게이 작업을 수행할까요?” 음,이 회사들은 여러분이 본 영화 나 웹 사이트에서 구입 한 책에 대해 수집 한 데이터 세트에 KNN을 적용합니다. 그런 다음 이러한 회사는 사용 가능한 고객 데이터를 입력하고이를 유사한 영화를 본 다른 고객과 비교합니다. 이 데이터 포인트는 KNN을 사용하여 과거를 기반으로 특정 프로필로 분류됩니다. 그러면 권장되는 영화와 책은 알고리즘이 해당 데이터 포인트를 분류하는 방법에 따라 달라집니다.

위 이미지는 주어진 데이터 세트를 기반으로 데이터 포인트를 분류하려고 할 때 KNN이 작동하는 방식을 시각화합니다. 가장 가까운 포인트와 비교됩니다. 가장 가까운 지점과 가장 유사한 지점을 기준으로 분류됩니다. 여기서 Xj 지점은 각 지점 그룹으로부터의 거리에 따라 W1 (빨간색) 또는 W3 (녹색)으로 분류됩니다.

마 KNN이면의 주제

다른 거의 모든 것과 마찬가지로 KNN은 그것이 사용하는 깊이 뿌리 박힌 수학적 이론 때문에 작동합니다. KNN을 구현할 때 첫 번째 단계는 데이터 포인트를 특징 벡터 또는 수학적 값으로 변환하는 것입니다. 그런 다음 알고리즘은 이러한 점의 수학적 값 사이의 거리를 찾는 방식으로 작동합니다. 이 거리를 찾는 가장 일반적인 방법은 아래와 같이 유클리드 거리입니다.

KNN은이 공식을 실행하여 각 데이터 포인트와 테스트 데이터 사이의 거리를 계산합니다. 그런 다음 이러한 포인트가 테스트 데이터와 유사 할 확률을 찾아 가장 높은 확률을 공유하는 포인트를 기준으로 분류합니다.

이 공식을 시각화하려면 다음과 같이 표시됩니다.

결론

이제 가장 기본적인 기계 학습 알고리즘 중 하나의 기본 사항을 알게되었습니다. .다양한 데이터 세트를 기반으로 모델을 구축하는 방법을 처음 배울 때 시작하기에 좋은 곳입니다. 다양한 포인트와 정확한 정보가 포함 된 데이터 세트가있는 경우 KNN으로 머신 러닝을 탐색하기에 좋은 곳입니다.

이 알고리즘 사용을 시작할 때 다음 세 가지 사항에 유의하세요.

  • 먼저, 작업하기 쉬운 데이터 세트를 찾으십시오. 이상적으로는 많은 다른 포인트와 레이블이 지정된 데이터가있는 데이터 세트를 찾으십시오.
  • 둘째, 어떤 언어가 될 것인지 파악하십시오. 문제를 해결하는 데 사용하기 가장 쉽습니다. 저는 R에서 KNN을 사용하는 데 가장 익숙하지만 Python은 기계 학습 전문가에게 인기있는 언어이기도합니다.
  • 셋째, 조사해보십시오. 데이터 세트에서 가장 정확한 결과를 찾을 수 있도록이 알고리즘을 사용하는 올바른 방법을 배우는 것이 중요합니다.

이 알고리즘을 개선 할 수있는 방법에 대한 다양한 연구가 수행되었습니다. 이러한 연구는 더 정확한 분류를 위해 범주를 다르게 평가할 수 있도록하는 것을 목표로합니다. 이러한 카테고리의 가중치는 거리 계산 방식에 따라 다릅니다.

결론적으로 이것은 사용 용이성 및 빠른 계산 시간과 같은 여러 가지 이유로 신뢰할 수있는 기본적인 머신 러닝 알고리즘입니다. 머신 러닝의 세계를 탐색하기 시작할 때 사용하기에 좋은 알고리즘이지만 여전히 개선과 수정의 여지가 있습니다.

Write a Comment

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다