R의 K-최근접이웃 알고리즘 [예제와 함께하는 궁극적인 가이드]
게시 됨: 2020-03-20R의 KNN 알고리즘은 다양성과 기능으로 인해 꽤 유명합니다. 따라서 머신 러닝을 공부하고 있다면 그 이름을 한번쯤은 들어보셨을 것입니다. "R에서 KNN이란 무엇입니까?" 또는 "어떻게 작동합니까?".
이 기사에서 우리는 바로 이러한 질문에 대한 답을 찾고 이 주제를 완전히 이해하는 데 도움을 줄 것입니다. 그러니 더 이상 고민하지 말고 들어가 봅시다.
목차
KNN 알고리즘이란?
KNN은 K Nearest Neighbor의 약자입니다. 포인트의 인접 데이터 포인트의 기능에 따라 데이터 포인트를 대상 클래스로 분류하는 지도 머신 러닝 알고리즘입니다.
기계가 사과와 오렌지의 이미지를 식별하고 구별하기를 원한다고 가정합니다. 그렇게 하려면 사과와 오렌지 이미지의 데이터 세트를 입력해야 합니다. 그런 다음 데이터 모델이 고유한 기능을 통해 각 과일을 감지하도록 하여 데이터 모델을 훈련해야 합니다. 예를 들어, 붉은 색으로 사과를 인식하고 색으로 오렌지를 인식할 수 있습니다.
데이터 모델을 훈련시킨 후에는 사과와 오렌지의 다른 이미지가 포함된 새 데이터 세트를 제공하여 테스트할 수 있습니다. 이제 KNN 알고리즘은 훈련 모델에서 발견한 특징에 따라 분류하여 사과와 오렌지를 분리합니다.
데이터 포인트의 기능을 인접 항목과 비교하여 얼마나 유사한지 확인합니다. 그리고 그 발견에 따라 분류할 것입니다.

대부분의 경우 그래프에 점을 표시합니다. 그리고 두 점 사이의 거리를 계산하려면 다른 공식을 사용해야 합니다. 두 데이터 포인트 사이의 거리를 계산하는 가장 일반적인 방법은 유클리드 거리입니다. 포인트에 존재하는 속성이나 속성에 관계없이 거리를 계산합니다.
KNN 알고리즘의 특징
다음은 R에서 KNN 알고리즘의 기능입니다.
- 지도 학습 알고리즘입니다. 이는 레이블이 지정된 입력 데이터를 사용하여 데이터 출력에 대한 예측을 수행함을 의미합니다.
- 간단한 기계 학습 알고리즘입니다.
- 여러 종류의 문제에 KNN 알고리즘을 사용할 수 있습니다.
- 비모수적 모델입니다. 이는 데이터에 대해 어떠한 가정도 하지 않는다는 것을 의미하므로 실제 데이터와 관련된 문제를 해결하는 데 매우 유용합니다.
- 데이터 포인트를 인접한 데이터 포인트와 비교하여 데이터를 분류합니다. 간단히 말해서, KNN 알고리즘의 작동은 속성의 유사성을 기반으로 합니다.
- 그것은 게으른 알고리즘의 범주에 속합니다. 게으른 알고리즘은 학습 데이터에서 판별 함수를 학습하는 대신 학습 데이터를 기억합니다. 기계 학습 알고리즘 유형에 대해 자세히 알아보세요.
- KNN을 사용하여 회귀 및 분류 문제를 해결할 수 있습니다.
KNN 알고리즘은 편향되지 않으며 위에서 논의한 기능으로 인해 많은 문제에서 선호되는 선택입니다. 그러나 모든 것에는 문제가 있으며 KNN도 예외는 아닙니다.
이 알고리즘은 너무 복잡한 문제를 해결하는 데 유용하지 않습니다. 해당 모델에는 추상화 프로세스도 없습니다. 적절한 모델을 위해서는 게으른 알고리즘이기 때문에 때때로 귀중한 통찰력을 놓칠 수 있으므로 고품질 데이터가 필요합니다. 빠르지만 데이터 정리에 상당한 시간을 할애해야 합니다.
어떻게 작동합니까?
R의 KNN이 어떻게 작동하는지 이해하기 위해 다른 예를 살펴보겠습니다.
데이터 세트에 두 개의 클래스가 있다고 가정합니다. 클래스 1에는 직사각형이 있고 클래스 2에는 원이 있습니다. 이 알고리즘을 사용하여 이 두 클래스 중 하나에 입력한 새 데이터 포인트를 할당해야 합니다. 이렇게 하려면 먼저 알고리즘에 대한 'K' 값을 정의해야 합니다. K는 알고리즘이 고려할 가장 가까운 이웃 점의 수를 나타냅니다.
이 예에서 K를 4로 입력한다고 가정합니다. 그리고 K = 4의 경우 이웃은 3개의 원과 1개의 직사각형입니다. 이 경우 점을 둘러싼 원의 수가 직사각형보다 많기 때문에 데이터 점을 클래스 2로 분류합니다.
이웃이 3개의 직사각형과 1개의 원이 있다면 클래스 1로 분류했을 것입니다. 우리는 이미 KNN 알고리즘이 가장 가까운 이웃을 결정하기 위해 두 점 사이의 거리를 계산하는 방법에 대해 논의했습니다. 이를 위해 유클리드 거리 공식을 사용합니다 .

유클리드 거리 공식은 다음과 같습니다.
d(p,q) = d(q,p) = ( q 1 – p 1 ) 2 +( q 2 – p 2 ) 2 … ( q n – p n ) 2
여기에서 p = (p1, p2, p3, … pn) 및 q = (q1, q2, q3, … qn)입니다. 이 방정식에서 'd'는 점 p와 q 사이의 유클리드 거리를 나타냅니다.
보시다시피 아주 간단합니다. 그리고 그 단순성으로 인해 가장 널리 사용되는 알고리즘 중 하나이기 때문에 매우 다재다능합니다. 다양한 문제에 사용할 수 있습니다.
R에서 KNN의 예
실생활에서 KNN 알고리즘의 응용 프로그램을 어디에서 볼 수 있는지 궁금할 것입니다. 그러려면 아마존을 봐야 합니다.
Amazon의 큰 성공은 많은 요인에 달려 있지만 그 중 두드러진 요인은 첨단 기술의 사용입니다. 그 기술 중 하나가 기계 학습입니다. 그들의 추천 시스템은 수억 달러의 수익을 창출하는 데 도움이 되었습니다 . 그리고 이 추천 시스템은 이를 위해 KNN 알고리즘을 사용합니다.
더 읽어보기: 기계 학습 프로젝트 아이디어

아마존에서 가죽 재킷이 달린 검은색 Wrangler's 청바지를 구입했다고 가정해 보겠습니다. 몇 주 후, 다른 사람이 Amazon에서 같은 청바지를 구입하지만 그 가죽 재킷은 구입하지 않습니다. 아마존은 이 사람이 당신과 비슷한 구매 패턴을 보여 재킷을 사도록 추천할 것입니다.
그래서 아마존의 추천 시스템은 사람들의 구매 패턴을 기반으로 작동합니다. 그리고 이 유사성을 이해하기 위해 KNN 알고리즘을 이 원칙에 기반한 알고리즘으로 사용할 수 있습니다. 이제 이 알고리즘의 기본 사항과 실제 응용 프로그램을 알게 되었습니다. 다른 사용 예가 많이 있지만 지금은 이것만 짚고 넘어가겠습니다.
세계 최고의 대학에서 데이터 과학 과정 을 배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.
결론
R의 KNN 알고리즘에는 많은 용도가 있습니다. 이 기사를 읽고 나면 이 알고리즘에 익숙할 것입니다. 이러한 기계 학습 알고리즘에 대해 자세히 알고 싶다면 자세한 기계 학습 과정 을 살펴봐야 합니다 .
다른 측면을 제외하고 기계 학습과 여기에 사용되는 다양한 알고리즘에 대해 많은 것을 배우게 될 것입니다.
R 프로그래밍 언어는 무엇에 사용됩니까?
프로그래밍 언어 R은 통계 및 데이터 시각화와 관련된 계산을 위해 만들어졌습니다. 오늘날 R은 통계학자, 데이터 과학자, 데이터 및 비즈니스 분석가에 의해 광범위하게 사용됩니다. R의 핵심에는 많은 통계 기능이 내장되어 있으므로 R이 달성할 수 있는 많은 핵심 데이터 분석에 타사 라이브러리가 필요하지 않습니다. 다른 많은 컴퓨터 프로그래밍 언어와 달리 R은 범용 언어가 아닙니다. 따라서 예외적으로 잘하는 특정 기능을 달성하기 위해 본질적으로 사용됩니다. 그러나 R은 사용자가 생성하는 방대한 양의 일일 데이터에서 유용한 통찰력을 얻기 위해 모든 산업 분야의 기업에서 광범위하게 사용됩니다.
R 프로그래밍의 장점은 무엇입니까?
R 프로그래밍 언어는 초보자와 전문 프로그래머 모두에게 다양한 이점을 제공합니다. 주요 이점에는 통계적 계산 모델을 구축하기 위해 제공하는 기능과 용이성이 포함됩니다. 다음으로 R은 병렬 분산 컴퓨팅을 지원하는 오픈 소스 프로그래밍 언어입니다. 라이선스나 사용료를 들이지 않고도 누구나 사용할 수 있습니다. 또한 다양한 기능을 지원하는 방대한 라이브러리와 플랫폼 독립적인 프레임워크로 편의성을 더했습니다. R은 효과적인 데이터 정리, 웹 스크래핑 및 데이터 랭글링 기능에도 사용할 수 있으며 기계 학습 모델을 개발하는 데 널리 사용됩니다.
KNN을 Lazy Learner 알고리즘이라고 부르는 이유는 무엇입니까?
K-Nearest Neighbors Algorithm은 기계 학습에 사용되는 가장 간단한 알고리즘 중 하나입니다. 그러나 종종 게으른 학습자라고 합니다. 그 이유는 이 알고리즘에 모든 훈련 관련 데이터를 제공할 때 자체 훈련을 하지 않기 때문입니다. 판별 함수를 학습하는 대신 전체 학습 데이터 세트를 암기했습니다. 새로운 데이터 포인트가 추가될 때마다 이 알고리즘은 전체 훈련 세트에서 가장 가까운 이웃을 검색하므로 예측하는 데 걸리는 시간이 변함없이 늘어납니다. 이로 인해 종종 계산 비용이 많이 들고 시간이 많이 소요됩니다.