연속 변수가 거의없는 로그 변환을 수행 한 이유는 무엇입니까?


16

분류 문제를 겪고 있으며 많은 사람들의 코드와 자습서를 읽었습니다. 내가 발견 한 것은 많은 사람들이 걸릴 것입니다 np.log또는 log연속 같은 변수의 loan_amount또는 applicant_income

나는 그 이유를 이해하고 싶습니다. 모델 예측 정확도를 향상시키는 데 도움이됩니까? 필수입니까? 또는 그 뒤에 논리가 있습니까?

가능하면 설명을 제공해주세요. 감사합니다.

답변:


27

변수가 여러 자릿수에 걸쳐있을 때 수행됩니다. 소득은 전형적인 예입니다. 분배는 "권력 법"입니다. 이는 대다수 소득이 적고 아주 적다는 것을 의미합니다.

이 유형의 "팻 테일"분포는 로그의 수학적 특성으로 인해 로그 스케일로 연구됩니다.

영형(엑스)=영형(엑스)

이것은 암시

영형(104)=4영형(10)

영형(10)=영형(10)

이는 큰 차이 변형

10410
작은 하나
4
의 값을 비교 만드는.


2
지수 분포에 대해 특별히 이야기하는 좋은 대답입니다.
Kasra Manshaei

1
@KasraManshaei 저는 특히 권력 법 (소득이 전형적인 예)에 대해 이야기했습니다. 지수 분포의 극단 값은 정의상 매우 드 rare니다. 따라서 많은 차수에 걸친 데이터는 일반적으로 권력 법입니다.
Duccio Piovani

1
그러나 물론 그러한 경우 log ---> ln으로, 대답의 포인트를 절대 변경하지 않습니다.
Duccio Piovani

네 알았어요 당신이 말한 것처럼 많은 변화가 없습니다.
Kasra Manshaei

6

주로 비뚤어진 분포로 인해. 대수는 변수의 동적 범위를 자연스럽게 감소시켜 차이가 유지되는 반면 스케일이 크게 왜곡되지 않습니다. 어떤 사람들은 100,000,000 개의 대출을 받고 어떤 사람들은 10000과 어떤 0을 얻었다 고 상상해보십시오. 기능 확장은 아마도 가장 큰 숫자가 경계를 밀고있을 때 0과 10000을 서로 가깝게 배치 할 것입니다. 대수는 문제를 해결합니다.


Manshael, MinMaxScaler 또는 StandardScaler를 사용할 수 있습니까? 또는 로그를 가져와야합니까?
Sai Kumar

필요한. 스케일러를 사용하면 작은 값을 크게 압축합니다. 그것이 내가 말하고자하는 것입니다.
Kasra Manshaei

2
예. 1000,000,000 및 10000 및 0 값을 고려하면 대부분의 경우 첫 번째 것은 너무 커서 다른 사람이 모델에서 제대로 볼 수 없습니다. 그러나 로그를 취하면 각각 9, 4 및 0이됩니다. 보시다시피 다이나믹 레인지는 줄어들고 차이는 거의 유지됩니다. 그것은 당신의 특징의 기하 급수적 인 성질에서 비롯됩니다. 이 경우 다른 답변과 같이 로그가 필요합니다. 희망이 :) 도움이
Kasra Manshaei에게

2
음, 스케일링! 정규 분포를 갖는 두 변수가 있으므로 (로그가 필요하지 않음) 하나는 10ish 단위이고 다른 하나는 milions 단위입니다. 모델에 다시 공급하면 작은 것이 보이지 않습니다. 이 경우 스케일러를 사용하여 스케일을 합리적으로 만듭니다.
Kasra Manshaei

1
@KasraManshaei log (0) = -inf.
JAD

5

로그엑스0<엑스<<로그엑스<

엑스


3

대수 변환이 유용한 또 다른 이유는 비율 데이터에 작용하기 때문입니다 log(A/B) = -log(B/A). 원시 스케일에 비율 분포를 플로팅하면 점이 범위에 속합니다 (0, Inf). 1보다 작은 비율은 플롯의 작은 영역으로 찌그러지고, 비율을 (B/A)대신에 뒤집 으면 플롯이 완전히 다르게 보입니다 (A/B). 로그 스케일로이 작업을 수행하면 범위는 이제 (-Inf, +Inf)이므로 1보다 작고 1보다 큰 비율이 더 균등하게 퍼집니다. 비율을 뒤집기로 결정하면 플롯을 0 주위로 뒤집기 만하면됩니다. 그렇지 않으면 정확히 같습니다. 로그 스케일에서 비율을로 표시하더라도 실제로 중요하지는 않습니다 1/10 or 10/1. 이는 선택해야 할 명확한 선택이 없을 때 유용합니다.


3

로그 정규 분포를 살펴 봐야합니다 .

사람들은 로그가 스케일이나 무언가를 압축한다고 생각하기 때문에 로그를 사용할 수 있지만, 로그의 기본 용도는 로그 정규 분포가있는 데이터로 작업하고 있다는 것입니다. 이는 급여, 주택 가격 등과 같은 경향이 있으며, 모든 가치는 긍정적이고 대부분은 비교적 적지 만 일부는 매우 큽니다.

데이터 로그를 가져 와서 정규화되는 경우 잘 정의 된 평균, 표준 편차 (따라서 z- 점수), 대칭 등과 같은 정규 분포의 많은 기능을 활용할 수 있습니다.

마찬가지로 로그를 추가하는 것은 로그되지 않은 값을 곱하는 것과 같습니다. 즉, 오차가 가산되는 분포를 곱하기 (예 : 백분율 기반)의 분포로 전환했음을 의미합니다. OLS 회귀와 같은 기술에는 정상적인 오류 분포가 필요하기 때문에 로그 작업을 수행하면 가산 성부터 곱셈 프로세스까지 적용 성이 확장됩니다.


1
분포가없는 방식으로 항목을 비교하려면 백분위 수 또는 10 진수를 사용하여 원래 값 대신 사용하는 것이 낫지 않습니까?
윌리엄 페인

1
@WilliamPayne Sure, 당신은 배포가 필요없는 방법을 사용할 수 있지만, 배포 가정이 맞다 배포의 힘을 포기 합니다. 더 큰 (올바른) 가정으로 더 큰 힘이옵니다. 백분위 수는 기본적으로 순위이므로 보유한 거리 정보를 버리고 특정 표본의 백분위 수는 점 추정치입니다. 일반적으로 점에 대한 분포를 선호합니다.
Wayne

0

주된 이유는 분배가 아니라 비선형 관계 때문이라고 말하고 싶습니다. 로그는 종종 포화 관계를 캡처합니다 ...

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.