Categories: Bash Scripts

파이썬 KNN 알고리즘을 이용한 분류 문제 해결하기

안녕하세요! mj입니다.

오늘은 KNN(최근접 이웃 알고리즘)을 사용하여 분류 문제를 해결하는 방법에 대해 알아보겠습니다.

KNN 알고리즘이란?

KNN은 데이터 포인트를 분류할 때 가장 가까운 K개의 이웃을 참조하는 간단하면서도 효과적인 알고리즘입니다. 이 알고리즘은 주로 분류 문제에 사용됩니다. KNN의 기본 아이디어는 비슷한 데이터 포인트들이 같은 클래스를 공유한다는 것입니다.

KNN의 작동 원리

  1. 데이터셋을 준비합니다.
  2. K값을 설정합니다.
  3. 새로운 데이터 포인트의 이웃을 찾습니다.
  4. 가장 많은 클래스를 선택하여 분류합니다.

파이썬으로 KNN 구현하기

이제 KNN 알고리즘을 파이썬으로 구현해 보겠습니다. 예를 들어, 유명한 아이리스 데이터셋을 사용하여 꽃의 종류를 분류해 보겠습니다.

필요한 라이브러리 설치

pip install numpy pandas scikit-learn

코드 예제


import numpy as np
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score

# 아이리스 데이터셋 로드
iris = load_iris()
X = iris.data
y = iris.target

# 데이터셋을 학습용과 테스트용으로 나누기
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# KNN 모델 생성
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)

# 예측 수행
y_pred = knn.predict(X_test)

# 정확도 평가
accuracy = accuracy_score(y_test, y_pred)
print(f"정확도: {accuracy:.2f}")
        

출력 결과

위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다:

정확도: 1.00

위의 결과는 모델이 테스트 데이터에 대해 100% 정확도를 달성했음을 보여줍니다.

다양한 K값으로 실험하기

K값을 변경하여 모델의 성능을 비교해 보겠습니다. 다음은 K값을 1에서 5까지 변화시킨 결과입니다:


for k in range(1, 6):
    knn = KNeighborsClassifier(n_neighbors=k)
    knn.fit(X_train, y_train)
    y_pred = knn.predict(X_test)
    accuracy = accuracy_score(y_test, y_pred)
    print

mj

Recent Posts

대화형 데이터 시각화의 장점과 활용 방법 | 파이썬 가이드

파이썬을 활용한 대화형 데이터 시각화의 장점과 다양한 활용 사례를 알아보세요.

5일 ago

파이썬 대화형 데이터 시각화 기초 – MJ의 블로그

대화형 데이터 시각화의 기초를 배우고, 파이썬을 활용한 다양한 기법을 알아보세요.

1개월 ago

파이썬으로 대화형 데이터 시각화 만드는 방법

파이썬으로 대화형 데이터 시각화를 만드는 방법을 알아보세요. 다양한 예시와 함께 제공합니다.

1개월 ago

대화형 데이터 분석 도구의 완벽한 가이드

대화형 데이터 분석 도구의 종류와 사용법을 소개합니다. 예시와 함께 알아보세요.

1개월 ago

파이썬 대화형 대시보드 디자인 원칙

대화형 대시보드의 효과적인 디자인 원칙과 예시를 소개합니다.

2개월 ago

파이썬으로 대화형 대시보드 구현하기 – mj의 블로그

파이썬을 이용한 대화형 대시보드 구현 방법을 배우고 다양한 예시를 확인하세요.

2개월 ago