Unit 2 / 11

Pengumpulan Data dan Pemahaman Sumber: Skema, Persampelan, Kualiti dan Kesedaran Kebocoran

Keuntungan:

  • Keupayaan untuk mengenali sumber data yang berbeza (pangkalan data, API, fail, pengikisan web) dan perangkap setiap satu dan memahami skema dengan betul
  • Keupayaan untuk melakukan persampelan berulang dengan menilai sama ada sampel mewakili populasi dan kecenderungan pemilihan
  • Keupayaan untuk menghapuskan kebocoran data pada peringkat pengumpulan dan memerhatikan sempadan undang-undang/etika dengan bertanya soalan 'Adakah saya akan memilikinya pada masa ramalan' dalam setiap lajur?

Setiap analisis adalah sebaik kualiti data yang anda kumpulkan. Malah model paling maju di dunia akan menghasilkan hasil yang tidak boleh dipercayai jika ia berfungsi dengan data yang dikumpul secara salah, sampel berat sebelah atau mengandungi maklumat tentang masa depan. Dalam sains komputer, prinsip ini diringkaskan sebagai "sampah masuk, sampah keluar" (garbage in, garbage out). Dalam unit ini, kami akan merangkumi fasa pengumpulan data: memahami sumber, pensampelan, bertanya soalan berkualiti dan berwaspada terhadap risiko kebocoran data dari hari pertama. Kecerdasan buatan adalah bantuan yang kuat pada peringkat ini; Menulis pertanyaan SQL, meringkaskan dokumen API, mendraf kontrak data. Tetapi manusialah yang menentukan data yang anda kumpulkan dan sama ada data itu mewakili anda.

Mengenal sumber data

Data datang dari tempat yang berbeza, dan setiap sumber mempunyai perangkapnya sendiri. Pangkalan data (data berstruktur yang disimpan dalam jadual, biasanya ditanya dengan SQL) ialah sumber yang paling biasa; Ia boleh dipercayai, tetapi perlu memahami skemanya dengan baik. API (Antara Muka Pengaturcaraan Aplikasi) menyediakan data langsung tetapi membawa risiko had kelajuan dan perubahan format. Fail (CSV, Excel, JSON) adalah fleksibel tetapi terdedah kepada ketidakkonsistenan format. Pengikisan web adalah berkuasa, tetapi ia mempunyai had undang-undang dan etika; Tidak semua tapak boleh dikikis.

Perhatian: Untuk mengikis web dan pengumpulan data automatik, patuhi syarat penggunaan tapak, fail robots.txt dan KVKK/GDPR. Pengumpulan data tanpa kebenaran mewujudkan liabiliti undang-undang. Dalam konteks keselamatan maklumat, gunakan alat pengumpulan data hanya pada sistem yang anda dibenarkan dan untuk tujuan pertahanan/analisis; Akses atau pengikisan yang tidak dibenarkan adalah dilarang.

Memahami skema: berkenalan dengan data

Sebelum mengumpul set data, anda mesti memahami skemanya (nama lajur, jenis datanya, maknanya dan hubungannya antara satu sama lain). AI sangat berguna di sini dalam mencipta "kamus data" — jadual yang menerangkan maksud setiap lajur. Tetapi penjelasan yang dihasilkan AI adalah ramalan; Sahkan maksud sebenar setiap lajur dengan pasukan yang menghasilkan data. Sebagai contoh, lajur bernama "status" mungkin mengandungi 0/1/2; Hanya pasukan asal yang tahu sama ada ini "belum selesai/diluluskan/dibatalkan" atau sesuatu yang lain.

Jadual berikut meringkaskan jenis sumber asas dan amaran:

Sumber

titik kuat

perangkap

Bagaimana AI membantu

pangkalan data SQL

Berstruktur, boleh dipercayai

Kompleks JOIN

Menulis draf pertanyaan

API

data langsung

Had laju, perubahan bentuk

Ringkasan dokumen, kod tarik

CSV/Excel

Fleksibel, cepat

Ketidakselarasan format

Baca/huraikan kod

pengikisan web

Jangkauan luas

Had undang-undang/etika

Menghuraikan draf (dalam kuasa)

Data log/peristiwa

terperinci

jumlah yang besar

Pertanyaan penapisan

Ilustrasi: adakah bahagian mewakili keseluruhan?

Selalunya, anda bekerja dengan sampel (subset yang dipilih daripada populasi) dan bukannya keseluruhan data. Soalan kritikal ialah: adakah sampel ini mewakili populasi? Bias pemilihan adalah perangkap yang paling biasa. Contohnya, jika anda hanya mencuba pengguna daripada apl mudah alih, anda tidak akan melihat pengguna web dan keputusan anda akan mengelirukan. Persampelan rawak (setiap rekod mempunyai peluang yang sama untuk dipilih) adalah paling selamat dalam kebanyakan kes; tetapi dalam data siri masa, pemisahan dilakukan secara kronologi dan bukannya secara rawak (kita akan melihat ini dalam Unit 7 dan 10).

Kesedaran bocor dari hari pertama

Kebocoran data adalah punca kebanyakan bencana dan biasanya timbul semasa fasa pengumpulan data. Contoh: apabila meramalkan "adakah ia dibatalkan", jika anda menambahkan lajur "tarikh pembatalan" pada data, model melihat ke masa hadapan. Semasa fasa pengumpulan, tanya satu soalan untuk setiap lajur: "Adakah saya benar-benar mempunyai maklumat ini pada masa saya membuat ramalan?" Jika jawapannya tidak, lajur itu bocor. Kami akan membincangkan topik ini secara mendalam dalam Unit 10; Tetapi kesedaran harus bermula dari hari pertama.

tiga kes mini

Kes 1 — Masalah perwakilan. Satu bank mengumpul data hanya mengenai pinjaman yang diluluskan untuk model risiko kreditnya (18,500 rekod). Penolakan tidak terdapat dalam data. Model itu salah di dunia nyata kerana ia tidak pernah melihat bagaimana penolakan akan berkelakuan. Pengajaran: sampel hendaklah mewakili keseluruhan populasi yang anda membuat keputusan.

Kes 2 — Perubahan bentuk senyap. Satu pasukan sedang menarik data harga daripada API setiap hari. Pada suatu hari, penyedia API menukar mata wang daripada USD kepada EUR, tetapi nama domain kekal sama. Data dikumpul dalam unit yang salah selama 12 hari; 3,200 talian telah rosak. Pelajaran: Semak konsistensi volum dan format dalam data API secara kerap.

Kes 3 — Kebocoran awal. Seorang penganalisis menyertakan lajur "sebab penutupan akaun" semasa mengumpul data untuk anggaran "perubahan". Lajur ini diisi hanya selepas pelanggan pergi. Model ini menghasilkan ketepatan 97% pada set ujian; Ia tidak berfungsi dalam pengeluaran kerana lajur itu kosong pada masa ramalan. Pengajaran: tanya setiap lajur soalan "adakah saya mempunyainya pada masa ramalan?"

Empat templat yang boleh disalin

1) Pengekstrakan kamus data:

Peranan anda: pembantu saintis data. Di bawah ialah nama lajur dan nilai sampel (tanpa nama) jadual. Untuk setiap lajur, senaraikan anggaran makna, jenis data dan potensi risiko kualitinya dalam jadual. Tandai lajur yang anda tidak pasti sebagai "pengesahan diperlukan"; membuat makna.Lajur: [tampal di sini]

2) Kod pensampelan (rawak, boleh diulang):

Saya mempunyai df panda. Tulis kod yang mengekstrak sampel rawak 5% wakil daripada 200,000 baris. Gunakan random_state=42 (untuk kebolehulangan). Tambahkan kod untuk menyemak sama ada pengedaran kelas sampel adalah serupa dengan populasi.

3) Soalan imbasan bocor:

Saya akan memberikan anda senarai lajur ini. Matlamat saya adalah untuk meramalkan "adakah ia dibatalkan" (0/1). Untuk setiap lajur, nilaikan sama ada saya benar-benar akan memilikinya pada masa ramalan dan tandakannya sebagai "selamat / mencurigakan / bocor". Tulis rasional anda dalam satu ayat. Lajur: [senarai]

4) Draf pertanyaan tarik SQL:

Saya mempunyai jadual "pesanan" dan "pelanggan" dalam PostgreSQL. Tulis pertanyaan JOIN yang menggabungkan pesanan 90 hari terakhir dengan bandar pelanggan dan mengembalikan jumlah dan bilangan pesanan setiap bandar. Terangkan penapis tarikh dan cara bandar NULL dikendalikan. Saya akan menjalankan pertanyaan dan mengesahkannya.

Gesaan lemah / Gesaan kuat

Gesaan yang lemah:

Tarik saya data sampel yang baik daripada pangkalan data ini.

"Baik" adalah samar-samar; Lukisan mana, tempoh mana, saiz mana, tujuan mana yang tidak jelas. AI hanya akan menghasilkan pertanyaan generik, mungkin salah.

Gesaan kuat:

Peranan anda: Pembantu SQL. Saya mempunyai jadual "urus niaga": id lajur, id_pelanggan, tarikh (cap masa), jumlah (angka), saluran (teks: 'web'/'mudah alih'). Tugasan: Tulis pertanyaan berulang (deterministik dengan ORDER BY) yang mengembalikan 10,000 baris wakil daripada setiap saluran untuk tahun 2024. Tujuan: analisis perbandingan saluran. Senaraikan andaian pertanyaan anda.

Di sini jadual, tujuan, saiz dan kebolehulangan adalah jelas.

Kesilapan biasa

  • Tidak mempersoalkan keterwakilan sampel. Data yang mudah diakses bukanlah data yang tepat; bias pemilihan memesongkan keputusan.
  • Menyesuaikan makna lajur kepada AI. Pasukan sumber tahu maksudnya; Jangan gunakan ramalan AI tanpa mengesahkannya.
  • Tidak menjejak format API/perubahan unit. Perubahan senyap mengumpul data yang rosak selama beberapa hari.
  • Mengabaikan kebocoran pada peringkat pengumpulan. Jika soalan "Adakah saya mempunyainya pada masa ramalan" tidak ditanya lebih awal, model itu akan memberikan kejayaan palsu.
  • Mengumpul data yang tidak dibenarkan atau tidak sah. Pelanggaran robots.txt, syarat penggunaan dan KVKK adalah risiko yang serius.
Petua: Simpan "kad data" satu halaman untuk setiap sumber data baharu: sumber, tarikh tarik, bilangan baris, sempadan yang diketahui dan lajur yang berisiko kebocoran. Kad ini menyimpan soalan "apakah data ini" dan kebolehulangan beberapa bulan kemudian.

Secara ringkasnya

Kualiti analisis dihadkan oleh kualiti data yang dikumpul. Ketahui sumber (pangkalan data, API, fail, scrape) dan skema dengan baik; pastikan sampel mewakili populasi; Hapuskan kebocoran dari hari pertama dengan bertanya setiap lajur "adakah saya mempunyainya pada masa ramalan?" AI ialah pemecut yang hebat untuk kerja pertanyaan dan dokumen, tetapi manusia menentukan data yang hendak dikumpulkan dan keterwakilannya. Had kuasa, undang-undang dan kerahsiaan sentiasa diutamakan.

Tugasan permohonan

Pilih sumber data (daripada perniagaan anda sendiri atau hipotesis). Dapatkan draf kamus data daripada AI dengan templat "pengambilan kamus data" di atas; Kemudian nilai setiap lajur secara manual untuk melihat sama ada ia telah bocor. Cuba cari sekurang-kurangnya satu lajur yang mencurigakan/bocor dan tulis dalam satu ayat mengapa ia berisiko.

senarai semak

  • [ ] Adakah saya telah mengesahkan sumber data dan skema dengan pasukan sumber?
  • [ ] Adakah saya telah menyemak bahawa sampel itu mewakili populasi?
  • [ ] Adakah saya telah bertanya setiap lajur soalan "adakah saya akan memilikinya pada masa anggaran?"
  • [ ] Adakah saya telah membuat pensampelan boleh diulang (benih tetap)?
  • [ ] Adakah saya telah menyemak had pengumpulan undang-undang/etika (pihak berkuasa, robots.txt, KVKK)?