Robust Scaler는 데이터의 중앙값을 뺀 다음, 사분위수 범위(IQR, Interquartile Range)로 나누어 데이터를 스케일링한다. 이 방법은 특히 이상치(outliers)에 덜 민감한 스케일링을 원할 때 유용하다.
Scaled Value = Value−Median / IQR
Robust Scaler는 중앙값과 사분위수 범위를 사용하므로 이상치에 덜 민감합니다. 이상치가 있는 데이터에서는 평균과 표준편차는 크게 영향을 받을 수 있지만, 중앙값과 사분위수는 영향을 덜 받습니다.
서로 다른 특성 간에 일관된 스케일을 유지하여 알고리즘이 각 특성을 공정하게 처리할 수 있게 합니다.
GPT : Robust Scaler는 이상치(예: 특이하게 높거나 낮은 데이터)를 제거하고 그 나머지 데이터의 분포를 기반으로 각 데이터를 스케일링하는 것과 유사합니다. 이렇게 함으로써, 이상치의 영향을 최소화하고 더 공정한 분석을 할 수 있게 됩니다.
df = pd.DataFrame({
'A' : [-0.1, 0., 0.1, 0.2, 0.3, 0.4, 1.0, 1.1, 5]
})
from sklearn.preprocessing import RobustScaler
rs = RobustScaler()
df_scaler = df.copy()
df_scaler['Robust'] = rs.fit_transform(df)
df_scaler[['A','Robust']]