Qual é o motivo por trás da transformação de log de poucas variáveis ​​contínuas?

16

Estou com um problema de classificação e li o código e os tutoriais de muitas pessoas. Uma coisa que eu notei é que muitas pessoas tomam np.logou logde variável contínua como loan_amountou applicant_incomeetc.

Eu só quero entender a razão por trás disso. Isso ajuda a melhorar a precisão da previsão do modelo. Isso é obrigatório? ou Existe alguma lógica por trás disso?

Forneça algumas explicações, se possível. Obrigado.

Sai Kumar
fonte

Respostas:

27

Isso é feito quando as variáveis ​​abrangem várias ordens de magnitude. A renda é um exemplo típico: sua distribuição é "lei do poder", o que significa que a grande maioria da renda é pequena e muito poucas é grande.

Este tipo de distribuição "atada por gordura" é estudada em escala logarítmica devido às propriedades matemáticas do logaritmo:

log(xn)=nlog(x)

que implica

log(104)=4log(10)

e

log(103)=3log(10)

que transforma uma enorme diferença

104103
em uma menor
43
Tornando os valores comparáveis.

Duccio Piovani
fonte
2
Boa resposta, especialmente falando sobre distribuições exponenciais.
Kasra Manshaei
11
@KasraManshaei Eu estava falando sobre leis de energia em particular (a renda é um exemplo típico): valores extremos na distribuição exponencial são, por definição, muito raros. Portanto, dados que abrangem muitas ordens de grandeza geralmente são leis de energia.
Duccio Piovani
11
mas, é claro, nesses casos, log ---> ln, o que absolutamente não muda o ponto da resposta.
Duccio Piovani
Sim, eu entendi. Como você disse, não há muitas mudanças.
Kasra Manshaei 23/10
6

Principalmente por causa da distribuição distorcida. O logaritmo naturalmente reduz a faixa dinâmica de uma variável, de modo que as diferenças são preservadas enquanto a escala não é tão distorcida. Imagine que algumas pessoas tenham 100.000.000 de empréstimo e outras tenham 10000 e cerca de 0. Qualquer escala de recurso provavelmente colocará 0 e 10000 tão próximos um do outro, já que o maior número ultrapassa os limites. O logaritmo resolve o problema.

Kasra Manshaei
fonte
Manshael, então eu posso usar o MinMaxScaler ou StandardScaler, certo? ou é necessário fazer log?
Sai Kumar
Necessário. Se você usar scalers, eles compactarão pequenos valores dramaticamente. Isso é o que eu quis dizer.
Kasra Manshaei
2
Sim. Se você levar em consideração os valores 1.000.000.000 e 10000 e 0. Em muitos casos, o primeiro é grande demais para permitir que outras pessoas sejam vistas corretamente pelo seu modelo. Mas se você usar o logaritmo, terá 9, 4 e 0, respectivamente. Como você vê, o alcance dinâmico é reduzido enquanto as diferenças estão quase preservadas. Vem de qualquer natureza exponencial no seu recurso. Nesses casos, você precisa de logaritmo, como a outra resposta descrita. A esperança ajudou :)
Kasra Manshaei
2
Bem, escalando! Imagine duas variáveis ​​com distribuição normal (portanto, não há necessidade de logaritmo), mas uma delas na escala de 10 anos e a outra na escala de milhões. Alimentá-los novamente ao modelo torna o pequeno invisível. Nesse caso, você usa escaladores para tornar suas escalas razoáveis.
Kasra Manshaei
11
@KasraManshaei log (0) = -inf embora.
JAD
5

logx0<x<<logx< .

x

JAD
fonte
3

Ainda outra razão pela qual as transformações logarítmicas são úteis entra em jogo para os dados de razão, devido ao fato de que log(A/B) = -log(B/A). Se você traçar uma distribuição de proporções na escala bruta, seus pontos cairão no intervalo (0, Inf). Quaisquer proporções menores que 1 serão compactadas em uma pequena área da plotagem e, além disso, a plotagem parecerá completamente diferente se você alternar a proporção para em (B/A)vez de (A/B). Se você fizer isso em uma escala logarítmica, o intervalo será agora (-Inf, +Inf), o que significa proporções menores que 1 e maiores que 1 são distribuídas de forma mais igual. Se você decidir mudar a proporção, basta girar o gráfico em torno de 0, caso contrário, ele será exatamente o mesmo. Em uma escala de log, não importa realmente se você mostra uma proporção como 1/10 or 10/1, o que é útil quando não há uma escolha óbvia sobre qual deveria ser.

Wang nuclear
fonte
3

Você deve olhar para a distribuição lognormal .

As pessoas podem usar logs porque acham que isso comprime a escala ou algo assim, mas o uso de princípios por logs é que você está trabalhando com dados que têm uma distribuição normal de log. Isso tenderá a ser coisas como salários, preços de moradias, etc., onde todos os valores são positivos e a maioria é relativamente modesta, mas alguns são muito grandes.

Se você puder fazer o log dos dados e eles se tornarem normais, poderá tirar proveito de muitos recursos de uma distribuição normal, como média bem definida, desvio padrão (e, portanto, z-scores), simetria, etc.

Da mesma forma, a adição de logs é igual à multiplicação dos valores não registrados. O que significa que você transformou uma distribuição em que os erros são aditivos em um em que são multiplicativos (ou seja, baseados em porcentagem). Como técnicas como a regressão OLS exigem uma distribuição normal de erros, trabalhar com logs estende sua aplicabilidade dos processos aditivo aos multiplicativo.

Wayne
fonte
11
Se você deseja comparar itens de forma livre de distribuição, não seria melhor usar percentis ou decis e usá-los em vez do valor original?
William Payne
11
@WilliamPayne Claro, você pode usar um método sem distribuição, embora também esteja perdendo parte do poder de ter uma distribuição ... se suas suposições de distribuição estiverem corretas. Com maiores pressupostos (corretos), vem maior poder. Os percentis são essencialmente fileiras; portanto, você joga fora as informações de distância que possui e o percentil de uma amostra específica é uma estimativa pontual. Geralmente, preferimos distribuições a pontos.
19719 Wayne
0

Eu diria que o principal motivo não é distributivo, mas por causa da relação não linear. Os logs geralmente capturam relacionamentos saturantes ...

seanv507
fonte