Saya telah melalui solusi dari kompetisi harga Perumahan di Kaggle ( Kernel Analog Manusia tentang Harga Rumah: Teknik Regresi Lanjut ) dan menemukan bagian ini:
# 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])
Saya tidak yakin apa perlunya mengubah distribusi miring menjadi distribusi normal. Tolong, bisakah seseorang menjelaskan secara detail:
- Mengapa ini dilakukan di sini? atau Bagaimana ini membantu?
- Apa bedanya dengan penskalaan fitur?
- Apakah ini langkah penting untuk rekayasa fitur? Apa yang mungkin terjadi jika saya melewatkan langkah ini?
regression
feature-extraction
feature-engineering
kaggle
feature-scaling
Abhijay Ghildyal
sumber
sumber
Jawaban:
Anda mungkin ingin menafsirkan koefisien Anda. Artinya, untuk dapat mengatakan hal-hal seperti "jika saya meningkatkan variabel dengan 1, maka, secara rata-rata dan semua yang lain sama, Y harus meningkat sebesar β 1 ".X1 Y β1
Agar koefisien Anda dapat ditafsirkan, regresi linier mengasumsikan banyak hal.
Salah satunya adalah multikolinieritas. Artinya, variabel Anda tidak boleh berkorelasi satu sama lain.X
Lain adalah Homoscedasticity . Kesalahan yang dilakukan oleh model Anda harus memiliki varians yang sama, yaitu Anda harus memastikan regresi linier tidak membuat kesalahan kecil untuk nilai rendah dan kesalahan besar untuk nilai X yang lebih tinggi . Dengan kata lain, perbedaan antara apa yang Anda memprediksi Y dan benar nilai-nilai Y harus konstan. Anda dapat memastikan bahwa dengan memastikan bahwa Y mengikuti distribusi Gaussian. (Buktinya sangat matematis.)X X Y^ Y Y
Bergantung pada data Anda, Anda mungkin bisa membuatnya Gaussian. Transformasi tipikal adalah mengambil kebalikan, logaritma atau akar kuadrat. Banyak yang lain tentu saja ada, itu semua tergantung data Anda. Anda harus melihat data Anda, dan kemudian melakukan histogram atau menjalankan tes normalitas , seperti tes Shapiro-Wilk.
Ini semua adalah teknik untuk membangun penduga yang tidak bias . Saya tidak berpikir itu ada hubungannya dengan konvergensi seperti yang orang lain katakan (kadang-kadang Anda mungkin juga ingin menormalkan data Anda, tapi itu topik yang berbeda).
Mengikuti asumsi regresi linier penting jika Anda ingin menafsirkan koefisien atau jika Anda ingin menggunakan tes statistik dalam model Anda. Kalau tidak, lupakan saja.
normalize
sumber
Data yang miring di sini dinormalisasi dengan menambahkan satu (satu ditambahkan sehingga nol diubah menjadi satu karena log 0 tidak didefinisikan) dan mengambil log natural. Data dapat hampir dinormalisasi menggunakan teknik transformasi seperti mengambil root kuadrat atau timbal balik atau logaritma. Sekarang, mengapa itu diperlukan. Sebenarnya banyak algoritma dalam data menganggap bahwa ilmu data adalah normal dan menghitung berbagai statistik dengan asumsi ini. Jadi semakin banyak data mendekati normal semakin sesuai dengan asumsi.
sumber
Karena ilmu data hanyalah statistik pada akhir hari, dan salah satu asumsi utama dari statistik adalah Central Limit Theorem . Jadi langkah ini sedang dilakukan karena beberapa langkah selanjutnya menggunakan teknik statistik yang bergantung padanya.
sumber