Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python scikit-learn으로 특징 벡터에서 평균값 제거하는 방법

데이터 전처리(Pre-processing)란 데이터를 정제하고, 유효하지 않은 데이터나 노이즈를 제거하며, 데이터를 적절한 값으로 대체하는 등의 작업을 의미합니다.

데이터 전처리는 기본적으로 다양한 소스 또는 단일 소스에서 수집된 모든 데이터를 공통 형식이나 균일한 데이터셋으로 통합하는 작업입니다. 한 단계의 출력 결과가 다음 단계의 입력으로 사용되며, 이런 식으로 처리 과정이 이어집니다.

특정 결과를 얻기 위해서는 입력 데이터에서 평균값을 제거해야 하는 경우가 있습니다. 이번 글에서는 scikit-learn 라이브러리를 활용해 이를 어떻게 구현할 수 있는지 살펴보겠습니다.

예제 코드

import numpy as np
from sklearn import preprocessing
input_data = np.array([
[34.78, 31.9, -65.5],
[-16.5, 2.45, -83.5],
[0.5, -87.98, 45.62],
[5.9, 2.38, -55.82]])
print("Mean value is : ", input_data.mean(axis=0))
print("Standard deviation value is : ", input_data.std(axis=0))
data_scaled = preprocessing.scale(input_data)
print("Mean value has been removed ", data_scaled.mean(axis=0))
print("Standard deviation has been removed ", data_scaled.std(axis=0))

실행 결과

Mean value is : [ 6.17 -12.8125 -39.8 ]
Standard deviation value is : [18.4708067 45.03642047 50.30754615]
Mean value has been removed [-2.60208521e-18 -8.32667268e-17 -1.11022302e-16]
Standard deviation has been removed [1. 1. 1.]

코드 설명

  • 필요한 패키지들을 임포트합니다.

  • Numpy 라이브러리를 사용하여 입력 데이터를 생성합니다.

  • 데이터의 평균값과 표준편차를 계산합니다.

  • 계산된 값들을 콘솔에 출력합니다.

  • scikit-learn의 preprocessing.scale 함수를 사용하여 데이터에서 평균과 표준편차를 제거합니다. 이 과정을 표준화(standardization)라고 하며, 각 특징(feature)의 평균은 0에 가깝고 표준편차는 1이 됩니다.

  • 평균과 표준편차가 제거된 데이터를 콘솔에 출력하여 결과를 확인합니다.

출력 결과에서 볼 수 있듯이, 스케일링 후 평균값은 부동소수점 오차 범위 내에서 사실상 0이 되었으며, 표준편차는 정확히 1로 변환되었습니다. 이렇게 표준화된 데이터는 머신러닝 모델의 학습 안정성과 성능을 향상시키는 데 도움이 됩니다.