다음은 RobustScaler()를 구현하는 예시 코드입니다.
from sklearn.preprocessing import RobustScaler
robustScaler = RobustScaler()
print(robustScaler.fit(train_data))
train_data_robustScaled = robustScaler.transform(train_data)
Note ≡ 사분위수 범위(IQR)
사분위수란 전체 관측 값을 오름차순으로 정렬한 후 전체를 사등분하는 값을 나타냅니다. 따라서 다음과 같이 표현할 수 있습니다.
• 제1사분위수 = Q1 = 제25백분위수
• 제2사분위수 = Q2 = 제50백분위수
• 제3사분위수 = Q3 = 제75백분위수
이때 제3사분위수와 제1사분위수 사이 거리를 자료의 흩어진 정도의 척도로 사용할 수 있는데, 이 수치를 사분위수 범위(IQR)라고 합니다. 따라서 사분위수 범위는 다음과 같이 표현할 수 있습니다.
사분위수 범위: IQR = 제3사분위수 – 제1사분위수 = Q3 – Q1
ⓒ MinMaxScaler(): 모든 특성이 0과 1 사이에 위치하도록 스케일을 조정합니다. 이때 이상치의 데이터가 있을 경우 반환된 값이 매우 좁은 범위로 압축될 수 있습니다. 즉, 이상치에 매우 민감할 수 있기 때문에 주의해야 합니다.
MinMaxScaler()를 구하는 공식은 다음과 같습니다.