Kursus Matematika untuk AI · Pelajaran 4 dari 180
Notasi Himpunan untuk Dataset AI: Keanggotaan, Pembagian, dan Kebocoran
Pelajari himpunan, keanggotaan, gabungan, irisan, dan partisi dengan menemukan serta memperbaiki tumpang tindih dalam pembagian pelatihan, validasi, dan pengujian AI.
Misalkan sebuah pengklasifikasi gambar mencetak 96% pada data validasinya. Kemudian seseorang menyadari bahwa img-04 digunakan untuk pelatihan dan validasi. Skor itu mungkin tampak presisi, tetapi salah satu contohnya tidak lagi benar-benar belum pernah dilihat.
Himpunan memberi kita cara ringkas untuk menyatakan dan menguji kegagalan tersebut. Himpunan mencatat objek mana yang termasuk dalam sebuah koleksi. Dari sana, irisan menyingkap tumpang tindih, gabungan memeriksa cakupan, dan partisi menjelaskan penempatan bersih setiap contoh ke tepat satu pembagian dataset.
Di akhir pelajaran ini, Anda akan mampu membaca notasi keanggotaan dan pembentuk-himpunan, menghitung operasi himpunan umum, dan mengimplementasikan audit awal untuk ID pelatihan, validasi, dan pengujian. Ini melanjutkan sisi data dari gambaran variabel, model, dan pembelajaran yang diperkenalkan di Pelajaran 1.
Keanggotaan mengubah koleksi menjadi klaim ya-atau-tidak
Himpunan adalah koleksi yang keanggotaannya tidak ambigu. Jika adalah himpunan semua ID contoh dalam dataset kecil, kita dapat menulis
Kurung kurawal berarti “himpunan yang berisi elemen-elemen ini”. Pernyataan
dibaca “img-02 adalah elemen ”. Simbol menyangkal klaim itu, sehingga .
Jumlah elemen berbeda dalam himpunan berhingga disebut kardinalitas, ditulis . Pada contoh di atas, .
Notasi pembentuk-himpunan menjelaskan aturan, bukan daftar panjang
Mencantumkan setiap elemen menjadi tidak praktis untuk dataset nyata. Notasi pembentuk-himpunan mendefinisikan keanggotaan melalui kondisi:
Bacalah dari kiri ke kanan: “ adalah himpunan contoh di sedemikian sehingga label adalah cat.” Titik dua berarti “sedemikian sehingga”. Garis vertikal juga umum digunakan pada posisi yang sama.
Kondisi setelah titik dua bertindak seperti filter. Untuk
jika img-01 dan img-04 memiliki label cat, maka
Notasi ini memisahkan semesta yang dipertimbangkan—di sini —dari aturan keanggotaan. Tanpa , “semua gambar kucing” dapat berarti setiap gambar kucing yang ada, bukan hanya contoh yang tersedia untuk proyek ini.
Tiga operasi mengaudit pembagian dataset
Misalkan , , dan menyatakan himpunan ID pelatihan, validasi, dan pengujian. Tiga operasi menjawab pertanyaan rekayasa yang berbeda.
| Operasi | Notasi | Pertanyaan dataset |
|---|---|---|
| Irisan | ID mana yang muncul di kedua himpunan? | |
| Gabungan | ID berbeda mana yang muncul di setidaknya satu himpunan? | |
| Selisih | ID pelatihan mana yang tidak ada dalam validasi? |
Himpunan kosong, ditulis , tidak berisi elemen. Karena itu, menyatakan bahwa pelatihan dan validasi tidak berbagi ID. Himpunan seperti itu disebut saling lepas.
Pembagian yang bersih adalah partisi
Misalkan dataset lengkap adalah . Set pelatihan, validasi, dan pengujian membentuk partisi dari jika dua syarat terpenuhi.
Pertama, gabungannya mencakup seluruh dataset:
Kedua, setiap pasangan saling lepas:
Cakupan mencegah contoh menghilang. Saling lepas berpasangan mencegah contoh menempati dua pembagian. Bersama-sama, keduanya menyatakan bahwa setiap elemen termasuk tepat dalam satu bagian.
| Contoh | Pelatihan | Validasi | Pengujian |
|---|---|---|---|
img-01kucing tabby | |||
img-02anjing golden retriever | |||
img-03bus kota | |||
img-04sepeda merah | |||
img-05burung gereja | |||
img-06perahu layar | |||
img-07pohon ek |
Ini belum merupakan partisi Perbaiki ID yang tumpang tindih atau belum tercakup.
- Dtrain
- {img-01, img-02, img-03, img-04}
- Dvalidation
- {img-04, img-05}
- Dtest
- {img-06, img-07}
Tumpang tindih: {img-04}
Belum tercakup: ∅
Keadaan awal mencakup ketujuh ID, tetapi gagal dalam uji partisi karena img-04 termasuk dalam dan . Hapus salah satu dari dua keanggotaan itu untuk menghasilkan partisi valid. Lalu coba biarkan satu ID tidak dicentang di mana pun: tumpang tindih hilang, tetapi syarat cakupan gagal.
Set Python mencerminkan audit ini
Dokumentasi resmi Python mendefinisikan tipe set sebagai koleksi tak berurutan berisi objek hashable yang berbeda. Tipe ini mendukung operasi gabungan, irisan, selisih, keanggotaan, dan saling lepas yang sama seperti di atas.
all_ids = {f"img-{i:02d}" for i in range(1, 8)}
train_ids = {"img-01", "img-02", "img-03", "img-04"}
validation_ids = {"img-04", "img-05"}
test_ids = {"img-06", "img-07"}
overlap = (
(train_ids & validation_ids)
| (train_ids & test_ids)
| (validation_ids & test_ids)
)
covered = train_ids | validation_ids | test_ids
missing = all_ids - covered
is_partition = not overlap and not missing and covered == all_ids
print(sorted(overlap))
print(sorted(missing))
print(is_partition)
Output yang telah diverifikasi adalah:
['img-04']
[]
False
Operator & menghitung irisan, | menghitung gabungan, dan - menghitung selisih. not overlap hanya benar ketika himpunan tumpang tindih kosong.
Untuk pemeriksaan yang dapat digunakan kembali, nyatakan kondisinya secara eksplisit:
def is_partition(universe, *parts):
covered = set().union(*parts)
total_memberships = sum(len(part) for part in parts)
no_overlap = total_memberships == len(covered)
return no_overlap and covered == universe
Jika satu ID muncul di dua bagian, jumlah ukuran terpisah melebihi ukuran gabungannya. Jika satu ID hilang, gabungannya berbeda dari semesta.
ID yang saling lepas diperlukan, tetapi belum cukup untuk keamanan dari kebocoran
Tumpang tindih di awal adalah bentuk kebocoran data: informasi dari luar batas pelatihan memengaruhi pembangunan atau evaluasi model. Panduan kebocoran Scikit-learn menjelaskan bahwa kebocoran dapat membuat evaluasi tampak terlalu optimistis dan merekomendasikan pemisahan data sebelum menyesuaikan langkah prapemrosesan.
Irisan ID kosong hanya menangkap penggunaan ulang pengenal yang persis sama. Itu tidak membuktikan bahwa set evaluasi benar-benar independen. Dua ID berbeda dapat menunjuk salinan foto yang diubah ukurannya. Frame dari satu video dapat dibagi antara pelatihan dan validasi. Rekaman pasien, pelanggan, atau periode waktu mendatang yang sama dapat membawa informasi bersama meskipun ID barisnya berbeda.
Ada batas lain antara matematika dan implementasi: set Python tidak mempertahankan posisi urutan dan membuang nilai duplikat. Simpan daftar sampel berurutan untuk pelatihan. Turunkan himpunan ID stabil untuk pemeriksaan keanggotaan.
Pelajaran 5 akan menambahkan indeks dan subskrip, sehingga kita dapat membedakan identitas contoh dari posisinya dalam batch atau tensor. Pembedaan itu lebih mudah dinyatakan setelah dataset memiliki batas keanggotaan yang jelas.
Uji pemahaman
Pertanyaan 1
Misalkan D = {a, b, c}. Tentukan apakah b ∈ D dan apakah d ∉ D.
Tampilkan solusi langkah demi langkah
Periksa elemen yang tercantum dalam .
- muncul di dalam kurung kurawal, jadi benar.
- tidak muncul, jadi benar.
Keanggotaan hanya menanyakan apakah elemen termasuk dalam himpunan. Posisinya dalam daftar tertulis tidak relevan.
Pertanyaan 2
Untuk D = {1, 2, 3, 4, 5}, evaluasikan E = {x ∈ D : x genap}.
Tampilkan solusi langkah demi langkah
Uji setiap elemen terhadap kondisi “ genap”:
Pertahankan hanya elemen yang memenuhi aturan:
Kondisi tersebut memfilter semesta yang dinyatakan; kondisi itu tidak menambahkan bilangan genap lain seperti 6.
Pertanyaan 3
Misalkan T = {a, b, c, d} dan V = {d, e}. Temukan T ∩ V, T ∪ V, dan |T ∪ V|.
Tampilkan solusi langkah demi langkah
Irisan berisi elemen yang ada di kedua himpunan. Hanya yang memenuhi:
Gabungan berisi setiap elemen berbeda yang ada di salah satu himpunan:
Karena itu . Hasil yang sama mengikuti dari persamaan berikut:
Pengurangan menghapus hitungan kedua untuk .
Pertanyaan 4
Dataset D = {1, 2, 3, 4} dibagi menjadi T = {1, 2}, V = {3}, dan E = {4}. Buktikan bahwa ketiga himpunan itu membentuk partisi.
Tampilkan solusi langkah demi langkah
Periksa cakupan terlebih dahulu:
Sekarang periksa setiap pasangan:
Gabungan mencakup setiap elemen , dan tidak ada elemen yang muncul dalam dua bagian. Kedua syarat partisi terpenuhi.
Pertanyaan 5
Audit ID pelatihan/validasi melaporkan T ∩ V = ∅. Mengapa itu tidak membuktikan tidak adanya semua kebocoran data?
Tampilkan solusi langkah demi langkah
Persamaan tersebut hanya membuktikan bahwa tidak ada elemen persis yang diaudit berada di kedua himpunan. Jika elemennya adalah ID baris, dua baris berbeda masih dapat berisi salinan gambar yang sama, frame dari video yang sama, atau catatan orang yang sama.
Batas penalarannya adalah:
Audit unit pengelompokan yang sesuai dengan risiko kebocoran—misalnya ID pasien atau ID video sumber—dan tambahkan pemeriksaan kemiripan ketika ID berbeda dapat menyimpan konten yang hampir duplikat.
Pertanyaan 6
Debug pemeriksaan partisi ini: return not (train & validation) and not (train & test). Kondisi apa yang hilang?
Tampilkan solusi langkah demi langkah
Kode tersebut memeriksa dua irisan, tetapi mengabaikan pasangan validasi/pengujian serta cakupan semesta.
Pemeriksaan tiga arah yang lengkap memerlukan:
no_overlap = not (
(train & validation)
or (train & test)
or (validation & test)
)
covered = (train | validation | test) == all_ids
return no_overlap and coveredKondisi pertama menjamin ketiga pasangan saling lepas. Kondisi kedua menjamin tidak ada ID dataset yang tidak ditugaskan. Partisi membutuhkan keduanya.