Keuntungan:
- Kemampuan untuk mengenali sumber data yang berbeda (database, API, file, web scraping) dan kendala masing-masing sumber serta memahami skema dengan benar
- Kemampuan untuk melakukan pengambilan sampel berulang dengan mengevaluasi apakah sampel mewakili populasi dan bias seleksi
- Kemampuan untuk menghilangkan kebocoran data pada tahap pengumpulan dan mematuhi batasan hukum/etika dengan mengajukan pertanyaan 'Apakah saya akan memilikinya pada saat prediksi' di setiap kolom?
Setiap analisis sama baiknya dengan kualitas data yang Anda kumpulkan. Bahkan model paling canggih di dunia pun akan memberikan hasil yang tidak dapat diandalkan jika model tersebut bekerja dengan data yang dikumpulkan secara tidak benar, pengambilan sampelnya tidak bias, atau berisi informasi tentang masa depan. Dalam ilmu komputer, prinsip ini diringkas sebagai "sampah masuk, sampah keluar" (sampah masuk, sampah keluar). Dalam unit ini, kita akan membahas tahap pengumpulan data: memahami sumber, pengambilan sampel, mengajukan pertanyaan berkualitas, dan waspada terhadap risiko kebocoran data sejak hari pertama. Kecerdasan buatan merupakan bantuan yang ampuh pada tahap ini; Menulis kueri SQL, merangkum dokumen API, menyusun kontrak data. Namun manusialah yang memutuskan data apa yang Anda kumpulkan dan apakah data tersebut mewakili Anda.
Mengenal sumber data
Data berasal dari berbagai tempat, dan setiap sumber memiliki kekurangannya masing-masing. Basis data (data terstruktur yang disimpan dalam tabel, biasanya ditanyakan dengan SQL) adalah sumber yang paling umum; Ini dapat diandalkan, tetapi skemanya perlu dipahami dengan baik. API (Application Programming Interface) menyediakan data langsung tetapi membawa risiko batas kecepatan dan perubahan format. File (CSV, Excel, JSON) fleksibel namun rentan terhadap inkonsistensi format. Pengikisan web sangat ampuh, tetapi memiliki batasan hukum dan etika; Tidak semua situs dapat dikikis.
Perhatian: Untuk web scraping dan pengumpulan data otomatis, patuhi persyaratan penggunaan situs, file robots.txt, dan KVKK/GDPR. Pengumpulan data yang tidak sah menimbulkan tanggung jawab hukum. Dalam konteks keamanan informasi, gunakan alat pengumpulan data hanya pada sistem yang Anda izinkan dan untuk tujuan pertahanan/analisis; Akses tidak sah atau pengikisan dilarang.
Memahami skema: mengenal data
Sebelum mengumpulkan kumpulan data, Anda harus memahami skemanya (nama kolom, tipe datanya, artinya, dan hubungannya satu sama lain). AI sangat berguna di sini dalam membuat "kamus data" — sebuah tabel yang menjelaskan arti setiap kolom. Namun penjelasan yang dihasilkan AI hanyalah prediksi; Konfirmasikan arti sebenarnya dari setiap kolom dengan tim yang menghasilkan data. Misalnya, kolom bernama "status" mungkin berisi 0/1/2; Hanya tim pembuat yang mengetahui apakah ini "menunggu keputusan/disetujui/dibatalkan" atau hal lainnya.
Tabel berikut merangkum jenis sumber daya dasar dan peringatannya:
Sumber
titik kuat
jebakan
Bagaimana AI membantu
basis data SQL
Struktural, andal
GABUNG Kompleks
Menulis draf kueri
API
data langsung
Batas kecepatan, perubahan bentuk
Ringkasan dokumen, kode tarik
CSV/Unggul
Fleksibel, cepat
Inkonsistensi format
Membaca/mengurai kode
pengikisan web
Jangkauan luas
Batasan hukum/etika
Mengurai draf (sesuai otoritas)
Data log/peristiwa
rinci
volume yang sangat besar
Memfilter kueri
Ilustrasi: apakah bagian mewakili keseluruhan?
Seringkali, Anda bekerja dengan sampel (bagian yang dipilih dari populasi) daripada keseluruhan data. Pertanyaan kritisnya adalah: apakah sampel ini mewakili populasi? Bias seleksi adalah jebakan yang paling umum. Misalnya, jika Anda hanya mengambil sampel pengguna dari aplikasi seluler, Anda tidak akan melihat pengguna web dan hasil Anda akan menyesatkan. Pengambilan sampel secara acak (setiap catatan memiliki peluang yang sama untuk dipilih) adalah yang paling aman dalam banyak kasus; namun dalam data deret waktu, pemisahan dilakukan secara kronologis dan bukan secara acak (kita akan melihatnya di Unit 7 dan 10).
Kebocoran kesadaran sejak hari pertama
Kebocoran data merupakan sumber dari sebagian besar bencana dan biasanya muncul pada tahap pengumpulan data. Contoh: saat memprediksi "apakah dibatalkan", jika Anda menambahkan kolom "tanggal pembatalan" ke data, model akan melihat masa depan. Selama fase pengumpulan, ajukan satu pertanyaan untuk setiap kolom: “Apakah saya benar-benar mendapatkan informasi ini pada saat saya membuat prediksi?” Jika jawabannya tidak, kolom tersebut bocor. Kami akan membahas topik ini secara mendalam di Unit 10; Namun kesadaran harus dimulai sejak hari pertama.
tiga kasus mini
Kasus 1 — Masalah representasi. Sebuah bank hanya mengumpulkan data mengenai pinjaman yang disetujui untuk model risiko kreditnya (18.500 catatan). Penolakan tidak ada dalam data. Model tersebut salah di dunia nyata karena model tersebut tidak pernah melihat bagaimana perilaku orang yang ditolak. Pelajaran: sampel harus mewakili seluruh populasi yang menjadi tempat Anda mengambil keputusan.
Kasus 2 — Perubahan bentuk senyap. Sebuah tim mengambil data harga dari API setiap hari. Suatu hari, penyedia API mengubah mata uang dari USD menjadi EUR, namun nama domainnya tetap sama. Data dikumpulkan di unit yang salah selama 12 hari; 3.200 baris rusak. Pelajaran: Periksa konsistensi volume dan format secara teratur dalam data API.
Kasus 3 — Kebocoran awal. Seorang analis menyertakan kolom "alasan penutupan akun" saat mengumpulkan data untuk perkiraan "churn". Kolom ini baru diisi setelah pelanggan pergi. Model ini menghasilkan akurasi 97% pada set pengujian; Ini tidak berfungsi dalam produksi karena kolom tersebut kosong pada waktu prediksi. Pelajaran: ajukan pertanyaan pada setiap kolom "apakah saya memilikinya pada saat prediksi?"
Empat templat yang dapat disalin
1) Ekstraksi kamus data:
Peran Anda: asisten ilmuwan data. Di bawah ini adalah nama kolom dan contoh nilai (anonim) dari sebuah tabel. Untuk setiap kolom, cantumkan perkiraan makna, tipe data, dan potensi risiko kualitas dalam sebuah tabel. Tandai kolom yang Anda tidak yakin sebagai "perlu konfirmasi"; artinya membuat. Kolom: [tempel di sini]
2) Kode pengambilan sampel (acak, berulang):
Saya punya panda df. Tulis kode yang mengekstrak sampel acak 5% yang representatif dari 200.000 baris. Gunakan random_state=42 (untuk reproduktifitas). Tambahkan kode untuk memeriksa apakah distribusi kelas sampel serupa dengan populasi.
3) Pertanyaan pemindaian kebocoran:
Saya akan memberi Anda daftar kolom ini. Tujuan saya adalah memprediksi "apakah dibatalkan" (0/1). Untuk setiap kolom, evaluasi apakah saya benar-benar akan memilikinya pada saat prediksi dan tandai sebagai "aman/mencurigakan/bocor". Tulis alasan Anda dalam satu kalimat. Kolom: [daftar]
4) Draf kueri tarik SQL:
Saya memiliki tabel "pesanan" dan "pelanggan" di PostgreSQL. Tulis kueri GABUNG yang menggabungkan pesanan dalam 90 hari terakhir dengan kota pelanggan dan mengembalikan jumlah total dan jumlah pesanan per kota. Jelaskan filter tanggal dan cara penanganan kota NULL. Saya akan menjalankan kueri dan memverifikasinya.
Perintah lemah / Perintah kuat
Perintah yang lemah:
Berikan saya contoh data yang bagus dari database ini.
"Bagus" bersifat ambigu; Lukisan yang mana, periode yang mana, ukuran yang mana, tujuannya yang mana tidak jelas. AI hanya akan menghasilkan kueri umum yang mungkin salah.
Perintah yang kuat:
Peran Anda: asisten SQL. Saya memiliki tabel "transaksi": id kolom, id_pelanggan, tanggal (cap waktu), jumlah (numerik), saluran (teks: 'web'/'seluler'). Tugas: Menulis kueri berulang (deterministik dengan ORDER BY) yang mengembalikan 10.000 baris perwakilan dari setiap saluran untuk tahun 2024. Tujuan: analisis komparatif saluran. Buat daftar asumsi kueri Anda.
Di sini tabel, tujuan, ukuran dan pengulangannya jelas.
Kesalahan umum
- Tidak mempertanyakan keterwakilan sampel. Data yang mudah diakses bukanlah data yang akurat; bias seleksi mendistorsi hasil.
- Menyesuaikan makna kolom dengan AI. Tim sumber mengetahui artinya; Jangan gunakan prediksi AI tanpa mengonfirmasinya.
- Tidak melacak perubahan format/unit API. Perubahan diam-diam mengumpulkan data yang rusak selama berhari-hari.
- Mengabaikan kebocoran pada tahap pengumpulan. Jika pertanyaan "Apakah saya memilikinya pada saat prediksi" tidak ditanyakan lebih awal, model akan memberikan keberhasilan yang salah.
- Mengumpulkan data yang tidak sah atau ilegal. Pelanggaran terhadap robots.txt, ketentuan penggunaan, dan KVKK merupakan risiko serius.
Tip: Simpan satu halaman “kartu data” untuk setiap sumber data baru: sumber, tanggal penarikan, jumlah baris, batas yang diketahui, dan kolom yang berisiko bocor. Kartu ini menyimpan pertanyaan "data apa ini" dan kemampuan reproduksinya beberapa bulan kemudian.
Singkatnya
Kualitas analisis dibatasi oleh kualitas data yang dikumpulkan. Ketahui sumbernya (database, API, file, scrape) dan skema dengan baik; memastikan sampel mewakili populasi; Hilangkan kebocoran sejak hari pertama dengan menanyakan setiap kolom “apakah saya memilikinya pada saat prediksi?” AI adalah akselerator hebat untuk pekerjaan kueri dan dokumen, namun manusialah yang menentukan data apa yang akan dikumpulkan dan keterwakilannya. Batasan wewenang, hukum, dan kerahasiaan selalu diutamakan.
Tugas aplikasi
Pilih sumber data (dari bisnis Anda sendiri atau hipotetis). Dapatkan draf kamus data dari AI dengan template “ekstraksi kamus data” di atas; Kemudian evaluasi setiap kolom secara manual untuk melihat apakah ada kebocoran. Cobalah untuk menemukan setidaknya satu kolom yang mencurigakan/bocor dan tulis dalam satu kalimat mengapa itu berisiko.
daftar periksa
- [ ] Apakah saya sudah mengkonfirmasi sumber data dan skema dengan tim sumber?
- [ ] Sudahkah saya memastikan bahwa sampelnya mewakili populasi?
- [ ] Sudahkah saya menanyakan setiap kolom pertanyaan "apakah saya akan mendapatkannya pada saat perkiraan?"
- [ ] Sudahkah saya membuat pengambilan sampel dapat diulang (benih tetap)?
- [ ] Apakah saya sudah memeriksa batasan hukum/etika (otoritas, robots.txt, KVKK) dalam pengumpulan?