Eu estava passando por uma solução da competição de preços da habitação no Kaggle ( o núcleo da Human Analog sobre preços da habitação : técnicas avançadas de regressão ) e me deparei com esta parte:
# Transform the skewed numeric features by taking log(feature + 1).
# This will make the features more normal.
from scipy.stats import skew
skewed = train_df_munged[numeric_features].apply(lambda x: skew(x.dropna().astype(float)))
skewed = skewed[skewed > 0.75]
skewed = skewed.index
train_df_munged[skewed] = np.log1p(train_df_munged[skewed])
test_df_munged[skewed] = np.log1p(test_df_munged[skewed])
Não sei ao certo qual é a necessidade de converter uma distribuição inclinada em uma distribuição normal. Por favor, alguém pode explicar em detalhes:
- Por que isso está sendo feito aqui? ou Como isso é útil?
- Como isso é diferente da escala de recursos?
- Esta é uma etapa necessária para a engenharia de recursos? O que provavelmente acontecerá se eu pular esta etapa?
regression
feature-extraction
feature-engineering
kaggle
feature-scaling
Abhijay Ghildyal
fonte
fonte
Respostas:
Você pode querer interpretar seus coeficientes. Ou seja, para poder dizer coisas como "se eu aumentar minha variável em 1, então, em média, e tudo o mais for igual, Y deve aumentar em β 1 ".X1 Y β1
Para que seus coeficientes sejam interpretáveis, a regressão linear assume várias coisas.
Uma dessas coisas não é multicolinearidade. Ou seja, seuX variáveis não devem ser correlacionadas entre si.
Outra é a homocedasticidade . Os erros de seus commits modelo deve ter a mesma variância, ou seja, você deve assegurar a regressão linear não faz pequenos erros para baixos valores de e grandes erros para maiores valores de X . Em outras palavras, a diferença entre o que você prever Y e os verdadeiros valores Y deve ser constante. Você pode garantir que YX X Y^ Y Y siga uma distribuição gaussiana. (A prova é altamente matemática.)
Dependendo dos seus dados, você poderá torná-lo gaussiano. As transformações típicas estão tomando as raízes inversa, logarítmica ou quadrada. Muitos outros existem, é claro, tudo depende dos seus dados. Você precisa examinar seus dados e, em seguida, fazer um histograma ou executar um teste de normalidade , como o teste de Shapiro-Wilk.
Todas essas são técnicas para construir um estimador imparcial . Acho que não tem nada a ver com convergência, como já foi dito por outras pessoas (às vezes você também pode querer normalizar seus dados, mas esse é um tópico diferente).
Seguir as premissas de regressão linear é importante se você deseja interpretar os coeficientes ou se deseja usar testes estatísticos em seu modelo. Caso contrário, esqueça.
normalize
fonte
Os dados distorcidos aqui estão sendo normalizados adicionando um (um adicionado para que os zeros sejam transformados em um como log de 0 não está definido) e fazendo log natural. Os dados podem ser quase normalizados usando as técnicas de transformação, como raiz quadrada ou recíproca ou logaritmo. Agora, por que é necessário. Na verdade, muitos dos algoritmos nos dados assumem que a ciência dos dados é normal e calculam várias estatísticas assumindo isso. Portanto, quanto mais os dados estiverem próximos do normal, mais eles se ajustarão à suposição.
fonte
Como a ciência de dados é apenas estatística no final do dia, e uma das principais suposições da estatística é o Teorema do Limite Central . Portanto, esta etapa está sendo realizada porque alguma etapa subsequente usa técnicas de estatísticas que dependem dela.
fonte