Apakah analisis data eksplorasi penting ketika melakukan pemodelan prediktif murni?

23

Ketika membangun model prediktif menggunakan teknik pembelajaran mesin, apa gunanya melakukan analisis data eksplorasi (EDA)? Apakah saya tetap bisa langsung melompat ke pembuatan fitur dan membangun model Anda? Bagaimana statistik deskriptif digunakan dalam EDA penting?

blast00
sumber
6
Anda bertanya tentang "analisis data eksplorasi", tetapi Anda juga menyertakan [descriptive-statistics]tag & pertanyaan terakhir Anda adalah apakah statistik deskriptif itu penting. Dalam konteks ini maksud Anda hanya menghitung berbagai statistik deskriptif ketika Anda menyebutkan EDA, atau apakah Anda bertanya tentang statistik deskriptif & EDA? Saya bertanya karena banyak orang (termasuk saya) menganggap EDA lebih dari sekadar statistik deskriptif.
gung - Reinstate Monica
Apa sebenarnya "pembuatan fitur"? Apakah ini bukan proses eksplorasi?
einar
5
Akhir-akhir ini, saya telah diberikan 224 pengamatan oleh 37 orang. Saya telah merencanakan untuk menyelidiki - antara lain - pengaruh gender / jenis kelamin, ketika analisis deskriptif memberi tahu saya, ada 36 wanita dan 1 pria. Karena statistik deskriptif ini, saya melewatkan semua analisis yang berkaitan dengan gender / jenis kelamin. Itu penting bagi saya, karena deskripsi memengaruhi proses pembuatan model saya. Lebih lanjut tentang data itu di sini stats.stackexchange.com/questions/352015/…
Bernhard

Jawaban:

47

Belum lama ini, saya memiliki tugas wawancara untuk posisi sains data. Saya diberi satu set data dan diminta untuk membangun model prediktif untuk memprediksi variabel biner tertentu yang diberikan yang lain, dengan batas waktu beberapa jam.

Saya memeriksa setiap variabel secara bergantian, membuat grafik, menghitung statistik ringkasan, dll. Saya juga menghitung korelasi antara variabel numerik.

Di antara hal-hal yang saya temukan adalah:

  • Satu variabel kategori hampir cocok dengan target.
  • Dua atau tiga variabel memiliki lebih dari setengah nilainya hilang.
  • Beberapa variabel memiliki outlier ekstrim.
  • Dua variabel numerik berkorelasi sempurna.
  • dll.

Maksud saya adalah ini adalah hal-hal yang sengaja dimasukkan untuk melihat apakah orang akan memperhatikan mereka sebelum mencoba membangun model. Perusahaan menempatkan mereka karena mereka adalah hal yang dapat terjadi dalam kehidupan nyata, dan secara drastis mempengaruhi kinerja model.

Jadi ya, EDA penting ketika melakukan pembelajaran mesin!

Flounderer
sumber
8
Ketika saya memberikan tugas kepada siswa, saya juga sering melakukannya ;-).
gung - Reinstate Monica
14

Jelas ya.

Analisis data dapat mengarahkan Anda ke banyak poin yang akan merusak model prediksi Anda:

Data tidak lengkap

Dengan asumsi kita berbicara tentang data kuantitatif, Anda harus memutuskan apakah Anda ingin mengabaikan kolom (jika ada terlalu banyak data yang hilang) atau mencari tahu apa yang akan menjadi nilai "default" Anda (Mean, Mode, Etc). Anda tidak dapat melakukan ini tanpa menjelajahi data Anda terlebih dahulu.

Data abnormal

Katakanlah Anda memiliki data yang berkorelasi sangat kuat tetapi ada 2% dari data Anda yang jauh dari korelasi ini. Anda mungkin ingin menghapus data ini sekaligus untuk membantu model prediksi Anda

Hapus kolom dengan korelasi terlalu banyak

Ok, ini sedikit bertentangan dengan poin saya sebelumnya, tetapi bahasa Inggris bukan bahasa utama saya, jadi saya harap Anda akan mengerti.

Saya akan mengambil contoh bodoh, katakan Anda menganalisis dataset stadion sepak bola dan Anda memiliki Width, Length, Areasebagai parameter. Kita dapat dengan mudah membayangkan bahwa ketiga parameter ini akan berkorelasi kuat. Memiliki terlalu banyak korelasi antara kolom Anda menyebabkan model prediksi ke arah yang salah. Anda mungkin memutuskan untuk menyiram satu atau lebih parameter.

Temukan fitur baru

Saya akan mengambil contoh "Kompetisi" Titanic Kaggle kecil . Saat melihat nama orang-orang, Anda dapat mengetahui bahwa Anda dapat mengekstrak fitur yang menjadi Titlemilik orang tersebut. Fitur ini ternyata sangat penting dalam hal pemodelan, tetapi Anda akan melewatkannya jika Anda tidak menganalisis data Anda terlebih dahulu.

Anda mungkin memutuskan untuk membuang data kontinu Anda karena rasanya lebih sesuai atau mengubah fitur kontinu menjadi yang kategorikal.

Temukan algoritma apa yang digunakan

Saya tidak bisa menggambar plot sekarang, tapi mari kita buat contoh sederhana ini.

Bayangkan Anda memiliki model kecil dengan satu kolom fitur dan satu biner (hanya 0 atau 1) kolom "hasil". Anda ingin membuat model klasifikasi prediktif untuk dataset ini.

Jika, sekali lagi sebagai contoh, Anda harus memplotnya (soo, menganalisis data Anda), Anda mungkin menyadari bahwa plot membentuk lingkaran sempurna di sekitar nilai 1 Anda. Dalam skenario seperti itu, apakah akan cukup jelas bahwa Anda dapat menggunakan classifier polinomial untuk memiliki model yang hebat alih-alih melompat langsung ke DNN. (Jelas, mengingat hanya ada dua kolom dalam contoh saya, itu tidak menjadi contoh yang sangat baik, tetapi Anda mendapatkan intinya)

Secara keseluruhan, Anda tidak dapat mengharapkan model prediksi berfungsi dengan baik jika Anda tidak melihat data terlebih dahulu.

IEatBagels
sumber
8

Satu hal penting yang dilakukan oleh EDA adalah menemukan kesalahan entri data dan poin anomali lainnya.

Lain adalah bahwa distribusi variabel dapat mempengaruhi model yang Anda coba pas.

Peter Flom - Pasang kembali Monica
sumber
8

Kami dulu memiliki ungkapan dalam bidang kimia:

" Dua minggu yang dihabiskan di lab dapat menghemat dua jam untuk Scifinder ".

Saya yakin hal yang sama berlaku untuk pembelajaran mesin:

" Dua minggu menghabiskan pelatihan neuralnet dapat menghemat 2 jam melihat data input ".

Ini adalah hal-hal yang saya lalui sebelum memulai proses ML.

  • Plot kepadatan setiap variabel (kontinu). Bagaimana angka miring? Apakah saya memerlukan transformasi log untuk membuat data masuk akal? Seberapa jauh outlier? Adakah nilai yang tidak masuk akal secara fisik atau logis?
  • Mengawasi NAs. Biasanya, Anda bisa membuangnya, tetapi jika ada banyak, atau jika mereka mewakili aspek penting untuk perilaku sistem, Anda mungkin harus menemukan cara untuk membuat ulang data. Ini bisa menjadi proyek itu sendiri.
  • Plot setiap variabel terhadap variabel respons. Seberapa masuk akal Anda bisa membuatnya hanya dengan melihatnya? Apakah ada kurva yang jelas yang bisa dilengkapi dengan fungsi?
  • Nilailah apakah Anda membutuhkan model ML yang rumit atau tidak. Terkadang, regresi linier adalah yang Anda butuhkan. Bahkan jika tidak, itu memberikan dasar yang baik untuk model ML Anda untuk ditingkatkan.

Di luar langkah-langkah dasar itu, saya tidak akan menghabiskan banyak waktu melihat data sebelum menerapkan proses ML untuk itu. Jika Anda sudah memiliki sejumlah besar variabel, kombinasi non-linier yang rumit menjadi semakin sulit, tidak hanya untuk ditemukan, tetapi juga untuk plot dan dipahami. Ini adalah jenis hal yang paling baik ditangani oleh komputer.

Ingolif
sumber
6

Perspektif statistik:

Mengesampingkan kesalahan dalam tahap pemodelan, ada tiga kemungkinan hasil dari mencoba prediksi tanpa terlebih dahulu melakukan EDA:

  1. Prediksi memberikan hasil omong kosong yang jelas, karena data input Anda melanggar asumsi metode prediksi Anda. Anda sekarang harus kembali dan memeriksa input Anda untuk mencari tahu di mana masalahnya terletak, kemudian memperbaiki masalah dan mengulang analisis. Bergantung pada sifat masalahnya, Anda bahkan mungkin perlu mengubah metode prediksi. (Apa maksud Anda, ini adalah variabel kategori ?)
  2. Prediksi memberikan hasil yang buruk tetapi tidak jelas buruk, karena data Anda melanggar asumsi dengan cara yang sedikit kurang jelas. Entah Anda kembali dan memeriksa asumsi tersebut (dalam hal ini, lihat # 1 di atas) atau Anda menerima hasil yang buruk.
  3. Untungnya, data input Anda persis seperti yang Anda harapkan (saya paham ini kadang-kadang terjadi) dan prediksi ini memberikan hasil yang baik ... yang akan sangat bagus, kecuali bahwa Anda tidak dapat membedakan antara ini dan # 2 di atas.

Perspektif manajemen proyek:

Menyelesaikan masalah data dapat mengambil banyak waktu dan upaya. Contohnya:

  • Data kotor dan Anda perlu menghabiskan waktu mengembangkan proses untuk membersihkannya. (Misalnya: waktu saya harus membuat kode koreksi otomatis untuk semua orang yang terus menulis tahun yang salah di bulan Januari, dan orang-orang yang memasukkan tanggal di bidang tahun , dan sistem yang menguraikan tanggal sebagai MM / DD / YYYY bukannya DD / MM / YYYY.)
  • Anda perlu bertanya tentang apa artinya data, dan hanya Joan yang bisa menjawabnya. Joan akan pergi liburan enam bulan, mulai dua minggu setelah proyek Anda dimulai.
  • Keterbatasan data mencegah Anda memberikan semua yang Anda ingin sampaikan (lih. Contoh Bernhard tentang tidak dapat menghasilkan analisis berdasarkan jenis kelamin / gender karena kumpulan data hanya memiliki satu wanita) dan Anda / klien Anda perlu mencari tahu apa yang harus dilakukan tentang hal itu .

Semakin awal Anda dapat mengidentifikasi masalah seperti itu, semakin baik peluang Anda untuk mempertahankan proyek Anda di jalur, menyelesaikan tepat waktu, dan membuat klien Anda bahagia.

Geoffrey Brent
sumber