티스토리 뷰

반응형


지도학습 알고리즘

  • 지도학습 관련 알고리즘들로는 

  • 이 있다고 말씀 드렸었습니다. 그 중 오늘은 가장 고전적이며 직관적인 최근접 이웃법 (Nearest Neighbor) 에 대해 알아보겠습니다.

최근접 이웃법 (Nearest Neighbor) - 이론

  • 최근접 이웃법은 한마디로 유유상종 이라고 할 수 있습니다. 새로운 데이터를 입력 받았을 때 가장 가까이 있는 것이 무엇이냐를 중심으로 새로운 데이터의 종류를 정해주는 알고리즘 입니다. 그림으로 살펴보겠습니다.

  • 저 물음표에는 세모와 동그라미 중에 어떤게 들어갈까요?

  • 최근접 이웃 알고리즘은 "?" 의 주변에 있는 것이 세모이기 때문에 세모라고 판단하는 알고리즘 입니다. 매우 간단하고 직관적인 알고리즘 입니다.

  • 하지만 단순히 가장 가까이에 있는 것과 같게 선택하는 것이 옳은 분류가 될까요? 다음 경우를 살펴보겠습니다.

  • '?' 에서 가장 가까운 것은 파란 동그라미 입니다. 하지만 조금만 더 넓혀서 본다면 뭔가 부적절하다는 것이 느껴집니다.

  • 이렇기 때문에 단순히 주변에 무엇이 가장 가까이 있는가를 보는 것이 아니라 주변에 있는 몇개의 것들을 같이 봐서 가장 많은 것을 골라내는 방식을 사용하게 됩니다. 이 방식을 KNN 이라고 부릅니다. KNN 에서 K 는 주변의 개수를 의미합니다.

  • K 가 1일때는 '?' 를 파란 동그라미라고 판단하겠지만 K 를 4로 변경한다면 빨간 세모라고 판단할 것입니다.

  • 하지만 문제가 하나 있습니다. 과연 K 는 몇이어야 좋은 것일까. 최선의 k값을 선택하는 것은 데이터마다 다르게 접근해야합니다. 일반적으로 k 값이 커질수록 분류에서 이상치의 영향이 줄어들지만 분류자체를 못하게 되는 상황이 발생합니다. 일반적으로는 총데이터의 제곱근값을 사용하고 있으며 최적의 k 값을 찾기 위한 연구는 아직도 진행중입니다.



지도학습 알고리즘 - 예제1 - 토마토 분류

  • 아래의 사진은 음식을 당도와 아삭함으로 구분한 예제 입니다.

  • 토마토는 6,4 의 데이터를 가지고 있습니다. 과일, 단백질, 채소 중에 어떤 부분에 분류될까요?

  • 다음 테이블은 토마토의 예측 결과표 입니다. k 의 값의 변화에 따라 예측이 달라지는 것을 알 수 있습니다.



  • 사실 토마토는 채소인데 당도와 아삭함으로 구별해보았을 때는 과일이나 단백질로 주로 나오는 걸 알 수 있습니다. 보통 사람들이 처음에 토마토가 채소라는 것을 알고 놀라는 것을 보면 적절하게 분류했다고 할 수도 있을까요?


지도학습 알고리즘 - 예제2 -  암진단

  • 두번째 예제는 암진단 데이터 입니다. 데이터는 이곳 에서 받으시거나 확인하실 수 있습니다. 이 데이터는 32개의 컬럼을 가지고 있습니다. 그중 첫번째는 ID 이기 때문에 제외하고 두번째는 종속변수인 것을 고려하면 30개의 독립변수가 있는 것입니다. 첫번째 예제처럼 독립변수가 2개 정도라면 사람이 손으로도 구할 수 있으며 그래프를 그렸을 경우에는 더욱 직관적으로 이해할 수 있습니다. 하지만 이와 같이 컬럼이 30개가 된다면 머리로 계산해내는 것은 쉽지 않습니다.
  • 총 569 개의 세포 정보가 입력 되어 있는데, 이 한정된 자료로 효과적인 모델을 만들어야 합니다. 추가 자료가 있다면 569개의 정보를 모두 모델 생성과정에 사용할 수 있겠지만 자료가 없다면 이 자료를 TRAIN 데이터와 TEST 데이터로 나누어 사용해야 보다 일반적인 모델을 만들 수 있습니다. 다시 말하지만 우리의 목적은 "레이블이 없는 데이터를 예측하는 것" 입니다.
  • 1번부터 469번까지를 TRAIN 데이터로, 나머지 데이터를 TEST 데이터로 구성 한 뒤 KNN 알고리즘을 이용해서 분석해보았습니다.
  • R 을 통해 분석한 결과 Cross Table 입니다. 세로는 실제 Test 데이터의 레이블, 가로는 예상 레이블 입니다. 
    • 좌상단의 61 이라는 숫자는 실제로 악성인데 예상도 악성인 것
    • 우상단의 0 은 실제로 악성인데 음성이라고 예상한 것
    • 좌하단의 4 는 실제로 음성인데 악성이라고 예상한 것
    • 우하단의 35 는 실제로 음성이고 예상도 음성인 것을 말합니다.
  • 따라서 96개는 제대로 분류 했고 4개는 잘못 분류 했기 때문에 정확도 96%의 모델이라고 말할 수 있습니다.
  • 이번 예제의 경우에는 정확도가 높게 나왔지만 낮게 나왔을 경우 높이는 여러 방법들이 있습니다. Z - 점수 표준화 방법, 데이터 셔플 등 여러 기술을 통해 정확도를 높이는 방법들이 있습니다.


반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함