• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    해결됨

StandardScaler 및 로그 변환

23.01.25 18:15 작성 23.01.25 18:22 수정 조회수 294

0

안녕하세요 선생님 주위에 물어볼사람이 한명도 없어서... 이렇게 글을 씁니다..

현재

강의들은 내용을 바탕으로 다른 데이터 가지고 실습적용하고 있습니다.

위 사진과 같은 분포를 갖는 피처에 로그변환 또는 StandardScaler 을 적용해봤지만 모양이 거의 바뀌지 않았습니다.

소숫점을 갖는 너무 작은 값이기 때문인가요? 이유를 알고싶습니다.

그리고 이러한 분포를 가지고 있는 피처를 가공할땐 어떠한 방법을 사용해야하는지 궁금합니다...

답변 1

답변을 작성해보세요.

1

안녕하십니까,

올려주신 사진과 같이 오른쪽으로 skew된 분포를 가지는 경우 보통은 로그 변환을 적용해 주면 어느 정도 분포도 모양이 변경됩니다.

standard scaler는 skew된 데이터에 적용하면 분포도에 영향을 크게 미치지 않습니다.

혹 로그 변환을 해도 안된다는게 standard scaler를 적용하고 다시 로그 변환을 하신 건지요? 혹시 그렇다면 로그 변환만 해보십시요.

로그 변환만 해보았는데도 안된다면

  1. 연속형 값인데도 불구하고 특정값으로 건수가 많은지 확인해 보십시요. 예를 들어 0에 해당하는 값이 8000건이 있는지 확인해 보십시요. 그러니까, 0.01, 0.02가 아니라 그냥 0으로 고정된 값으로 건수가 많은지 확인해 보십시요. 강의에서도 말씀드리지만 0은 log 변환시 오류가 발생합니다. 때문에 log1p로 변환해야 합니다(값을 1더해서 로그 변환합니다. 강의에서 설명드립니다)

그래도 skew 분포도가 변함이 없다면 로그 변환된 값에 대한 분포도 그래프를 여기에 올려 주십시요.

감사합니다.

ggb05224님의 프로필

ggb05224

질문자

2023.01.25

답변감사합니다

선생님 말씀대로 특정 값 즉 0에 해당하는 값이 8000건이상으로 많은 것으로 확인했습니다

이렇게 연속형 값인데도 특정값으로 건수가 많으면 로그변환해도 그래프 분포 모양은 큰변화가 없게 되는건가요?

 

추가질문으로...

혹시 이렇게 0값이 많을경우 머신러닝 성능에 영향을 많이 미치게 되나요??

 

아, 업데이트 글이 있는걸 놓쳤군요. 조금 답변이 늦었습니다.

  1. 기존에 오른쪽으로 skew된 부분이 조금은 달라 질 수가 있습니다만 특정 값으로 건수가 많으면 그건 어쩔 수 없습니다.

2. 혹시 이렇게 0값이 많을경우 머신러닝 성능에 영향을 많이 미치게 되나요??

=> 만약 0 값이 해당 속성의 특정 의미적으로 값을 매긴게 아니라 값이 없거나 아님 적당한 값을 찾지 못해서 0으로 대체한 경우라면, 거기다가 해당 컬럼이 중요한 피처라면 성능에 조금 영향을 미칠 수 있습니다.

하지만 0 값이 해당 속성의 의미적으로 값이 부여 된것이라면 머신러닝 성능에는 큰 영향을 미치지 않습니다. 또한 해당 컬럼이 모델/업무적으로 중요한 피처가 아니라면 성능에 큰 영향은 없습니다.

 

ggb05224님의 프로필

ggb05224

질문자

2023.01.28

감사합니다 !! 👍