Method yang sudah dikuasai akan cepat tumpul tanpa bahan untuk dipraktikkan, dan bahan itu harus aman: data latihan yang baik tidak mengandung informasi pribadi, ukurannya ringan, dan boleh dibagikan bebas. Chapter ini menyusun kriteria dataset latihan yang sehat, memetakan dataset klasik yang biasa dipakai komunitas, dan menutup dengan satu dataset bawaan yang bisa Anda muat sekarang juga — tanpa unduhan apa pun. Contoh sepanjang course ini memang sengaja memakai data buatan seperti penjualan toko; dataset terbuka adalah langkah berikutnya untuk berlatih dengan data yang tidak kita rancang sendiri.
Kriteria Dataset Latihan yang Aman #
Sebelum mengunduh data untuk latihan, saring dengan lima kriteria berikut.
- Legalitas jelas: dataset terbuka dengan lisensi yang mengizinkan pemakaian dan pembagian ulang, seperti data pemerintah di portal Open Data Indonesia atau repositori akademik.
- Tanpa data pribadi: tidak ada nama, alamat, email, atau nomor identitas asli; jika ada, lakukan anonimisasi dulu.
- Ukuran wajar: untuk latihan, file dari puluhan kilobyte hingga puluhan megabyte sudah cukup; dataset raksasa justru memperlambat siklus belajar.
- Format umum: CSV, JSON, Parquet, atau Excel — format yang method IO pandas sudah biasa kita pakai.
- Punya kamus data: penjelasan arti tiap kolom; tanpa kamus data, analisis menjadi menebak-nebak.
Kriteria kelima sering diabaikan padahal paling menentukan: dataset yang baik menjelaskan satuan dan makna kolomnya, sehingga pertanyaan analisis bisa dirumuskan dengan mantap.
Dataset Klasik untuk Memulai #
Beberapa dataset sudah menjadi “dialek umum” komunitas data — ketika Anda menuliskan hasil analisisnya, pembaca lain langsung memahami konteksnya.
| Dataset | Isi | Latihan yang cocok | Cara akses |
|---|---|---|---|
| Iris | 150 baris ukuran tiga spesies bunga | Klasifikasi, groupby, statistik deskriptif | Bawaan scikit-learn, offline |
| Digits | Citra 8x8 piksel angka tulisan tangan | Bekerja dengan data matriks | Bawaan scikit-learn, offline |
| Wine | Kimia tiga varian anggur | Statistik per kelompok | Bawaan scikit-learn, offline |
| Titanic | Data penumpang dan keselamatan mereka | Missing data, feature sederhana | Unduhan atau seaborn.load_dataset, butuh internet |
| Tips | Tagihan restoran dan tip | Distribusi, korelasi, plotting | Unduhan atau seaborn.load_dataset, butuh internet |
Perhatikan kolom akses: fungsi seaborn.load_dataset mengunduh data dari repositori seaborn saat pertama dipanggil, sehingga membutuhkan koneksi internet dan tidak cocok untuk skrip yang harus berjalan offline. Dataset bawaan scikit-learn justru terpasang bersama library-nya — itulah alasan contoh pada chapter ini memilih Iris.
Mencoba Dataset Bawaan scikit-learn #
Fungsi load_iris mengembalikan data Iris lengkap dengan labelnya, dan parameter as_frame=True meminta hasilnya langsung dalam bentuk DataFrame pandas. Skrip berikut memuat dataset tersebut, menerjemahkan label angka menjadi nama spesies, lalu meringkasnya.
from sklearn.datasets import load_iris
import pandas as pd
bunga = load_iris(as_frame=True)
df = bunga.frame
df["spesies"] = df["target"].map(dict(enumerate(bunga.target_names)))
df = df.drop(columns="target")
print("Jumlah baris:", len(df))
print()
print(df.head(3).to_string(index=False))
print()
print(df["spesies"].value_counts().sort_index().to_string())Output yang Dihasilkan:
Jumlah baris: 150
sepal length (cm) sepal width (cm) petal length (cm) petal width (cm) spesies
5.1 3.5 1.4 0.2 setosa
4.9 3.0 1.4 0.2 setosa
4.7 3.2 1.3 0.2 setosa
spesies
setosa 50
versicolor 50
virginica 50Mari kita telaah mekanismenya:
- Baris 6 (
load_iris(as_frame=True)): dataset dimuat dari paket scikit-learn yang sudah terpasang; tidak ada permintaan jaringan sama sekali, sehingga skrip aman dijalankan di lingkungan terisolasi. - Baris 9 (
df["target"].map(...)): kolomtargetberisi angka 0, 1, 2; methodmapmenerjemahkannya menjadi nama spesies menggunakan dictionary hasilenumerateatasbunga.target_names. - Baris 10-13: kolom
targetangka dihapus agar tabel hanya berisi pengukuran dan nama spesies, laluvalue_counts().sort_index()menghitung distribusi spesies secara alfabetis.
Output mengonfirmasi struktur dataset: 150 baris dengan 50 baris per spesies — pembagian seimbang yang menjadikan Iris ramah untuk latihan agregasi maupun klasifikasi. Empat kolom pengukurannya bernilai kontinu, sehingga latihan groupby, describe, dan visualisasi langsung bisa dilakukan tanpa pembersihan.
Membangun Kebiasaan Berlatih #
Rangkaiannya sederhana: mulai dari data buatan ber-seed seperti contoh course ini, lanjut ke dataset klasik di atas, lalu naik ke data publik nyata dari portal terbuka. Setiap dataset baru, jalankan ritual yang sama — read_csv dengan usecols dan dtype yang tepat (pola pembacaan file dibahas pada IO tools
dan pandas.read_csv
), periksa info() dan head(), rumuskan tiga pertanyaan analisis, lalu jawab dengan groupby atau visualisasi. Ketika tiga pertanyaan itu terjawab mulus, dataset berikutnya menanti.
Dataset sudah tersedia, tutorial sudah terkumpul; sumber belajar terakhir yang sering dilupakan adalah kode orang lain. Chapter berikutnya membawa Anda ke gudang contoh kode resmi pandas.