데이터 분석 Data Analysis/통계 Statistics

데이터분석에서 로그를 취하는 경우 (세상에서 제일 쉬운 설명)

허니비 honeybee 2022. 10. 12. 01:44

우리는 가끔.... (이 아니라 사실 자주) 괴이한 데이터를 만난다. 

 

가령 우리의 데이터는 이렇게 생길 수도 있다 

 

 

 

....?

 

 

혹은 이럴지도 모른다

 

 

............?

 

 

실로 괴이한 현상이 아닐 수가 없다. 

 

이는 내가 이번 프로젝트를 하며 실제로 만났던 데이터들의 분포다. 

 

 

이런 데이터들을 우리는 " 정규분포를 따르지 않는 데이터" 라고 부른다. 

정규분포는 무엇이냐? 요렇게 데이터가 예쁜 종 모양! 한쪽으로 치우치지 않은 모양을 얼추 따르면 정규분포를 따른다고들 한다.  그러니 정규분포를 따르지 않는 데이터는 내가 보여준 예시마냥 극단적으로 치우치거나. 데이터가 연속적이지 않고 두세군데 듬성듬성 있다거나 하는 문제가 있는 그냥 생겨먹은게 이상하면 정규분포를 안 따르는 데이터인거다. 

 

 

출처: R friend

 

 

애석하게도... 데이터 분석을 할 때 쓰는 아주 다양한 툴들... 이를 테면 Scaler 라던가 회귀분석이라던가, 비지도학습이라던가 등등 다양한 툴들은 심히 정규분포를 따르지 않는 극단적인 데이터에는 적용할 수가 없다. 그러니 우리는 데이터를 정규분포 모양에 맞게 "적당히 펴주는" 작업을 할 필요가 있는 것. 

 

필자는 이번 프로젝트때 RFM 분석이라 불리는 (마케팅에서 자주 쓴다는) 분석을 해야했는데, 저런 데이터들을 가지고 데이터의 집단을 구분하는 클러스터링을 해야했다. 데이터 간의 계층 분포가 뚜렷하지 않으니 저걸로 클러스터링을 하더라도 말도 안되는 , 혹은 의도와 어긋나는 결과가 나왔을 것이다. 

 

그래서 인터넷을 뒤져보니.. 이런 극단적인 데이터, 이상치가 많은 데이터에 대해서는 먼저 로그를 취해서 전반적인 스케일을 줄여 준 다음, 스케일러를 쓰면서 데이터 컬럼들 간의 비율을 맞춰주는 순서대로 전처리를 한다고 하더라.

 

근데 난 여기서 의문이 들었다.. 

아니 스케일러를 쓰는 원리는 잘 알겠는데..

로그를 취하면 왜 데이터 스케일이 줄어들지? 

 

엥 그리고 데이터에 로그를 취할 때 마다

이렇게 

이렇게 

데이터 분포 자체가 이상하게 바뀌는데?

이거 이렇게 써도 되는거야? 

 

로그를 한 번 취했을 때 / 두 번 취했을 때 / 세 번 취했을 때 

 

 

 

그래서... 

 

우리 코드스테이츠 AIB 13기의 명실상부 수학요정니모님께...  이를 질문하고 강의를 들어온 내용을 공유하고자 한다. 

 

우선 우리가 하려는 게 무엇인지 다시 생각해 보겠다. 

 

그림을 보자 

 

 

우리의 데이터가 이렇게 생겼다고 가정해 보자. 우리가 하고 싶은건 저 아이를 예쁜 종 모양으로 만드는 거였다. 그러면 저 그래프에서 왼쪽에 동그라미가 쳐저있는 부분은 값을 많이 변환해야 하는 부분, 오른쪽에 동그라미가 있는 부분은 값을 적게 변화, 혹은 유지시켜야 하는 부분이다. 

 

 

 

 

이때 핵심인 건 

 

"x 가 작으면 많이 키우고, x 가 크면 적게 키우자" 

 

부분이다. 

 

우리의 데이터에 저걸 적용할 수 있는 어떠한 함수를 찾아주면 되는 것이다. 

 

x 가 작으면 많이 키우고, x 가 크면 적게 키우자

x 가 작으면 많이 키우고, x 가 크면 적게 키우자

x 가 작으면 많이 키우고, x 가 크면 적게 키우자

.

.

.

다른 말로 바꿔 하면

x 가 작으면 기울기가 가파르고 x 가 크면 기울기가 완만해진다. 

 

가 된다 ! 

그럼 그걸 대충 그려보면..? 

 

요런 그래프가 나온다 

 

사실 이걸 적용할 수 있는 그래프는 여러가지가 있다. 

이를 대표할 수 있는게 로그함수라 우리는 저 아이를 쓰는 것이다! 

 

 

 

그러면... x 값이 작은 부분은 값이 크게 바뀌고 x 값이 큰 부분은 값이 적게 바뀌면서! 

 

로그를 취하면 취할 수록 

데이터의 왼쪽에서 오른쪽으로 뺨을 때린 것 마냥

분포 모양이 바뀌게 된다 

 

퍽퍽퍽 / Toward Data Scince

 

 

+) 수학요정님이 내주신 숙제.. 

 

그렇다면 위와 같은 데이터를 정규분포로 바꾸려면,, 어떤 함수가 필요할까?

 

728x90