Allen's 데이터 맛집

[머신러닝] 분류 : KNeighborsClassifier(LogisticRegression) 본문

Machine Learning/머신러닝

[머신러닝] 분류 : KNeighborsClassifier(LogisticRegression)

Allen93 2023. 9. 5. 23:01
"주변의 친구를 물어보다, K-Nearest Neighbors 분류 모델"



이번에는 데이터 분류에 사용되는 머신러닝 알고리즘 중 하나인 'K-Nearest Neighbors(KNN)' 분류 모델에 대해 알아보려 합니다. 이 모델은 주변 데이터의 클래스를 참고하여 예측하는 간단하면서도 강력한 방법입니다.

knn

이미지 출처 : https://bkshin.tistory.com/entry/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-6-K-%EC%B5%9C%EA%B7%BC%EC%A0%91%EC%9D%B4%EC%9B%83KNN



KNN 분류 모델은 주어진 데이터 포인트 주변의 k개의 이웃 데이터를 참고하여 예측을 수행합니다. 이웃 데이터 포인트들의 클래스 중 가장 많은 클래스를 현재 데이터 포인트의 클래스로 예측하는 방식입니다.

간단한 파이썬 코드 예제:

from sklearn.datasets import load_iris
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
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 분류 모델 생성 및 학습 (이웃 수: 3)
model = KNeighborsClassifier(n_neighbors=3)
model.fit(X_train, y_train)

# 예측
y_pred = model.predict(X_test)

# 정확도 평가
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)


적용 상황과 장단점:


KNN 분류 모델은 주변 데이터의 클래스를 기반으로 예측하기 때문에, 데이터의 패턴을 쉽게 학습하고 복잡한 결정 경계도 잘 잡아냅니다. 이 모델은 특히 데이터의 분포가 복잡하거나 불규칙한 경우에 좋은 성능을 보입니다.

장점으로는 모델을 구성하는데 많은 하이퍼파라미터 튜닝이 필요하지 않으며, 비교적 간단한 방식으로 다양한 분류 문제에 활용할 수 있습니다. 또한 새로운 데이터가 추가될 때마다 모델을 다시 학습할 필요 없이 빠르게 적용할 수 있는 편리함이 있습니다.

하지만 데이터의 양이 많을 경우 예측 속도가 느려질 수 있으며, 이웃의 수(k)를 적절하게 선택하는 것이 모델의 성능에 영향을 미치므로 조정이 필요합니다.

KNN 분류 모델은 주변 이웃들의 패턴을 활용하여 예측을 수행하며, 데이터의 특성과 분포에 맞게 이웃의 수를 조절함으로써 다양한 분류 문제에서 효과적으로 활용될 수 있는 알고리즘입니다.

728x90