[python] scikit-learn을 사용한 피처 스케일링 결과 시각화

개요

피처 스케일링은 데이터의 범위를 조정하여 모델의 성능을 향상시키는 데 도움이 됩니다. 이번 포스트에서는 Python의 scikit-learn 라이브러리를 사용하여 피처 스케일링을 수행하고, 이를 시각화하는 방법을 알아보겠습니다.

scikit-learn을 사용한 피처 스케일링

scikit-learn은 다양한 피처 스케일링 방법을 제공합니다. 가장 일반적으로 사용되는 방법은 표준화(Standardization)와 정규화(Normalization)입니다. 표준화는 평균이 0이 되고 표준 편차가 1이 되도록 데이터를 변환하는 방법이고, 정규화는 데이터의 최솟값과 최댓값을 이용하여 0 ~ 1 사이의 범위로 조정하는 방법입니다.

아래는 scikit-learn을 사용하여 피처 스케일링을 수행하는 예제 코드입니다.

from sklearn.preprocessing import StandardScaler, MinMaxScaler
import numpy as np
import matplotlib.pyplot as plt

# 원본 데이터
data = np.array([[1, 2], [3, 4], [5, 6]])

# 표준화
scaler = StandardScaler()
scaled_data = scaler.fit_transform(data)

# 정규화
minmax_scaler = MinMaxScaler()
normalized_data = minmax_scaler.fit_transform(data)

# 시각화
plt.figure(figsize=(10, 5))
plt.subplot(1, 2, 1)
plt.scatter(data[:, 0], data[:, 1], c='blue', label='Original')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.legend()

plt.subplot(1, 2, 2)
plt.scatter(scaled_data[:, 0], scaled_data[:, 1], c='red', label='Standardized')
plt.scatter(normalized_data[:, 0], normalized_data[:, 1], c='green', label='Normalized')
plt.xlabel('Feature 1 (Scaled)')
plt.ylabel('Feature 2 (Scaled)')
plt.legend()

plt.tight_layout()
plt.show()

위 코드는 원본 데이터를 표준화와 정규화한 결과를 시각화합니다. 왼쪽 그래프는 원본 데이터를 나타내며, 오른쪽 그래프는 표준화와 정규화된 데이터를 나타냅니다.

결론

피처 스케일링은 모델 성능 개선에 중요한 요소입니다. scikit-learn을 사용하여 편리하게 피처 스케일링을 수행하고, 결과를 시각화할 수 있습니다. 데이터의 특성에 따라 적절한 스케일링 방법을 선택하여 모델의 성능을 향상시키세요.

참고 자료