STUDY_SEONMIN

DAY40 - 회귀분석 기초(스케일링) 본문

EDUCATION/DSS Online 6기

DAY40 - 회귀분석 기초(스케일링)

Kululu_ 2021. 3. 9. 20:53

statsmodels 패키지를 이용해 보스턴 집값 예측 문제를 회귀분석문제로 풀어보면, Warning이라는 메시지와 함께 

"The condition number is large"라는 문구가 나옵니다.

 

Condition number라는 것은 분산행렬 $X^TX$의 가장 큰 고유값과 가장 작은 고유값의 비율입니다.

조건수가 클 경우 회귀분석을 사용한 예측값의 오차도 커지기 때문에 이러한 경고가 뜨면 문제를 해결해야 합니다.

 

회귀분석에서 조건수(Contion number)가 커지는 경우는 크게 2가지가 있습니다.

1) 스케일링 문제

2) 다중공선성 문제

 

다중공선성 문제는 입력변수들끼리 강한 상관관계를 가지고 있을 때 발생하는 문제인데 추후에 다루도록 하고 여기서는 "스케일링 문제"에 대해서 다루도록 하겠습니다.

 

분산행렬의 고유벡터는 데이터의 분포를 가장 잘 나타내는 벡터들이고 고유값은 그 벡터들의 길이를 나타냅니다.

 

만약 독립인 두 데이터가 있을 때 데이터 끼리 스케일이 다르면 어떻게 될까요?

아마 이런 형태로 데이터가 분포하게 될 것입니다.

그림으로만 보더라도 스케일링이 되어있지 않으면 두 변수가 독립이더라도 조건수가 커질 것이라는 사실을 눈치챌 수 있습니다.

 

따라서 조건수가 커질 경우 첫 번째 문제인 1)스케일링 문제는 스케일링을 통해 변수들의 스케일을 맞춰주면 됩니다.

 

보통은 평균을 0, 표준편차를 1로 스케일링하는 방식을 많이 사용합니다.

 

formula에 변수를 문자열로 넣을 때 scale(변수) 형태로 넣으면 평균 0 표준편차 1로 스케일링 해줍니다.

 

결과를 보면 원래는 있던 조건수가 크다는 경고가 사라진 것을 볼 수 있습니다.

Comments