[기계학습심화] 6. KNN 구현

2025. 4. 17. 03:26·CS/기계학습심화
반응형

sklearn 라이브러리에는 다양한 데이터 셋이 존재한다.

그 중에서 Iris (붓꽃) 데이터 셋을 사용해 붓꽃의 종류를 구분하는 모델을 KNN으로 만들어보자.

 

 

 

먼저 붗꽃 데이터를 가져온다.

붓꽃 데이터는 이렇게 4개의 실수로 구성된 리스트의 나열이다.

 

 

4개의 실수는 각각 꽃받침과 꽃잎의 크기를 나타낸다.

iris 데이터는 data 부분과 target 부분이 있다.

 

 

 

target 부분에는 data 영역에 있는 붓꽃이 어떤 class 의 붗꽃인지를 나타내는 정보가 같은 인덱스에 맞춰 들어가있다.

이제 이 데이터를 사용하여 새로운 붓꽃의 꽃받침과 꽃잎 길이가 주어졌을 때 이 붓꽃의 class 가 어디에 속하는지 분류해보자.

 

 

kNN 알고리즘으로 분류 모델을 만들기에 앞서 성능을 테스트할 테스트 데이터를 분리한다.

sklearn 의 train_test_split 을 사용하여 150개 데이터를 8:2 로 분류한다.

 

 

 

kNN 분류기 모델은 sklearn 에 이미 존재한다.

이 모델을 가져와 k = 6 으로 세팅한 모델을 준비한다.

그리고 train 데이터 셋으로 모델을 학습시킨다. (사실 학습시킬 건 없다. 그냥 데이터를 준비만 해두는 셈이다.)

 

그리고 X_test 로 테스트 데이터의 입력값을 knn 모델에 넣어 y_pred 예측값을 뽑는다.

예측값 y_pred 와 테스트 저답 y_test 를 비교하여 정확도를 측정하였더니 96.6% 가 나왔다.

 

 

 

이번엔 기존 데이터를 굳이 나누지 않고 모든 데이터를 다 넣어서 k = 5 로 모델을 학습시킨다.

이 모델에 새로운 임의의 데이터 [3, 4, 5, 2] 와 [5, 4, 2, 2] 를 넣어 분류 결과를 출력해보았다.

이 분류 결과는 96% 확률로 맞을 것이다.

 

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'CS > 기계학습심화' 카테고리의 다른 글

[기계학습심화] 8. K-Means  (0) 2025.04.18
[기계학습심화] 7. SVM (support vector machine)  (1) 2025.04.18
[기계학습심화] 5. KNN & Hyperparameter  (0) 2025.04.15
[기계학습심화] 4. 경사하강법의 확장 & SGD  (1) 2025.04.13
[기계학습심화] 3. 선형 회귀 & 경사하강법 구현  (0) 2025.04.11
'CS/기계학습심화' 카테고리의 다른 글
  • [기계학습심화] 8. K-Means
  • [기계학습심화] 7. SVM (support vector machine)
  • [기계학습심화] 5. KNN & Hyperparameter
  • [기계학습심화] 4. 경사하강법의 확장 & SGD
에버듀
에버듀
개발은 좋은데 뭘로 개발할까
  • 에버듀
    Blog. 에버듀
    에버듀
  • 전체
    오늘
    어제
    • 분류 전체보기 (614) N
      • 개인 프로젝트 (43)
        • 토이 프로젝트 (3)
        • [2020] 카카오톡 봇 (9)
        • [2021] 코드악보 공유APP (22)
        • [2022] 유튜브 뮤직 클론코딩 (9)
        • [2025] 한글 SQL 데이터베이스 (0)
      • 팀 프로젝트 (22)
        • [2020] 인공지능 숫자야구 (4)
        • [2022] OSAM 온라인 해커톤 (10)
        • [2024] GDSC 프로젝트 트랙 (6)
        • [2025] 큰소리 웹 페이지 (2)
      • CS (335)
        • 자료구조 (19)
        • 어셈블리 (41)
        • 멀티미디어응용수학 (7)
        • 컴퓨터 구조 (29)
        • 알고리즘 분석 (4)
        • 컴퓨터 네트워크 (38)
        • 프로그래밍언어론 (15)
        • HCI 윈도우즈프로그래밍 (26)
        • 기초데이터베이스 (29)
        • 운영체제 (23)
        • 오토마타 (24)
        • 문제해결기법 (11)
        • 블록체인 (22)
        • 소프트웨어공학 (21)
        • 기계학습심화 (12)
        • 컴퓨터그래픽스와 메타버스 (8)
        • 분산시스템특론 (6)
      • 자기계발 (44)
        • 생각 정리 (22)
        • 대외활동 (11)
        • 동아리 (7)
        • 자격증 (3)
        • 머니 스터디 (1)
      • 알고리즘 (PS) (107)
        • BOJ (101)
        • Programmers (5)
        • 알고리즘 이모저모 (1)
      • WEB(BE) (8) N
        • express.js (1)
        • Spring & Spring Boot (7) N
      • WEB(FE) (2)
        • html, css, js (1)
        • React.js (1)
      • Tool & Language (6)
        • Edit Plus (1)
        • Git (1)
        • Python3 (2)
        • Java (2)
      • Infra (12)
        • AWS (1)
        • Oracle Cloud (8)
        • Firebase (2)
        • Network (1)
      • Android (18)
        • Java (6)
        • Flutter (12)
      • Window (2)
        • Visual Studio 없이 WPF (1)
        • MFC (1)
      • 독서 (14)
        • Inside Javascript (7)
        • Database Internals (6)
        • 한 글 후기 (1)
  • 링크

    • github
    • website
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
에버듀
[기계학습심화] 6. KNN 구현
상단으로

티스토리툴바