Data Mining

Pendahuluan

Ada baiknya untuk mengambil mata kuliah Pengenalan Pola sebelum mengambil kuliah ini. Karena kuliah ini akan menggunakan Python sebagai bahasa pengantarnya, silakan cek tutorial singkat untuk Python dan Numpy. Anda juga akan menggunakan Jupyter notebook ke depannya. Silakan lihat petunjuk instalasinya di sini.

Referensi

Kuliah ini banyak mengadaptasi materi dari Harvard CS109: Data Science.

Anda dapat membuat clone dari repositori mata kuliah ini di sini.

Konsep Data Mining

Salindia minggu ke-1: Pendahuluan

Apa yang menjadi hubungan antara data mining dengan big data? Apa saja yang menjadi bagian dari data mining? Pertanyaan seperti ini mungkin sering muncul dalam kehidupan kita sehari-hari. Kuliah ini membahas betapa dekatnya data dengan kehidupan kita sehari-hari dan bagaimana proses pencarian pola dalam data tersebut dapat menjadi hal yang sangat menyenangkan untuk dilakukan.

Salindia minggu ke-2: Tipe dan Jenis Data

Apakah ada hubungannya antara kebiasaan menambahkan kecap dan kacang pada preferensi untuk mengaduk bubur ayam? Lalu, bagaimana gambar dapat direpresentasikan sebagai data yang dapat diolah oleh algoritma machine learning? Materi di minggu ini membahas tipe dan jenis data serta bagaimana merepresentasikannya. Kasus-kasus seperti imbalanced dataset juga akan menjadi poin penting dari kuliah ini.

Eksplorasi Data

Salindia minggu ke-3: Jarak Antarobjek

Praktikum 1: Eksplorasi dan Visualisasi

Visualisasikan data Anda! Visualisasi data dapat membantu dalam memahami tren dan pola-pola menarik dari data Anda. Anda mungkin perlu melihat salindia ini untuk membantu merancang tabel dan grafik dengan lebih baik. Materi kali ini juga dilengkapi dengan praktikum yang diharapkan dapat memberikan gambaran tentang penggunaan konsep-konsep yang disampaikan di minggu ini.

Rumus Minkowski distance saat r (atau dalam rumus di bawah ini p) mendekati tak hingga adalah selisih antara dua titik terjauh dalam bidang cartesian. Perhitungan jarak ini juga dikenal dengan nama Chebyshev distance. Dengan kata lain, rumusnya menjadi:

Chebyshev distance

Intuisi yang lebih baik untuk Mahalanobis distance bisa dibaca di sini. Penjelasan tersebut memberikan gambaran bahwa Mahalanobis distance bekerja seperti Euclidean distance, tetapi sumbu-sumbunya disusun berdasarkan sebaran dari datanya. Kita akan mencari arah sumbu baru beserta panjangnya. Dalam kuliah reduksi dimensi nanti, kita akan melihat hubungan Mahalanobis distance dengan Principal Component Analysis.

Salindia minggu ke-4: Scraping

Terkadang, kita perlu untuk mengambil sendiri data dari laman web. Beberapa web yang tidak menyediakan API mengharuskan kita untuk membuka sendiri laman tersebut lalu mengekstraksi informasinya satu per satu. Dengan melakukan scraping, kita bisa mengotomasi proses tersebut. Python mempunyai pustaka untuk melakukan hal tersebut dengan cukup mudah: Requests dan Beautiful Soup. Namun, ingat bahwa scraping sejatinya sering berada di posisi abu-abu - antara boleh atau tidak. Jadi, be responsible!

Tugas 1

Deskripsi Tugas 1

Dalam tugas ini, Anda diminta untuk melakukan scraping dan membuat tabel dari hasilnya. Tugas ini dibuat dalam satu file Jupyter notebook dan diberi nama tugas1_NIM.ipynb. Catatan: Tabel yang dimaksud dalam soal adalah pandas.DataFrame.

Visualisasi Data dan Storytelling

Salindia minggu ke-5: Visualisasi

Praktikum 1: Eksplorasi dan Visualisasi

Visualisasikan data Anda! Visualisasi data dapat membantu dalam memahami tren dan pola-pola menarik dari data Anda. Anda mungkin perlu melihat salindia ini untuk membantu merancang tabel dan grafik dengan lebih baik. Materi kali ini juga dilengkapi dengan praktikum yang diharapkan dapat memberikan gambaran tentang penggunaan konsep-konsep yang disampaikan di minggu ini.

Salindia minggu ke-6: Storytelling with Data

Meski analisis yang Anda lakukan sudah sangat mendalam, audiens bisa jadi menganggap itu tidak penting kalau Anda tidak bisa menyusun ceritanya dengan baik. Pertemuan minggu ini membahas tentang poin-poin yang perlu diperhatikan dalam bercerita dengan data. Akan ada banyak video yang dapat disaksikan dalam salindia minggu ini.

Tugas 2

Notebook Tugas 2

Dataset Tugas 2

Dalam tugas ini, Anda diminta untuk melakukan eksplorasi, analisis, dan visualisasi terhadap dataset spam dari Instagram. Tugas ini didasarkan pada tugas klasifikasi spam yang dilakukan dalam makalah oleh Septiandri dan Wibisono (2016).

Model Linear

Salindia minggu ke-7: Regresi Linear

Praktikum 3: Model Linear

Materi minggu ini berisikan salah satu tugas dalam machine learning: regresi. Anda akan dikenalkan dengan regresi linear sederhana dan beberapa pengembangannya. Berbeda dengan materi di Pengenalan Pola, regresi kali ini akan membahas diagnosis dari model dan beberapa masalah yang mungkin terjadi saat melakukan pemodelan regresi linear.

Tugas 3

Notebook Tugas 3

Dalam tugas ini, Anda diminta untuk melakukan inferensi dengan regresi linear terhadap data diabetes. Terdapat beberapa pertanyaan konseptual juga yang harus Anda jawab dalam tugas ini untuk menguji pemahaman Anda.

Klasifikasi

Salindia minggu ke-8: Decision Trees

Salindia minggu ke-9: Ensemble Learning

Pohon keputusan merupakan algoritma klasifikasi yang memudahkan pengguna untuk memahami jalannya proses klasifikasi suatu data. Bagi end-user, tidak perlu pemahaman statistika yang mendalam untuk tahu apa yang terjadi. Di sisi lain, algoritma ini bisa jadi cukup efektif. Terbukti, pengembangan algoritma ini, yaitu XGBoost dan Random Forest, sering dipakai di berbagai kompetisi dan makalah data mining. Materi minggu ini membahas tentang bagaimana kita bisa membentuk pohon keputusan untuk melakukan klasifikasi, termasuk bagaimana kita dapat mengevaluasi hasil klasifikasi tersebut.

Metode Bayesian

Salindia minggu ke-10: Statistika Bayesian

Praktikum 4: Statistika Bayesian

Statistika yang diajarkan di perkuliahan biasanya menggunakan pendekatan frequentist. Namun, interpretasi dari statistika frequentist tidak selalu intuitif dan membutuhkan berbagai uji hipotesis. Statistika Bayesian memberikan pendekatan berbeda untuk mengkuantifikasi ketidakyakinan (uncertainty) kita. Materi pekan ini akan mengenalkan konsep dasar statistika Bayesian dan penggunaan probabilistic programming untuk perhitungannya.

Desain Eksperimen

Video minggu ke-11: Experimental Design

Salindia minggu ke-11: Experimental Design

Mulai minggu ini, kelas ini memberlakukan flipped classroom. Artinya, Anda diminta untuk menyimak video yang diberikan di situs ini sebelum datang ke kelas. Di dalam kelas, tidak akan ada materi baru yang dibahas, waktunya hanya akan dipakai untuk mendiskusikan hal-hal yang masih kurang jelas atau pertanyaan lain di luar itu. Minggu ini, Anda diminta untuk belajar tentang desain eksperimen.

Tips

Bagi yang ingin belajar lebih lanjut, silakan enroll ke kuliah Quantitative Methods di Coursera dan simak kuliah ketiga tentang Research Designs. Para pembaca buku bisa melihat Chapter 4 dari buku Bit by Bit oleh Matthew Salganik.

Clustering

Video minggu ke-12: Hierarchical Clustering

Salindia minggu ke-12: Hierarchical Clustering

Materi minggu ini merupakan pengembangan dari algoritma k-Means. Anda juga akan melihat bahwa alih-alih menentukan nilai K dari awal, kita bisa membuat level granularity dari klaster yang dihasilkan dengan membuat hierarki.

Tugas 4

Notebook Tugas 4

Dalam tugas ini, Anda diminta untuk melakukan inferensi Bayesian pada dua kasus. Gunakan pustaka PyMC3 untuk melakukan pemodelan. Anda juga dapat melihat contoh yang ada di dokumentasi tersebut sebagai referensi.

Sistem Rekomendasi

Salindia minggu ke-13: Sistem Rekomendasi

Materi ini dapat dianggap sebagai salah satu implementasi dari semua materi yang telah diberikan sebelumnya. Kita akan mengulas kembali konsep jarak antarobjek, klasifikasi, clustering, dan reduksi dimensi dalam membuat sistem rekomendasi. Materi ini sekaligus jadi materi terakhir dalam kuliah ini. Silakan baca lebih lanjut di buku Mining of Massive Datasets pada Chapter 9 untuk tahu detailnya.