Skip to content
튜토리얼
Python
Python KNN: sklearn을 사용한 K Nearest Neighbor Regression 마스터하기

Python KNN: sklearn을 사용한 K Nearest Neighbor Regression 마스터하기

기계 학습의 세계에서 K Nearest Neighbors(KNN) 알고리즘은 큰 인기를 얻은 알고리즘 중 하나입니다. 회귀 문제에 적용될 때 이 알고리즘은 종종 KNN 회귀로 불립니다. 오늘은 Python에서 sklearn을 사용하여 KNN 회귀를 구현하는 방법을 알아보고 특히 KNeighborsRegressor 클래스에 초점을 맞출 것입니다.

코드 없이 Python Pandas Dataframe으로 빠르게 데이터 시각화를 만들고 싶으세요?

PyGWalker는 시각적 탐색을 위한 Python 라이브러리로, PyGWalker (opens in a new tab)를 사용하면 pandas dataframe 및 polars dataframe을 Tableau 스타일의 사용자 인터페이스로 변환하여 Jupyter Notebook 데이터 분석 및 데이터 시각화 워크플로우를 단순화 할 수 있습니다.

PyGWalker 데이터 시각화 (opens in a new tab)

KNN 회귀란?

KNN 회귀는 예측 문제에 사용되는 비모수적 방법입니다. 이는 유사한 입력 값은 유사한 출력 값을 생성할 가능성이 높다는 전제 내에서 작동합니다. KNN은 회귀 콘텍스트에서 지정된 수(K)의 가장 가까운 데이터 포인트(이웃)를 가져와 그들의 값을 평균하여 예측합니다.

Sklearn KNN 회귀

Sklearn 또는 Scikit-learn은 기계 학습을 위해 널리 사용되는 Python 라이브러리입니다. Sklearn은 많은 인기 있는 알고리즘들의 사용이 쉽도록 구현되어 있으며, KNN 회귀 또한 그 예외 중 하나입니다. Sklearn에서는 KNN 회귀가 KNeighborsRegressor 클래스를 통해 구현됩니다.

KNeighborsRegressor를 사용하기 위해 먼저 다음을 가져옵니다:

from sklearn.neighbors import KNeighborsRegressor

다음으로, 원하는 이웃 수를 인수로 전달하여 클래스의 인스턴스를 만듭니다:

knn_regressor = KNeighborsRegressor(n_neighbors=3)

마지막으로, 모델을 데이터에 맞추고 예측합니다:

knn_regressor.fit(X_train, y_train)
predictions = knn_regressor.predict(X_test)

Sklearn KNN 회귀 모델 조정

Sklearn에서 KNN을 사용할 때 중요한 측면은 올바른 이웃 수(K)를 선택하는 것입니다. 이웃이 너무 적으면 overfitting이 발생할 수 있으며, 이웃이 너무 많으면 underfitting이 발생할 수 있습니다. 다른 K값으로 실험하고 결과를 비교하는 것이 좋습니다.

for k in range(1, 10):
    knn_regressor = KNeighborsRegressor(n_neighbors=k)
    knn_regressor.fit(X_train, y_train)
    print(f'Score for k={k}: {knn_regressor.score(X_test, y_test)}')

이는 각 K값마다 정확도 점수를 출력하여 최적의 값을 선택할 수 있도록 합니다.### Sklearn KNN 회귀 실습

이제 sklearn을 사용하여 파이썬에서 KNN 회귀의 예제를 살펴보겠습니다. 우리는 회귀 문제에 대한 인기있는 Boston Housing 데이터 세트를 사용할 것입니다.

from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
 
# 데이터 세트 불러오기
boston = load_boston()
X = boston.data
y = boston.target
 
# 데이터 세트를 학습 및 테스트 세트로 분할합니다
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
 
# KNN 회귀 적용
knn_regressor = KNeighborsRegressor(n_neighbors=3)
knn_regressor.fit(X_train, y_train)
predictions = knn_regressor.predict(X_test)
 
# 모델 평가
print('Score:', knn_regressor.score(X_test, y_test))

score() 메서드를 사용하면 예측 결과의 결정 계수 R^2 값을 얻을 수 있습니다.

결론

KNN 회귀 및 sklearn의 KNeighborsRegressor를 이용하여 파이썬에서 KNN 회귀를 구현하는 방법을 이해하는 것은 데이터 과학자로서 중요한 기술입니다. 이 강력한 도구를 활용하여 이웃 기반 학습의 힘을 빌리면 데이터에 대한 정확한 예측을 할 수 있습니다.

우리는 여기서 기본적인 내용을 소개했지만, sklearn과 KNN 회귀에 대해 더 탐구 할 수 있습니다. 행운을 빕니다! 이웃이 항상 올바른 예측을 이끌어내도록 도와주길 바랍니다!