[python] scikit-learn을 사용한 지도 학습 예측 시각화

지도 학습은 기계 학습의 중요한 분야 중 하나로, 입력 데이터와 정답 데이터가 함께 제공되는 상황에서 모델을 학습하고, 이를 통해 새로운 입력 데이터에 대한 정답을 예측하는 방법입니다. scikit-learn은 파이썬에서 사용할 수 있는 대표적인 머신 러닝 라이브러리로, 지도 학습 모델의 구축과 예측을 위한 다양한 기능을 제공합니다.

여기에서는 scikit-learn을 사용하여 지도 학습 모델을 학습하고, 예측 결과를 시각화하는 방법을 알아보겠습니다.

1. scikit-learn을 설치하고 라이브러리를 가져오기

먼저, scikit-learn을 설치해야 합니다. 아래의 명령을 사용하여 설치할 수 있습니다.

pip install scikit-learn

그리고 파이썬 코드에서 scikit-learn 라이브러리를 import합니다.

import sklearn

2. 데이터 준비하기

지도 학습을 위해서는 입력 데이터와 정답 데이터가 필요합니다. 이 예제에서는 붓꽃(iris) 데이터셋을 사용하겠습니다. scikit-learn에서 제공하는 내장된 데이터셋 중 하나로, 붓꽃의 꽃받침 길이, 꽃받침 폭, 꽃잎 길이, 꽃잎 폭을 기반으로 붓꽃의 종을 분류하는 문제입니다.

from sklearn.datasets import load_iris

iris = load_iris()
X = iris.data   # 입력 데이터
y = iris.target # 정답 데이터

3. 지도 학습 모델 학습하기

scikit-learn을 사용하여 붓꽃 데이터를 기반으로 붓꽃의 종을 예측하는 분류 모델을 학습해 보겠습니다. 여기서는 의사결정나무(Decision Tree) 모델을 사용하겠습니다.

from sklearn.tree import DecisionTreeClassifier

model = DecisionTreeClassifier()
model.fit(X, y)

4. 예측 결과 시각화하기

이제 예측 결과를 시각화해 보겠습니다. 붓꽃 데이터셋은 총 4개의 특성을 가지고 있으므로, 4차원 공간 상에서 시각화하기 어렵습니다. 하지만, 주성분 분석(Principal Component Analysis, PCA)을 사용하여 2차원으로 차원 축소하여 시각화할 수 있습니다.

from sklearn.decomposition import PCA
import matplotlib.pyplot as plt

pca = PCA(n_components=2)
X_2d = pca.fit_transform(X)

plt.scatter(X_2d[:, 0], X_2d[:, 1], c=y)
plt.show()

위의 코드에서는 PCA 클래스를 사용하여 입력 데이터를 2차원으로 축소한 후, scatter 함수를 사용하여 산점도를 그렸습니다. 붓꽃의 종에 따라 다른 색으로 데이터가 표시되므로, 데이터를 구별할 수 있습니다.

5. 결론

scikit-learn을 사용하여 지도 학습 모델을 학습하고, 예측 결과를 시각화하는 방법에 대해 알아보았습니다. scikit-learn은 다양한 머신 러닝 모델과 데이터 처리 기능을 제공하여, 쉽고 효율적인 머신 러닝 개발을 가능하게 해 줍니다.

더 자세한 내용은 scikit-learn의 공식 문서를 참조하시기 바랍니다.