안녕하세요 MYSAS 홍보대사 최준입니다.
또 다시 오랜만에 E-miner 활용하기를 연재하게 되었네요...^^;;
이번에 연재할 내용은 바로 KNN 알고리즘 입니다~^_^
먼저 KNN 알고리즘에 대한 정의부터 알려드리겠습니다~
KNN(K Nearest Negihbor)방식은 분류되어 있지 않은 데이터(Test data)들을
분류된 데이터(Training data)들 중 가장 비슷한 속성을 가진 그룹으로 분류해주는 방식입니다.
Training data(학습데이터)
: 명목변수(속성)에 의해 몇가지 그룹으로 분류된 데이터
Test data(테스트 데이터)
: Training data(학습데이터)와 같은 속성의 명목 변수를 가지고 있지만 그룹으로 분류되지 않은 데이터
즉, Test data와 Training data의 거리를 비교한 후 K개의 가장 가까운 이웃을 선발하고,
K개의 Training data들 중 가장 많은 부분을 차지한 그룹으로 Test data의 그룹을 할당하는 것을 의미합니다.
이러한 KNN(K Nearest Negihbor)의 장점과 단점은 다음과 같습니다.
장점 : 간단하고 효과적, 데이터 기본적인 분석가정이 없음, 학습과정이 빠름
단점 : 모델구축을 하지 않기 때문에 속성들간의 관계에서 새로운 인사이트를 얻는데 제한
, 명목변수와 결측값은 따로 처리해야할 필요
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
실습
제가 예시로 보여주는 데이터는 유방암 진단 세포에 대한 데이터입니다. (wisc_bc_data.sas7bdat)
기계학습을 통해서 악성반응의 세포들을 발견하는 것을 자동화 시킨다면,
1) 의사들이 진단보다 치료에 더 많은 시간을 쓸 수 있고,
2) 자동화 된 시스템을 사용함으로써 의사 개인 착오에 의한 부정확성을 줄일 수 있습니다.
wisc_bc_data는 Wisconsin 대학 연구팀에서 제공한 데이터 입니다.
(참조 : Brett_Lantz, Machine Learning with R)
유방암 데이터를 읽어들인 다음에 KNN 알고리즘을 통해서 유방암 진단을 해보겠습니다.
이 자료는 569개의 관측치(조직검사)와, 32개의 변수를 가지고 있습니다.
diagnosis 변수의 역할을 Target으로 바꾸고, 레벨 또한 Binary로 바꿔 준 다음에 wisc_bc_data 데이터를 불러옵니다.
통계량 탐색을 해보면 preimter_worst, area_worst와 같은 몇가지 변수의 왜도가
왼쪽으로 치우쳐져 있음을 확인할 수 있습니다.
통계량 탐색 노드 결과를 확인해보면 preimter_worst, area_worst와 같은 변수는
타겟변수 diagnosis에 많은 영향을 주는 변수임을 확인할 수 있기 때문에
위와 같이 왼쪽으로 치우쳐져있는 왜도 문제를 해결해야 할 필요성이 있음을 확인할 수 있습니다.
그렇기 때문에 다음번 연재에서는 왼쪽으로 치우쳐져 있는 왜도 문제를 해결하고,
KNN 알고리즘을 이용하는 방법에 대해서 설명해 보겠습니다~
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!