Data Science itu luas, dan banyak yang bingung mau mulai masuk dari mana.
Artikel ini dibuat dengan harapan untuk menjawab kebingungan itu.
Aku yakin gak sedikit dari pembaca yang gak kebayang Data Science itu ngapain. Mungkin cuma pernah denger istilahnya aja karena lagi BOOMING. Oke, kita liat istilah formalnya:
Data science is an inter-disciplinary field that uses scientific methods, processes, algorithms and systems to extract knowledge and insights from many structural and unstructured data.
~ Wikipedia
Intinya ada 2: inter-disciplinary dan extracting knowledge and insight. Jadi bisa dibilang juga:
Memakai pengetahuan dari berbagai bidang untuk dapat ilmu dan insight dari data.
Biar gak ngawang, di bawah ada beberapa contoh dari Data Science Problem Statements:
-
Given records of ticket transactions for the past month,
predict how many extra tickets will be booked everyday for the next week. -
Given pictures of product and their category,
build an automatic categorizer of product pictures. -
Given a number of texts and their category (containing explicit content or not),
build an automatic categorizer for unlabeled texts. -
Given a set of images,
build an image segmentation algorithm to find all the same landmarks.
Cari contoh lainnyaa di Kaggle, DrivenData, MachineHack, Analytics Vidhya, dan platform kompetisi lain.
Memang kedengeran susah, dan emang susah, tapi di sini lah inti artikel ini, yakni
Memberikan sedikit kepedean buat pembaca untuk nyobain bidang ini
Data Science luas karena masalah yang tercakup di dalamnya sangat banyak. Tapi secara umum, kita bisa bikin klaster-klaster untuk permasalahan yang dibahas dalam Data Science, terutama terkait competitive data science:
-
Tabular Data
Maksudnya, data disimpen dalam suatu bentuk tabel.Tipe ini yang paling mudah dibayangin prosesnya dan recommended buat yang baru masuk dan mau main-main dulu ke Data Science.
Contoh kompetisi for beginner:
-
Image Data
Bidang terkait ini biasa disebut Computer Vision.Contoh task-nya antara lain:
- mengklasifikasi suatu gambar,
- mendeteksi suatu objek dalam suatu gambar, atau
- membuat batasan objek2 dalam gambar, dll.
Contoh kompetisi for beginner:
-
Text Data
Bidang terkait ini biasa disebut Natural Language Processing (NLP).Contoh task-nya antara lain:
- analisis sentimen atau klasifikasi emosi,
- aplikasi peringkasan berita,
- aplikasi mesin penerjemah, dll.
Contoh kompetisi for beginner:
-
Supervised Learning
Supervised Learning adalah tipe pembelajaran ketika model atau algoritma mempelajari pola dari data yang sudah berlabel. Tipe pembelajaran ini adalah yang paling sering dimanfaatkan pada Competitive Data Science.
Ibaratnya, kita mengajari model untuk membedakan yang mana bunga Mawar, Melati atau Bugenvil dengan cara memberi gambar masing-masing bunga beserta namanya. Setelah model dirasa sudah cukup bisa mengenali karakteristik dari bunga-bunga ini maka kita bisa main tebak-tebakan dengan model ini dengan memberinya gambar lain tanpa diberikan nama.
Supervised Learning biasanya terasosiasi dengan beberapa permasalahan populer di Machine Learning yaitu:
- Regression: meminta model untuk memprediksi nilai kontinu
- Clasification: meminta model untuk memprediksi nilai diskrit
-
Unsupervised Learning
Unsupervised Learning adalah tipe pembelajaran ketika model atau algoritma mempelajari pola dari data yang tidak memiliki label.
Ibaratnya, kita ditempatkan di satu ruangan bersama dengan 100 orang yang belum kita kenal, kemudian kita diminta untuk mencari kesamaan masing-masing dan membentuk grup sebanyak n. Setelah terbentuk kelompok, akhirnya kita baru tau nih Kelompok A ternyata kumpulan penonton video masak, Kelompok B ternyata kumpulan penonton video kucing, dan Kelompok C ternyata kumpulan orang yang tidak punya kesamaan dengan kelompok lainnya.
Unsupervised learning biasanya terasosiasi dengan beberapa permasalahan:
- Clustering: mengelompokkan data berdasarkan kemiripan
- Anomaly Detection: mendeteksi keabnormalan atau hal ganjil dari data
- Association: mencari item lain yang terasosiasi dengan item tertentu
-
Reinforcement Learning
Reinforcement Learning adalah tipe pembelajaran ketika model/algoritma/agen hanya diberikan sebuah goal dan reward tanpa diberi tahu bagaimana cara mencapai goal tersebut.
Model hanya diberikan sekumpulan langkah-langkah yang boleh dilakukan dan akan mendapatkan reward apabila langkah yang dipilih menuju atau mendekati goal. Sebaliknya apabila langkah yang diambil justru menjauhi goal maka agen atau model diberikan punishment.
Ibaratnya seperti bermain game, ketika kita berhasil menyelesaikan level maka kita akan mendapat badge. Sedangkan ketika kita melakukan langkah yang salah maka permainan akan berakhir.
Skills penting yang dibutuhin sebelum masuk ke Skill Spesifik Data Science
Ini esensial banget. Bukan berarti 100% dalam Data Science itu ngoding yaa. Tapi jangan masuk dulu ke Data Science kalo topik dasar pemrograman kayak if-else, looping, function and procedures, belom terlalu lancar, karena eratnya hubungan antara Data Science dan Programming. Bahkan topik yang intermediate di programming seperti Object Oriented Programming (OOP) juga good to have buat lebih mudah ngerti dokumentasi dari berbagai tools. Tanpa ilmu programming, kita gak akan bisa berjalan terlalu jauh atau menyelam terlalu dalam.
Buat milih bahasa, kalo mau main data tabular bisa pake R atau Python. Kalo mau tipe data yang lain, support buat Python jauh lebih kuat. Jadi penulis pribadi nyaranin Python aja.
- Youtube dan Google (Cari "Introduction to Python" atau yang semisal)
- Codecademy
- W3Schools
- FreeCodeCamp
- Khan Academy
Basic Math di sini setidaknya ngerti operasi matriks, dan statistik dasar kayak mean, standard deviation, dsb. Gunanya buat ngerti konsep-konsep dasar dan agar ketika nyusun solusi, bisa punya gambaran besar cara kerjanya gimana, bukan cuma numpuk tools doang hehe
Dari 2 skill di atas, penulis pribadi simpulin kalo rata-rata lulusan SMA udah cukup untuk mulai masuk ke Data Science, asal udah bisa ngoding.
Berarti kalo secara timeline ITB, rata-rata mahasiswa ITB bisa mulai di semester 2 TPB.
- SMA
- Youtube dan Google (Cari "Basic Statistics" atau yang semisal)
- StatQuest Youtube Channel
- Coursera - Basic Statistics
- FreeCodeCamp - Statistics for Data Science
Skills penting yang perlu dipelajari ketika udah mulai masuk ke Data Science
Tools buat analisis data. Di antaranya:
- Pandas Library for Python
- R Programming Language
Dua tools di atas sangat valuable karena berbasis programming, jadi cukup powerful untuk meng-handle berbagai macam sumber data. Tapi bisa dipertimbangkan juga yang berbasis app seperti:
- Excel
- Tableau
- Power BI
- Google DS
Tools di atas terutama penting banget ketika ngerjain data tabular dan berhubung TPB semester 1 udah diajarin pandas, itu udah jadi foundation yg sangat bagus utk mulai.
Proses apa aja yang dilakuin ke sebuah data. Di antara contoh istilahnya:
- Data Cleansing
- Null or Missing Value Handling
- Outlier Handling
- Remove Duplicate
- Normalization
Kita perlu tau secara garis besar cara kerja suatu model Machine Learning, supaya kita bisa milih preprocessing data yang tepat untuk model itu, dan gimana caranya kita mainin (tuning) algoritmanya untuk ngasih performa optimal. Gak harus ngerti sedalem-dalemnya, cuman mungkin sebatas sampai bisa jelasin secara umum model itu gimana cara kerjanya.
Setelah memahami konsep-konsep model Machine Learning maupun langkah-langkah pemrosesan data, kita perlu tau juga step-step yang biasanya dilakukan oleh para Data Scientist dari awal sampai akhir secara end-to-end. Framework paling umum yang digunakan namanya CRISP-DM. Untuk belajar lebih lanjut bisa dibaca di sini
Data Science sangat luas dan berhubungan dengan banyak ketidakpastian, dan dalam medan seperti itu, ada softskills tertentu yang berguna untuk kita miliki, di samping hardskill, ketika menyelesaikan suatu problem:
"Apa yang belum aku tahu? Metode apa yang belum dipakai?"
Sebagai bidang yang sangat luas, Data Science sering punya topik-topik baru yang muncul dengan laju yang sangat cepat. Kita gak bisa mengandalkan satu kali belajar aja untuk bisa mengerjakan semua task Data Science. Bahkan bisa aja kita udah menyelesaikan kompetisi di suatu topik, dan ketika kita masuk ke kompetisi berikutnya, 90% dari kompetisi itu berisi hal baru yang kita harus pelajari. Maka mindset continuous learning jadi sangat penting dalam Data Science.
"Alur ini valid gak ya?"
Semangat eksplorasi ada baiknya dibarengi dengan keraguan yang proporsional. Gak bisa setiap kali kita tau suatu metode baru, kemudian kita terapkan metode tersebut kepada setiap problem. Hal ini karena setiap data, dan setiap problem mempunyai karakteristik yang berbeda. Bahkan untuk task yang sama, misalkan memprediksi demand barang, jika tipe data dari dua buah problem berbeda, maka kita bisa aja butuh metode pemrosesan data yang berbeda, dan sangat mungkin pakai model yang berbeda. Bagaimana kita menerapkan softskill ini, bergantung kepada softskill yang ketiga.
"Ini maksudnya gimana ya? Bisa dipake di mana ya?"
Untuk tau apakah suatu metode cocok untuk suatu persoalan, kita perlu paham secara garis besar bagaimana metode itu bekerja, dan untuk tipe persoalan seperti apa dia baiknya. Hal ini menuntut kita untuk selalu 'penasaran' tentang cara kerja dari suatu metode/library/framework yang baru kita pelajari. Gak cuma belajar cara memakai/ngodingnya saja, atau bahkan cuma copas kodenya saja.
Note: Jangan salah, copas kode itu sangat biasa ya hehe, cuman paling nggak coba dimengerti apa maksud kodenya
Data Science punya banyak sekali pintu masuk, dan penulis sendiri juga percaya kalo cara belajar setiap orang sebaiknya personalized untuk orang tersebut. Tapi bagian ini ditulis cuma sebagai masukan, untuk menghapus sedikit kebingungan, buat mereka yang masih belum ada bayangan sama sekali dari mana mau mulai.
Untuk sekedar masuk ke Data Science, penulis percaya kalo gak terlalu banyak yang harus dikuasai terlebih dahulu. Gak seperti bidang-bidang macam fisika kuantum, quantum computing, atau large-scaled distributed system, dll. Emang, bidang-bidang di Data Science banyak yang tingkat kompleksitasnya tinggi. Hal itu terlihat jelas kalo kita coba baca paper-paper terkini di bidang Data Science.
Tapi buat sekedar memulai, untuk sekedar mengikuti kompetisi atau mengerjakan proyek skala kecil, menurut penulis setidaknya cuma perlu 2 skill yang dikuasai, yaitu sebagaimana yang udah ditulis sebelumnya: Basic Programming dan Basic Math.
Menurut penulis poin #1 penting karena banyak hal di bidang ini yang hanya bisa dipelajari/dimengerti ketika sudah masuk langsung (hands-on). Jadi lebih penting untuk "masuk" dahulu dibandingkan "mempersiapkan untuk masuk".
Mulai ikut kompetisi-kompetisi Data Science, atau ngerjain proyek kecil-kecilan. Ide proyek dan implementasinya banyak banget yang bisa diambil dari internet.
Beberapa sumber ide dan implementasi proyek:
Lomba-lomba yang bisa diikuti:
-
Lomba di Platform
-
Lomba yang diadain lembaga (perusahaan/universitas)
Note: ini hanya beberapa yang pernah ada, tidak menjamin lomba ini diadakan rutin tiap tahun.- EY NextWave Data Challenge (diadain perusahaan konsultasi EY)
- Shopee Code League (diadain e-commerce Shopee)
- JOINTS (UGM)
- ITToday (IPB)
Untuk HMIF ITB, bisa cari berbagai lomba yang up-to-date di link ini ya, termasuk di antaranya lomba Data Science. Masuknya harus pake email std.stei
Biasanya suatu lomba atau proyek punya topik/arah yang jelas. Misalkan yang satu NLP, yang satu Computer Vision, yang satu Time Series Forecasting. Masing-masing bidang punya metode, proses, dan model tersendiri yang kita perlu pelajarin ketika masuk. Di tahap ini kita bisa mencari artikel/paper/tutorial yang mendukung pengerjaan itu.
3 Tahap di atas kita ulang-ulang lagi dengan ngerjain problem dan kompetisi yang bervariasi.
Berikut beberapa kompilasi sumber-sumber lain yang bisa dipertimbangkan, penulis coba kelompokkan berdasarkan tipe pembelajarannya:
Sumber untuk latihan, berupa ide projek, kompetisi, task-task, dan dataset
- Kaggle
- UCI ML Repository (berisi berbagai dataset, yang dipake di paper)
- DrivenData
- Zindi
- MLContests
- arXiv (berisi ribuan Research Papers, include Code and Dataset)
Course bisa dianggap kayak kuliah: ada materi, ada tugas, ada nilai. Di antara keuntungan course adalah pembelajaran yang terstruktur
- Coursera
Popular Courses - Udemy
- Udacity
- edX
- MIT's Intro to Deep Learning
Bagi yang suka fokus ke teori, dan ingin belajar dengan pace tersendiri.
- Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems
- Deep Learning with PyTorch
- Introduction to Statistical Learning
- Buku-buku lain dari O-Reilly biasanya terkenal
Bisa dibilang sumber informasi yang spesifik banget terhadap suatu task atau bisa jadi fokusnya lebih ke memberikan insight tentang bidang Data Science secara umum.
Note: Mayoritas library/framework Machine Learning punya dokumentasi yang memuat tutorial penggunaan library/framework tersebut. Makanya penting buat kita sering-sering main ke website dokumentasi.
Akhir kata, semoga guide ini bisa membantu. Gak perlu takut dan mikir "apa aku punya talent yang cukup ya?". Karena kebanyakan yang menghalangi itu bukan "kurang talent", tapi distraksi-distraksi kayak "social media", "YouTube", "Netflix", dan apapun lah itu macamnya. Motivasi dan disiplin lebih penting dalam proses belajar dibanding talent.
Terima kasih dan selamat belajar!
- Ahmad Izzan
- Christian Wibisono
- Ilham Firdausi Putra
Sebagai kontributor-kontributor awal!
- CnC HMIF ITB sebagai pendorong pertama ditulisnya artikel ini
- Seluruh kontributor langsung maupun tak langsung di repository ini