Apa Itu Data Science? [BLOCK_TYPE SECTION/STEP]
Data science bukan hanya machine learning. Bukan hanya statistik. Bukan hanya pemrograman. [BLOCK_TYPE SECTION/STEP]
Data science adalah disiplin untuk mengekstrak pengetahuan yang berguna dari data. Sebagian besar pekerjaan ini tidak glamour: membersihkan spreadsheet yang berantakan,提出 pertanyaan yang tepat, dan mengomunikasikan hasil kepada orang yang tidak peduli dengan kode Anda. [BLOCK_TYPE SECTION/STEP]
[BLOCK_TYPE SECTION/STEP]
Pipeline data science yang khas terlihat seperti ini:
1. Collect: mengumpulkan data mentah dari database, API, CSV, atau web scraping
2. Clean: menangani nilai yang hilang, memperbaiki tipe data, menghapus duplikat
3. Explore: memvisualisasikan distribusi, menemukan pola, mengajukan pertanyaan
4. Engineer: membuat fitur baru yang membantu model belajar
5. Model: melatih algoritma, mengevaluasi performa, mengiterasi
6. Communicate: menyajikan temuan kepada stakeholder yang membuat keputusan
Jika Anda pernah menggunakan pivot tables, conditional formatting, atau VLOOKUP di Excel, Anda telah sudah melakukan langkah 1-3. Pelajaran ini menghubungkan pengalaman tersebut dengan alur kerja Python yang digunakan di industri.
Warm-Up
Pengalaman Data Anda
Setiap orang pernah bekerja dengan data dalam berbagai bentuk: spreadsheet anggaran, pelacak nilai, aplikasi kebugaran, bahkan playlist dengan jumlah pemutaran.
Sampah Masuk, Sampah Keluar
Mengapa Pembersihan Penting
Data scientist menghabiskan 60-80% waktu mereka untuk membersihkan data. Ini bukan berlebihan: ini adalah temuan konsisten dari berbagai survei industri.
Alasannya sederhana: garbage in, garbage out. Jika data Anda memiliki kesalahan, nilai yang hilang, atau format yang tidak konsisten, setiap analisis yang dibangun di atasnya akan salah. Model sempurna yang dilatih dengan data yang kotor menghasilkan jawaban yang salah dengan percaya diri.
Masalah Data yang Umum
- Nilai yang hilang: sel kosong. Apakah data tersebut tidak dikumpulkan, atau nilainya sebenarnya nol? Ini adalah situasi berbeda yang memerlukan penanganan berbeda.
- Tipe data yang salah: kolom angka disimpan sebagai teks, tanggal dalam format yang tidak konsisten (01/02/2024: apakah itu 2 Januari atau 1 Februari?)
- Outliers: kolom gaji memiliki satu entri sebesar $1,000,000,000. Apakah itu benar, atau kesalahan ketik? Bagaimanapun, ini akan menggeser rata-rata Anda.
- Duplikat: catatan yang sama muncul dua kali karena dua sistem digabungkan secara tidak sempurna
- Pengodean kategorikal: sebuah kolom berisi 'Yes', 'yes', 'Y', 'TRUE', dan '1'. Semua ini memiliki arti yang sama, tetapi komputer Anda tidak mengetahuinya.
Di pandas (perpustakaan data Python standar), Anda menangani masalah ini dengan metode seperti dropna(), fillna(), astype(), dan drop_duplicates(). Tetapi yang sulit bukanlah kodenya: melainkan memutuskan apa yang harus dilakukan untuk setiap masalah.
Keputusan Pembersihan
Memutuskan Apa yang Harus Dilakukan
Berikut adalah skenario nyata. Anda memiliki dataset berisi 10.000 catatan pelanggan. Kolom 'age' memiliki 500 nilai yang hilang.
Pilihan Anda:
- Hapus baris: hapus semua 500 record. Sederhana, tetapi Anda kehilangan 5% data. Jika 500 pelanggan tersebut memiliki karakteristik yang sama (mungkin mereka melewatkan kolom usia karena mereka sadar privasi), menghapusnya akan memperkenalkan bias.
- Isi dengan rata-rata: ganti nilai kosong dengan rata-rata usia. Cepat, tetapi secara artifisial mengurangi varians kolom usia.
- Isi dengan median: lebih baik daripada rata-rata jika distribusi usia tidak normal (beberapa pelanggan yang sangat tua atau sangat muda menarik rata-rata).
- Gunakan flag: buat kolom baru bernama 'age_missing' (1 atau 0) dan isi kolom asli dengan median. Sekarang model Anda dapat learn apakah missingness itu sendiri adalah informasi yang berharga.
Tidak ada jawaban yang benar secara universal. Pilihan tergantung pada alasan data hilang & apa yang Anda rencanakan untuk dilakukan dengan data tersebut.
Mengajukan Pertanyaan yang Tepat
Analisis Data Eksplorasi (EDA)
Sebelum Anda membangun model apa pun, Anda perlu memahami data Anda. EDA adalah proses meringkas, memvisualisasikan, & mempertanyakan dataset untuk menemukan pola, anomali, & hubungan.
Alat Utama
- Histogram: menunjukkan distribusi dari satu variabel. Apakah berbentuk lonceng? Skewed? Bimodal (dua puncak)? Histogram pendapatan selalu right-skewed karena beberapa orang berpenghasilan jauh lebih tinggi daripada mayoritas.
- Scatter plots: menunjukkan hubungan antara dua variabel. Apakah orang yang lebih tinggi cenderung lebih berat? Apakah waktu belajar yang lebih banyak berkorelasi dengan nilai yang lebih tinggi? Pola (atau ketiadaan pola) menginformasikan apakah hubungan tersebut موجود.
- Korelasi: angka antara -1 dan +1 yang mengukur hubungan linear. +1 berarti hubungan positif sempurna, -1 berarti hubungan negatif sempurna, 0 berarti no linear relationship. Namun korelasi tidak berarti sebab-akibat: penjualan es krim dan kematian karena tenggelam are correlated karena keduanya meningkat di musim panas.
- Statistik ringkasan: mean, median, standard deviation, min, max. Dalam pandas: df.describe() memberikan semua ini dalam satu baris.
Keterampilan Nyata
Alat-alatnya mudah dipelajari. Bagian yang sulit adalah mengajukan pertanyaan yang tepat. Pertanyaan buruk: 'Apa yang dikatakan data?' Pertanyaan baik: 'Apakah pelanggan yang menghubungi dukungan dalam minggu pertama memiliki tingkat retensi yang lebih tinggi?' [BLOCK_TYPE exploration/asking_questions]
Perangkap Korelasi [BLOCK_TYPE exploration/correlation_trap]
Korelasi vs. Kausalitas
[BLOCK_TYPE exploration/correlation_trap]Ini adalah konsep paling penting dalam literasi data. Dua variabel dapat sangat berkorelasi tanpa satu menyebabkan yang lain. [BLOCK_TYPE exploration/correlation_trap]
Contoh klasik: [BLOCK_TYPE exploration/correlation_trap]
- Kota dengan lebih banyak petugas pemadam kebakaran memiliki lebih banyak kebakaran. (Kota yang lebih besar memiliki keduanya.) [BLOCK_TYPE exploration/correlation_trap]
- Siswa yang sarapan mendapat nilai lebih baik. (Mungkin keluarga yang lebih kaya lebih mungkin menyediakan sarapan DAN dukungan akademik.)
- Negara yang mengonsumsi lebih banyak cokelat memenangkan lebih banyak Hadiah Nobel. (Keduanya berkorelasi dengan kekayaan nasional.)
Faktor tersembunyi ini disebut variabel perancu: variabel ketiga yang memengaruhi kedua variabel yang Anda amati.
Membuat Variabel yang Berguna
Apa Itu Feature Engineering?
Sebuah feature adalah variabel input yang digunakan model untuk membuat prediksi. Feature engineering adalah seni menciptakan fitur baru dari data mentah untuk membantu model mempelajari pola yang tidak dapat dilihat model sebelumnya.
Data mentah jarang datang dalam bentuk yang dibutuhkan model. Pertimbangkan dataset dengan kolom 'tanggal lahir'. Model tidak dapat melakukan banyak hal dengan tanggal mentah. Tapi jika Anda membuat fitur 'usia' dari itu, tiba-tiba model dapat mempelajari pola berbasis usia.
Teknik Umum
- Normalisasi: mengubah skala angka ke rentang yang sama (0 hingga 1, atau mean=0 dan standard deviation=1). Tanpa ini, fitur yang diukur dalam ribuan (gaji) akan mendominasi fitur yang diukur dalam satuan tunggal (tahun pengalaman).
- One-hot encoding: mengubah variabel kategorikal menjadi kolom biner. Kolom 'color' dengan nilai [red, blue, green] menjadi tiga kolom: 'color_red', 'color_blue', 'color_green', masing-masing dengan nilai 0 atau 1.
- Binning: mengubah variabel kontinu menjadi kategori. Usia 0-17 menjadi 'minor', 18-64 menjadi 'adult', 65+ menjadi 'senior'. Ini membantu ketika hubungan tidak linear.
- Fitur interaksi: mengalikan dua fitur bersama. 'Luas bangunan dikalikan dengan jumlah kamar mandi' mungkin lebih baik memprediksi harga rumah daripada keduanya sendiri.
- Pengetahuan domain: teknik yang paling kuat. Seorang dokter yang membuat fitur untuk model medis tahu nilai lab mana yang penting. Seorang pemasar tahu bahwa 'hari sejak pembelian terakhir' lebih berguna daripada 'tanggal pembelian'. Tidak ada algoritma yang dapat menggantikan ini.
Praktik Fitur
Menerapkan Rekayasa Fitur
Bayangkan Anda sedang membangun model untuk memprediksi pelanggan mana yang akan membatalkan langganan streaming mereka bulan depan. Data mentah Anda mencakup:
- Tanggal pembuatan akun
- Tanggal login terakhir
- Jumlah acara yang ditonton bulan lalu
- Jumlah pembayaran bulanan
- Tiket dukungan pelanggan yang diajukan
- Negara
Pembagian Train/Test
Mengapa Anda Harus Membagi Data Anda
Aturan paling penting dalam pemodelan: jangan pernah mengevaluasi model pada data yang sama dengan data yang digunakan untuk melatihnya.
Jika Anda melakukannya, model dapat menghafal jawaban. Model akan mendapatkan skor sempurna pada data latih tetapi gagal pada data baru yang belum pernah dilihat. Ini disebut overfitting: model mempelajari noise dalam dataset spesifik Anda daripada pola nyata.
Praktik standar adalah membagi data Anda:
- Training set (biasanya 70-80%): model belajar dari data ini
- Test set (biasanya 20-30%): disimpan, hanya digunakan untuk mengevaluasi model akhir
Dalam scikit-learn: X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
Algoritma Umum
- Regresi linear: menggambar garis lurus terbaik yang melewati data. Sederhana, mudah diinterpretasikan, bekerja ketika hubungan data kira-kira linear. Memprediksi suatu angka (harga, suhu, skor).
- Pohon keputusan: flowchart pertanyaan ya/tidak. Mudah dipahami dan dijelaskan. Rentan terhadap overfitting kecuali dipangkas atau kedalamannya dibatasi.
- Random forest: banyak pohon keputusan yang saling memilih. Lebih akurat daripada satu pohon, less prone to overfitting, tetapi lebih sulit untuk dijelaskan.
Overfitting vs. Underfitting
- Overfitting: model terlalu kompleks. Model menghafal data pelatihan, including noise. Akurasi tinggi pada data pelatihan, akurasi rendah pada data uji.
- Underfitting: model terlalu sederhana. Model tidak dapat menangkap pola nyata. Akurasi rendah pada kedua data pelatihan dan data uji.
Tujuan adalah sweet spot di antara keduanya.
Metrik Evaluasi
Bagaimana Anda Tahu Jika Model Anda Baik?
Akurasi saja bisa menyesatkan. Jika 95% email bukan spam, model yang selalu mengatakan 'bukan spam' memiliki akurasi 95%: tetapi sama sekali tidak berguna.
Metrik utama:
- Akurasi: persentase prediksi yang benar. Berguna ketika kelas seimbang.
- Presisi: dari semua hal yang model tandai sebagai positif, berapa banyak yang benar-benar positif? Presisi tinggi berarti sedikit alarm palsu.
- Recall: dari semua positif aktual, berapa banyak yang berhasil ditangkap oleh model? Recall tinggi berarti sedikit kasus yang terlewat.
- F1 score: rata-rata harmonik dari presisi dan recall. Berguna ketika Anda perlu menyeimbangkan keduanya.
- RMSE (Root Mean Squared Error): untuk regresi (memprediksi angka). Seberapa jauh prediksi meleset rata-rata?
Metrik mana yang paling penting bergantung pada masalahnya. Untuk deteksi kanker, recall lebih penting: Anda tidak ingin melewatkan satu kasus pun. Untuk penyaringan spam, presisi lebih penting: Anda tidak ingin menghapus email asli.
Data Analyst vs. Data Scientist vs. ML Engineer
Tiga Peran yang Berbeda
Bidang data memiliki tiga jalur karir utama, & mereka memerlukan keterampilan yang berbeda.
Data Analyst
- Fokus: menjawab pertanyaan bisnis dengan data yang sudah ada
- Tools: SQL, Excel, Tableau, dasar Python atau R
- Hari-hari kerja: dashboard, laporan, analisis A/B test, presentasi kepada stakeholder
- Jalur masuk: sering kali paling mudah diakses. Banyak analyst mulai tanpa gelar CS.
Data Scientist
- Fokus: membangun model prediktif & menemukan pola dalam data kompleks
- Tools: Python (pandas, scikit-learn, matplotlib), statistik, SQL, Jupyter notebooks
- Hari-hari: EDA, feature engineering, pembuatan model, eksperimen
- Jalur masuk: biasanya membutuhkan latar belakang statistik atau kuantitatif. Bootcamp & belajar mandiri adalah pilihan yang layak.
Machine Learning Engineer
- Fokus: mendeploy & menskalakan model dalam sistem produksi
- Tools: Python, TensorFlow/PyTorch, Docker, platform cloud (AWS/GCP), API
- Hari-hari: optimasi model, infrastruktur pipeline, monitoring model produksi
- Jalur masuk: biasanya membutuhkan keterampilan rekayasa perangkat lunak yang kuat plus pengetahuan ML.
Membangun Portofolio
Manajer perekrutan lebih peduli pada apa yang dapat Anda lakukan, bukan hanya apa yang Anda pelajari. Portofolio berisi 3-5 proyek solid di GitHub lebih penting daripada sertifikasi. Proyek yang baik menggunakan dataset real (bukan dataset dummy), memiliki dokumentasi yang jelas,并显示完整管道:从混乱的数据到可操作的见解。
Langkah Selanjutnya Anda
Ke Mana Selanjutnya
Alat-alat perdagangan ini gratis dan mudah diakses:
- pandas: pustaka Python standar untuk manajemen data
- matplotlib / seaborn: pustaka visualisasi
- scikit-learn: alat utama untuk pembelajaran mesin klasik
- Jupyter notebooks: lingkungan pemrograman interaktif di mana Anda dapat menggabungkan kode, hasil, dan catatan
- Kaggle: dataset gratis, kompetisi, dan komunitas praktisi
Mulai dengan satu dataset nyata yang menarik perhatian Anda. Unduh, bersihkan, eksplorasi, dan coba jawab satu pertanyaan. Proyek tunggal ini akan mengajarkan Anda lebih banyak daripada any course.