Je passais par une solution de la concurrence des prix du logement sur Kaggle ( noyau analogique humain sur les prix des logements : techniques de régression avancées ) et suis tombé sur cette partie:
# 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])
Je ne suis pas sûr de la nécessité de convertir une distribution asymétrique en une distribution normale. S'il vous plaît, quelqu'un peut-il expliquer en détail:
- Pourquoi cela se fait-il ici? ou En quoi est-ce utile?
- En quoi est-ce différent de la mise à l'échelle des fonctionnalités?
- Est-ce une étape nécessaire pour l'ingénierie des fonctionnalités? Que se passera-t-il si je saute cette étape?
regression
feature-extraction
feature-engineering
kaggle
feature-scaling
Abhijay Ghildyal
la source
la source
Réponses:
Vous voudrez peut-être interpréter vos coefficients. Autrement dit, pour pouvoir dire des choses comme "si j'augmente ma variable de 1, alors, en moyenne et toutes choses étant égales par ailleurs, Y devrait augmenter de β 1 ".X1 Oui β1
Pour que vos coefficients soient interprétables, la régression linéaire suppose un tas de choses.
L'une de ces choses n'est pas la multicolinéarité. Autrement dit, vos variables ne doivent pas être corrélées les unes par rapport aux autres.X
Selon vos données, vous pourrez peut-être les rendre gaussiennes. Les transformations typiques prennent l'inverse, le logarithme ou les racines carrées. Il en existe bien sûr d'autres, tout dépend de vos données. Vous devez regarder vos données, puis faire un histogramme ou exécuter un test de normalité , tel que le test de Shapiro-Wilk.
Ce sont toutes des techniques pour construire un estimateur sans biais . Je ne pense pas que cela ait quoi que ce soit à voir avec la convergence comme d'autres l'ont dit (parfois, vous pouvez également vouloir normaliser vos données, mais c'est un sujet différent).
Le respect des hypothèses de régression linéaire est important si vous souhaitez soit interpréter les coefficients, soit utiliser des tests statistiques dans votre modèle. Sinon, oubliez ça.
normalize
la source
Les données asymétriques ici sont normalisées en ajoutant un (un ajouté de sorte que les zéros soient transformés en un car le log de 0 n'est pas défini) et en prenant le log naturel. Les données peuvent être presque normalisées en utilisant des techniques de transformation comme la prise de racine carrée ou réciproque ou logarithme. Maintenant, pourquoi c'est nécessaire. En fait, de nombreux algorithmes dans les données supposent que la science des données est normale et calculent diverses statistiques en supposant cela. Donc, plus les données sont proches de la normale, plus elles correspondent à l'hypothèse.
la source
Parce que la science des données n'est que des statistiques en fin de compte, et l'une des hypothèses clés des statistiques est le théorème de la limite centrale . Cette étape est donc en cours, car une étape ultérieure utilise des techniques de statistiques qui en dépendent.
la source