Malam Pertama: Deadline, Kopi, dan Dataset 2 Juta Baris
Itu malam Rabu, jam menunjuk 01:42. Di meja kantor kecil saya ada dua benda yang selalu menemani: laptop dengan layar yang mulai berkeringat karena terlalu banyak tab terbuka, dan cangkir kopi yang tinggal setengah. Tanggung jawabnya jelas—presentasi besok pagi untuk tim produk tentang tren penggunaan kartu debit dan kredit selama 12 bulan terakhir. Datasetnya tebal: sekitar 2 juta transaksi, atribut standar (timestamp, amount, merchant_category_code, card_type, channel, city), dan satu tugas ambisius—temukan pola yang bisa diperagakan di depan stakeholder tanpa terlihat tebak-tebakan.
Saya ingat dialog internal itu: “Fokus. Jangan terbuai model fancy. Ingat—produk butuh insight, bukan angka impresif.” Itu menjadi mantra saya. Saya memulai dengan eksplorasi cepat; melihat distribusi nominal transaksi, memetakan frekuensi transaksi per hari, membagi antara debit dan kredit, dan menandai hari gajian yang potensial. Seringkali, keputusan kecil seperti bucket waktu (jam 06-10: pagi, 12-14: makan siang, 18-22: malam) memberi insight lebih besar daripada hiperparameter yang di-tweak berjam-jam.
Mengurai Data Kartu: Fitur yang Bicara Lebih Keras
Proses pembersihan memakan waktu—menghapus duplikasi, mengisi missing pada merchant_category_code, dan meng-harmonisasi label kota. Saya belajar lagi: kualitas fitur mendahului model. Saya membuat fitur baru yang sederhana namun kuat: proporsi transaksi contactless per pengguna, rasio transaksi online vs offline, jarak rata-rata transaksi dari lokasi rumah, dan flag promosi. Lalu saya melakukan segmentasi pelanggan dengan KMeans (k=4) berdasarkan frekuensi, nilai rata-rata transaksi, dan proporsi offline/online. Hasilnya? Sebuah cluster “weekend-diners” yang sangat jelas: frekuensi naik 25% saat akhir pekan, tapi rata-rata nilai transaksi lebih tinggi pada kartu kredit.
Sebuah momen lucu: saat saya meng-plot heatmap jam-transaksi dan melihat lonjakan pukul 21:00 pada Sabtu, saya berbisik, “Tentu saja—itu adalah malam makanan dan hiburan.” Detail kecil seperti ini membantu saya menjelaskan tren ke tim produk tanpa jargon. Saya menyimpan visual interaktif dan ringkasan di cardtrendanalysis, supaya stakeholder bisa mengeksplor sendiri setelah presentasi.
Model, Validasi Waktu, dan Kesalahan yang Berharganya
Karena tujuannya bukan hanya prediksi tapi juga memahami tren, saya memilih pendekatan hybrid: model pembelajaran terawasi (LightGBM untuk prediksi segmen masa depan dan XGBoost untuk deteksi perubahan cepat) ditambah dekomposisi time-series untuk memisahkan musiman, tren jangka panjang, dan noise. Kunci teknis: validasi berbasis waktu. Saya menolak cross-validation acak—itu memberi harapan palsu. Sebagai gantinya, rolling-window CV memastikan model diuji pada skenario yang realistis ketika data terbaru mungkin berbeda dari masa lalu.
Saya juga menghadapi imbalanced classes saat mencoba memprediksi lonjakan kategori tertentu (mis. travel). Solusinya praktis: oversampling kelas minor saat training plus menggunakan precision-recall sebagai metrik utama. Ada momen frustrasi ketika model overfit pada promosi musiman—lalu saya tersadar ada data leakage: flag promosi yang muncul di fitur saat seharusnya hanya diketahui nanti. Kesalahan itu mahal, tapi mengajarkan satu hal: selalu cek kapan fitur itu ‘diketahui’.
Hasil, Refleksi, dan Langkah Selanjutnya
Pagi itu, di depan tim produk, saya menyajikan tiga insight utama yang sederhana namun actionable. Pertama, ada pergeseran jelas ke contactless pada penggunaan debit—naik ~18% setelah kampanye cashback, paling signifikan di kota-kota besar. Kedua, pola hari gajian (biasanya tanggal 25-27) mendorong lonjakan transaksi kredit untuk e-commerce, tapi debit tetap dominan untuk kebutuhan sehari-hari. Ketiga, cluster pengguna “weekend-diners” memberi peluang produk: penawaran cashback spesifik akhir pekan bisa meningkatkan retensi.
Reaksi di ruangan itu campuran—kagum, kritis, dan proaktif. Seorang product manager bertanya, “Bagaimana kita memastikan insight ini bertahan tiga bulan ke depan?” Jawaban saya jujur: monitoring dan deployment sederhana. Model itu alat, dashboard dan rerun otomatis lebih penting. Saya catat juga rasa lega—kredit untuk kopi malam itu? Pantas.
Pelajaran yang saya bawa pulang: pertama, feature engineering dan pemilihan validasi lebih berdampak daripada model tercanggih. Kedua, selalu susun eksperimen dengan asumsi perubahan (seasonality, kampanye, pandemi). Ketiga, dokumentasi kecil—ketika saya menulis asumsi dan anomali, tim lain menghemat jam kerja berikutnya.
Di perjalanan pulang, mata masih sedikit lengket, saya tersenyum. Deadline dan kopi malam bukan hanya tekanan; mereka membentuk momen belajar. Machine learning untuk analisis tren kartu bukan soal memukau dengan kompleksitas, tapi menyampaikan konteks yang membuat produk bergerak. Itu yang saya coba bagikan hari itu—sebuah cerita yang semoga membantu rekan-rekan data scientist lain yang kejar setoran sambil menyesap kopi tengah malam.