[Scikit-learn] sklearn.preprocessing
- import sklearn.preprocessing
종류 | 설명 |
---|---|
StandardScaler | 평균과 표준편차를 이용하여 스케일링하는 방법 입력 데이터의 분포가 평균이 0이고, 표준편차가 1인 정규분포 형태로 변환 [0, 1, 2, 3, 4, 5] -> [-1.46385, -0.87831, -0.29277, 0.29277, 0.87831, 1.46385] 각 feature의 분포가 동일하게 변환되므로, 모델의 학습이 더욱 안정적 력 데이터가 정규분포 형태에 가까울 때 가장 잘 작동 또한, 이상치(outlier)에 민감하게 반응 |
MinMaxScaler | 최솟값과 최댓값을 이용하여 스케일링 입력 데이터의 분포를 0과 1 사이로 변경 [0, 1, 2, 3, 4, 5] -> [0.0, 0.17, 0.33, 0.50, 0.67, 0.83] 입력 데이터의 분포를 0과 1 사이로 매핑함으로써, 각 feature의 절대적인 크기를 동일하게 만들어준다 MinMaxScaler는 입력 데이터가 비교적 균일한 분포를 가지고 있을 때 적합 예를 들어, 이미지 데이터나 픽셀 값 등에서 주로 사용 MinMaxScaler는 이상치(outlier)에 민감하게 반응하므로, 이상치가 포함되어 있는 데이터에서는 RobustScaler나 StandardScaler와 같은 다른 스케일링 방법을 사용하는 것이 더 안정적일 수 있다. |
MaxAbsScaler | 입력 데이터에서 각각의 feature(특성)에 대해 절대값이 가장 큰 값을 1로 만들고, 나머지 값들은 절대값이 최댓값에 대한 비율로 변환하는 스케일링 기법 [-10, -5, 0, 5, 10] -> [-1, -0.5, 0, 0.5, 1] 입력 데이터의 분포를 보존하면서 각 feature의 절대적인 크기를 동일하게 만들어주는 효과 |
RobustScaler | 입력 데이터에서 각각의 feature(특성)에 대해 중앙값(median)과 IQR(Interquartile Range)를 이용하여 스케일링하는 방법 [-10, -5, 0, 5, 10, 100] -> [-0.5, -0.25, 0, 0.25, 0.5, 18.5] 중앙값과 IQR을 사용하여 스케일링하기 때문에, 이상치가 포함된 데이터에서도 안정적인 스케일링 결과를 얻을 수 있다. 중앙값과 IQR을 사용하여 스케일링하기 때문에, 이 값들이 outlier에 의해 영향을 받을 수 있다는 점을 주의 |
Normalizer | L1 또는 L2 norm으로 정규화하는 기능을 제공. L1 norm은 각 데이터의 절대값을 합산한 값으로 나누어 정규화하며, L2 norm은 각 데이터의 제곱을 합산한 값의 제곱근으로 나누어 정규화 [[1, 2], [3, 4], [5, 6], [7, 8]] – 디폴트 : L2 norm –> [[0.22975292 0.97324899] [0.45584231 0.89096089] [0.56630692 0.82462113] [0.62791145 0.77847621]] Normalizer 클래스는 fit 메서드를 사용하여 데이터에 맞는 정규화 파라미터를 계산하고, transform 메서드를 사용하여 데이터를 정규화합니다. 주로, 텍스트 분류나 클러스터링에서 희소 행렬(sparse matrix)을 다룰 때 사용됩니다. |
댓글남기기