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?