AI

값을 조절하는 스케일러 (Scaler)

PJH 2023. 8. 18. 17:25

 

올해 6월부터 광주 인공지능 사관학교를 다녔다.

AI 관련 교육을 듣고 있다.

 

 

여태 배운 내용을 조금씩 정리하고자, 블로그 형태로 글을 써보고자 한다.

 

 

 

 

스케일러

 

일반적으로 컴퓨터는 0과 1로 된 데이터를 처리한다.

 

 

화면 상에 나타나는 숫자가 아무리 커도 컴퓨터는 0과 1로 이루어진 데이터로 취급한다.

 

 

그러나, 숫자가 큰 값은 컴퓨터 스스로 중요하다고 여겨 비중을 크게 둔다.

 

즉, 큰 값을 위주로 연산하여 고르지 못한 출력 값을 낼 수 있다.

 

 

 

 

일부는 극단적인 값을 띄는 경우가 있다.

 

소위 '이상치'라고 부르는데, 특정 범위를 벗어난 값들이 대표적이다.

 

 

 

때문에, 그 범위를 최소화 하기 위해 스케일링 기법이 필요하다.

 

 

 

 

 

1. Standard Scaler

 

특정 데이터 컬럼 내 값들의 평균을 0, 표준편차를 1로 잡고 계산하는 기법이다.

나타날 수 있는 범위값들은 -1 ~ 1 사이 중심으로 나타난다.

 

 

주로, 데이터 내 값들의 특징이나 규칙을 발견하기 힘들 때 사용한다.

 

 

이 라이브러리는 이상치에 민감하게 반응한다.

이상치 처리를 하지 않으면 스케일러로 편차를 줄여도, 편차가 크게 나타날 수 있다.

 

 

때문에, 이상치 처리 후, 값을 변환시키는 게 좋다.

 

 

 

 

 

 

 

2. Min Max Scaler

 

최소 최대를 0과 1로 설정하고 값을 변환한다.

 

 

범위가 확실하고, 특정 규칙을 띈다면 이 스케일링 기법을 사용하면 된다.

 

 

 

Standard Scaler와 마찬가지로 이상치에 민감하게 반응한다

 

 

 

 

 

 

3. Robust Scaler

 

컬럼 내 데이터 중간값(Q2)을 0으로 잡고, 나머지 범위(Q1, Q3)값은 IQR만큼 차이를 적용하여 변환한다.

 

IQR 공식 = (데이터 값 - Q2) / (Q3 - Q1)

 

 

 

 

이상치가 많을 경우, 사용할 수 있다.

 

 

 

 

 

 

 

 

정리

 

보통 이상치는 극단적인 수치로 취급한다.

 

 

대부분, 이상치를 중간값이나 최빈값으로 교체하거나, 모호하면 해당 데이터 행을 없애는 방향으로 진행하기도 한다.

 

 

 

이상치가 모델의 학습 및 결과값의 영향이 꽤 있다면 다른 값으로 교체하고

 

그게 아니면 해당 데이터를 없애는 게 낫다.

 

 

 

때문에, 특이한 케이스가 아니고선 RobustScaler는 많이 쓰일 일은 없을 듯 하고,

 

주로 MinMax나 StandardScaler를 사용할 듯 하다.