Persiapan data dalam proyek Ilmu Data: resep untuk ibu rumah tangga muda



Dalam artikel sebelumnya saya berbicara tentang struktur proyek Ilmu Data berdasarkan bahan metodologi IBM: bagaimana terstruktur, tahapan apa yang terdiri dari itu, tugas apa yang diselesaikan pada setiap tahap. Sekarang saya ingin memberikan gambaran tentang tahap yang paling memakan waktu, yang bisa memakan waktu hingga 90% dari total waktu proyek: ini adalah tahapan yang terkait dengan persiapan data - pengumpulan, analisis dan pembersihan.

Dalam deskripsi asli metodologi, proyek Data Science dibandingkan dengan persiapan hidangan, dan analis dengan koki. Dengan demikian, tahap persiapan data dibandingkan dengan persiapan produk: setelah kita memutuskan resep untuk hidangan yang akan kita siapkan pada tahap menganalisis tugas bisnis, kita perlu mencari, mengumpulkan di satu tempat, membersihkan dan memotong bahan-bahan. Dengan demikian, rasa hidangan akan tergantung pada seberapa baik tahap ini dilakukan (misalkan kita menebak dengan resep, terutama karena ada banyak resep di domain publik). Bekerja dengan bahan-bahan, yaitu, menyiapkan data, selalu merupakan perhiasan, usaha yang melelahkan dan bertanggung jawab: satu produk rusak atau tidak dicuci - dan semua pekerjaan terbuang sia-sia.

Pengumpulan data


Setelah kami menerima daftar bahan yang mungkin kami butuhkan, kami melanjutkan untuk mencari data untuk menyelesaikan masalah dan membentuk sampel yang akan kami kerjakan di masa mendatang. Ingat mengapa kita membutuhkan sampel: pertama, kita menggunakannya untuk membuat ide tentang sifat data pada tahap persiapan data, dan kedua, kita akan membentuk sampel uji dan pelatihan dari itu pada tahap pengembangan dan konfigurasi model.


Tentu saja, kami tidak mengambil kasus ketika Anda, di bawah ancaman NDA yang keras, harus memahami sesuatu tentang data dalam proyek skala besar, dan Anda menerima data dari pelanggan yang parah pada flash drive atau sebagai lampiran pada surat. Misalkan Anda baik-baik saja dan memiliki akses ke data. Pada tahap ini, perlu untuk menyiapkan sampel yang akan:

  1. mencerminkan semua sifat yang diperlukan dari populasi
  2. Nyaman bekerja, artinya tidak terlalu besar.

Tampaknya, mengapa membatasi diri pada jumlah data di era big data? Ini dalam sosiologi, sebagai suatu peraturan, populasi umum tidak tersedia: ketika kita memeriksa opini publik, mustahil untuk mempertanyakan semua orang, bahkan secara teori. Atau dalam kedokteran, di mana obat baru sedang dipelajari pada sejumlah kelinci percobaan / tikus / lalat: setiap objek tambahan dalam kelompok studi itu mahal, menyusahkan dan sulit. Namun, bahkan jika seluruh populasi benar-benar tersedia bagi kami, data besar memerlukan infrastruktur yang sesuai untuk komputasi, dan penyebarannya sendiri mahal (kami tidak berbicara tentang kasus-kasus di mana infrastruktur yang siap pakai dan terkonfigurasi ada di ujung jari Anda). Artinya, walaupun secara teori dimungkinkan untuk menghitung semua data, biasanya ternyata itu panjang, mahal, dan umumnya mengapa, karena Anda bisa melakukannya tanpa semua ini jika Anda menyiapkan sampel berkualitas tinggi, walaupun kecil, yang terdiri, misalnya, dari beberapa ribu catatan.

Waktu dan upaya yang dihabiskan untuk membuat sampel memungkinkan Anda mencurahkan lebih banyak waktu untuk penggalian data: misalnya, pencilan atau data yang hilang dapat berisi informasi berharga, tetapi di antara jutaan catatan tidak mungkin ditemukan, dan di antara beberapa ribu itu sepenuhnya.

Bagaimana cara mengevaluasi keterwakilan data?


Untuk memahami seberapa representatif sampel kami, akal sehat dan statistik berguna bagi kami. Untuk data kategorikal, kita perlu memastikan bahwa dalam sampel kami setiap atribut yang penting dari sudut pandang masalah bisnis disajikan dalam proporsi yang sama seperti pada populasi umum. Misalnya, jika kami memeriksa data pasien di klinik dan pertanyaannya menyangkut orang-orang dari segala usia, sampel yang hanya mencakup anak-anak tidak akan cocok untuk kami. Untuk data historis, perlu diperiksa bahwa data tersebut mencakup interval waktu yang representatif di mana fitur yang sedang diselidiki mengambil semua nilai yang mungkin. Misalnya, jika kami menganalisis banding ke lembaga pemerintah, data untuk minggu pertama Januari kemungkinan besar tidak cocok untuk kami, karena penurunan banding jatuh pada saat ini. Untuk tanda-tanda numerik, masuk akal untuk menghitung statistik dasar (setidaknya statistik titik: rata-rata, median, variabilitas dan bandingkan dengan statistik serupa dari populasi umum, jika mungkin, tentu saja).

Masalah Pengumpulan Data


Seringkali kita kekurangan data. Misalnya, sistem informasi telah berubah dan data dari sistem lama tidak tersedia, atau struktur data berbeda: kunci baru digunakan dan tidak mungkin untuk membuat koneksi antara data lama dan baru. Masalah organisasi juga tidak biasa ketika data dipegang oleh berbagai pemilik dan tidak semua orang dapat dikonfigurasi untuk menghabiskan waktu dan sumber daya untuk mengunggah proyek pihak ketiga.

Apa yang harus dilakukan dalam kasus ini? Kadang-kadang ternyata menemukan pengganti: jika tidak ada tomat segar, maka yang kalengan bisa muncul. Dan jika wortel ternyata sudah busuk, Anda harus pergi ke pasar untuk mendapat porsi baru. Jadi sangat mungkin bahwa pada tahap ini kita perlu kembali ke tahap sebelumnya, di mana kita menganalisis tugas bisnis dan bertanya-tanya apakah mungkin untuk merumuskan kembali pertanyaan itu entah bagaimana: misalnya, kita tidak dapat dengan jelas menentukan versi halaman toko online mana yang lebih baik menjual suatu produk (misalnya, tidak ada data penjualan yang cukup), tetapi kita dapat mengatakan pada halaman mana pengguna menghabiskan lebih banyak waktu dan yang lebih sedikit kegagalan (sesi penjelajahan sangat singkat selama beberapa detik).


Analisis data eksplorasi


Misalkan data diterima, dan ada keyakinan bahwa data tersebut mencerminkan populasi umum dan berisi jawaban atas tugas bisnis yang diajukan. Sekarang mereka perlu diperiksa untuk memahami apa kualitas produk data di tangan kita dan apakah mereka cocok untuk resep yang dimaksud. Misalkan kita telah mengambil beberapa contoh rekaman, mengurutkan apa kuncinya dan jenis data apa yang dikandungnya: numerik, biner, kategorikal. Setelah itu, Anda dapat mulai mempelajari setiap gejala secara individual. Alat utama untuk penelitian adalah statistik deskriptif.


Penilaian posisi sentral


Pada tahap pertama penelitian, akan baik untuk memahami nilai apa untuk setiap karakteristik yang khas. Perkiraan paling sederhana adalah rata-rata aritmatika: indikator sederhana dan terkenal. Namun, jika sebaran data besar, rata-rata tidak akan memberi tahu kami banyak tentang nilai-nilai tipikal: misalnya, kami ingin memahami tingkat gaji di rumah sakit. Untuk melakukan ini, tambahkan gaji semua karyawan, termasuk direktur, yang menerima beberapa kali lebih banyak daripada perawat. Rata-rata aritmatika yang diperoleh akan lebih tinggi daripada gaji karyawan mana pun (kecuali direktur) dan tidak akan memberi tahu kami apa pun tentang gaji tipikal. Indikator semacam itu hanya cocok untuk pelaporan ke Departemen Kesehatan, yang dengan bangga melaporkan kenaikan gaji. Nilai yang diperoleh juga tunduk pada pengaruh nilai batas. Untuk menghindari pengaruh outlier (atipikal, nilai batas), statistik lain digunakan: median, yang dihitung sebagai nilai pusat dalam nilai yang diurutkan.

Jika datanya biner atau kategorikal, Anda harus mencari tahu nilai mana yang lebih umum dan mana yang kurang umum. Untuk melakukan ini, gunakan mod: nilai atau kategori paling umum. Ini berguna, antara lain, untuk memahami keterwakilan sampel: misalnya, kami memeriksa data rekam medis pasien dan menemukan bahwa โ…” kartu milik wanita. Ini akan membuat Anda bertanya-tanya apakah ada kesalahan saat pengambilan sampel. Untuk menampilkan rasio kategori relatif satu sama lain, representasi grafis dari data berguna, misalnya, dalam bentuk diagram batang atau pai.

Penilaian variabilitas data


Setelah kami menentukan nilai tipikal sampel kami, kami dapat melihat nilai atipikal - outlier. Emisi dapat memberi tahu kita sesuatu tentang kualitas data: misalnya, mereka dapat menjadi tanda kesalahan: kebingungan dimensi, hilangnya tempat desimal atau kurva pengodean. Mereka juga berbicara tentang seberapa banyak data bervariasi, apa saja nilai pembatas dari karakteristik yang diteliti.

Selanjutnya, kita dapat melanjutkan ke penilaian umum tentang seberapa banyak data bervariasi. Variabilitas (itu juga dispersi) menunjukkan seberapa besar nilai-nilai sifat berbeda. Salah satu cara untuk mengukur variabilitas adalah dengan mengevaluasi penyimpangan khas fitur dari nilai pusat. Jelas bahwa rata-rata penyimpangan ini tidak akan memberi kita banyak, karena penyimpangan negatif menetralkan yang positif. Estimasi variabilitas yang paling terkenal adalah varians dan standar deviasi, dengan mempertimbangkan nilai absolut dari deviasi (varians adalah rata-rata deviasi kuadrat, dan deviasi standar adalah akar kuadrat dari varians).

Pendekatan lain didasarkan pada pertimbangan penyebaran data yang diurutkan (untuk set data besar, langkah-langkah ini tidak digunakan, karena Anda harus terlebih dahulu mengurutkan nilai-nilai, yang mahal itu sendiri). Misalnya, evaluasi menggunakan persentil (Anda juga dapat menemukan hanya persentil). Persentil ke-N - ini adalah nilai sedemikian sehingga setidaknya N persen dari data mengambil nilai tersebut atau lebih. Untuk mencegah sensitivitas outlier, nilai dapat diturunkan dari setiap ujung. Ukuran variabilitas yang diterima secara umum adalah perbedaan antara persentil ke-25 dan ke-75 - kisaran interkuartil.

Survei Distribusi Data


Setelah kami mengevaluasi data menggunakan karakteristik numerik umum, kami dapat memperkirakan bagaimana distribusi data secara keseluruhan terlihat. Ini paling mudah dilakukan menggunakan alat pemodelan visual - grafik.

Jenis bagan yang paling umum digunakan adalah bagan kotak (atau kotak dengan kumis) dan bagan batang. Sebuah kotak dengan kumis - representasi kompak pilihan yang nyaman, memungkinkan Anda untuk melihat beberapa karakteristik yang dipelajari pada satu gambar, dan karenanya, membandingkannya satu sama lain. Jika tidak, jenis bagan ini disebut diagram kotak dan plot atau kotak, plot kotak. Jenis diagram ini dalam bentuk yang dapat dimengerti menunjukkan median (atau, jika perlu, rata-rata), kuartil bawah dan atas, nilai minimum dan maksimum sampel dan outlier. Beberapa kotak ini dapat ditarik berdampingan untuk membandingkan secara visual satu distribusi dengan yang lain; mereka dapat ditempatkan baik secara horizontal maupun vertikal. Jarak antara berbagai bagian kotak memungkinkan Anda untuk menentukan tingkat dispersi (dispersi), asimetri data, dan mengidentifikasi pencilan.


Juga alat yang berguna adalah histogram yang terkenal - visualisasi tabel frekuensi, di mana interval frekuensi diplot pada sumbu X dan jumlah data pada sumbu Y. Bagan batang juga akan berguna untuk meneliti data historis: ini akan membantu Anda memahami bagaimana catatan didistribusikan dari waktu ke waktu dan bisakah kamu mempercayai mereka? Dengan menggunakan grafik, dimungkinkan untuk mengidentifikasi kesalahan pengambilan sampel dan data yang rusak: semburan di tempat yang tidak terduga atau adanya catatan yang terkait dengan masa depan dapat memungkinkan untuk mendeteksi masalah dengan format data, misalnya, mencampur format tanggal di bagian sampel.

Korelasi


Setelah kita melihat semua variabel, kita perlu memahami jika ada variabel tambahan di antara mereka. Untuk melakukan ini, koefisien korelasi digunakan - indikator metrik yang mengukur sejauh mana variabel numerik terkait satu sama lain dan mengambil nilai dalam kisaran dari 1 hingga -1. Matriks korelasi adalah tabel di mana baris dan kolom adalah variabel. dan nilai sel adalah korelasi antara variabel-variabel ini. Diagram hamburan - sepanjang sumbu x nilai satu variabel, sepanjang sumbu y - lainnya.

Pembersihan data


Setelah kami memeriksa data, itu perlu dibersihkan dan mungkin diubah. Pada tahap ini, kita harus mendapatkan jawaban atas pertanyaan: bagaimana kita perlu menyiapkan data agar dapat menggunakannya seefisien mungkin? Kita perlu menyingkirkan data yang salah, memproses catatan yang hilang, menghapus duplikat, dan memastikan semuanya diformat dengan benar. Juga pada tahap ini kita mendefinisikan serangkaian fitur yang pembelajaran mesin akan dibangun lebih lanjut. Kualitas pelaksanaan tahap ini akan menentukan apakah sinyal dalam data dapat dibedakan untuk algoritma pembelajaran mesin. Jika kami bekerja dengan teks, langkah-langkah tambahan mungkin diperlukan untuk mengubah data yang tidak terstruktur menjadi seperangkat atribut yang cocok untuk digunakan dalam model. Persiapan data adalah dasar di mana langkah-langkah selanjutnya akan dibangun. Seperti dalam memasak, hanya satu bahan busuk atau tidak dikupas yang dapat merusak seluruh hidangan. Kecerobohan dalam menangani data dapat mengarah pada fakta bahwa model tidak akan menunjukkan hasil yang baik dan harus mundur beberapa langkah.


Hapus entri yang tidak diinginkan


Salah satu operasi pembersihan data pertama adalah menghapus catatan yang tidak perlu. Ini mencakup dua langkah: menghapus entri yang rangkap atau salah. Kami menemukan nilai yang salah pada tahap sebelumnya, ketika kami mempelajari outlier dan nilai atipikal. Kami dapat memperoleh data duplikat setelah menerima data serupa dari berbagai sumber.

Koreksi Kesalahan Struktural


Ada beberapa kasus di mana kategori yang sama dapat dinamai secara berbeda (lebih buruk, ketika kategori yang berbeda memiliki nama yang sama): misalnya, dalam data terbuka pemerintah Moskow, data konstruksi disajikan setiap triwulan, tetapi total volume untuk tahun tersebut ditandatangani sebagai tahun, dan pada beberapa catatan ditetapkan sebagai kuartal ke-4. Dalam hal ini, kami mengembalikan nilai kategori yang benar (jika mungkin).

Jika Anda harus bekerja dengan data teks, maka setidaknya Anda perlu melakukan manipulasi berikut: menghapus spasi, menghapus semua pemformatan, menyelaraskan kasing, memperbaiki kesalahan ejaan.

Penghapusan lebih awal


Untuk tugas pembelajaran mesin, data dalam sampel tidak boleh mengandung outlier dan distandarisasi mungkin, sehingga nilai batas unit harus dihapus.

Manajemen Data Tidak Ada


Bekerja dengan data yang hilang adalah salah satu langkah paling sulit dalam membersihkan data. Tidak adanya bagian dari data, sebagai suatu peraturan, adalah masalah untuk sebagian besar algoritma, jadi Anda harus tidak menggunakan catatan di mana bagian dari data tersebut hilang, atau mencoba untuk mengembalikan yang hilang berdasarkan pada asumsi tentang sifat data. Pada saat yang sama, kami memahami bahwa mengisi kesenjangan data (tidak peduli seberapa canggih cara kami melakukannya) tidak menambahkan informasi baru, tetapi hanya sebuah penopang yang memungkinkan Anda untuk lebih efektif menggunakan sisa informasi. Kedua pendekatan ini tidak terlalu kuat, karena dalam hal apa pun, kami kehilangan informasi. Namun, kurangnya data bisa menjadi sinyal tersendiri. Sebagai contoh, kami memeriksa data pengisian bahan bakar dan kurangnya data sensor dapat menjadi tanda jelas adanya pelanggaran.

Saat bekerja dengan data kategorikal, hal terbaik yang dapat kita lakukan dengan data yang hilang dari jenis ini adalah menandainya sebagai "hilang". Langkah ini sebenarnya melibatkan penambahan kelas data kategorikal baru. Cara serupa adalah menangani data yang hilang dari jenis numerik: Anda harus menandai data yang hilang, misalnya, mengganti data yang hilang dengan nol. Tetapi Anda perlu diingat bahwa nol tidak selalu cocok. Sebagai contoh, data kami adalah pembacaan balik dan tidak adanya pembacaan tidak dapat dikacaukan dengan nol nyata dalam nilai data.

Alat pembersih data


Sebagai aturan, pembersihan data bukan peristiwa satu kali, kemungkinan besar kita harus menambahkan data baru ke sampel, yang lagi-lagi harus melewati prosedur pembersihan yang dikembangkan. Untuk mengoptimalkan proses, senang menggunakan aplikasi khusus (selain, tentu saja, Excel 'I, yang mungkin juga berguna), misalnya:

  • Talend Data Preparation adalah aplikasi desktop gratis dengan antarmuka visual yang menyederhanakan dan mengotomatiskan tugas-tugas pembersihan data: memungkinkan Anda untuk membangun pipa pemrosesan data khusus. Anda dapat menggunakan berbagai sumber data dengan Talend, termasuk file csv atau data Excel.
  • OpenRefine Alat ini dulunya disebut Google Refine atau Freebase Gridworks. Sekarang OpenRefine adalah aplikasi desktop yang populer untuk membersihkan dan mengubah format data.
  • Trifacta Wrangler - aplikasi desktop yang memungkinkan Anda bekerja dengan tipe data yang kompleks, juga berguna untuk analisis data eksplorasi. Itu tidak memerlukan pelatihan pengguna khusus.

Yah, tentu saja, pipa pembersihan data dapat diimplementasikan dalam bahasa pemrograman yang nyaman - dari Python ke Scala, hal utama adalah bahwa pemrosesan membutuhkan waktu yang dapat diterima.


Dan akhirnya ...


Setelah kami membersihkan dan mentransformasikan data, mungkin ternyata data tersebut entah bagaimana tidak cukup, jadi itu normal jika Anda harus kembali ke langkah mendapatkan data dari tahap ini, menambahkan lebih banyak nilai pada seleksi, atau mencari sumber data baru. Ini normal.


Kesimpulan


Ya, persiapan data bukanlah tugas yang mudah, kadang-kadang bahkan menyakitkan, tetapi upaya yang dihabiskan pada tahap ini akan kembali seratus kali lipat ketika memulai model: ada kasus ketika bahkan model sederhana dengan cepat menunjukkan hasil yang sangat baik dan membutuhkan kalibrasi minimal jika mereka bekerja pada data yang disiapkan dengan baik.

Semoga artikel ini bermanfaat.

PS: Produk yang digunakan untuk ilustrasi tidak dirugikan, tetapi digunakan untuk tujuan yang dimaksudkan!

Source: https://habr.com/ru/post/id470650/


All Articles