Giter Site home page Giter Site logo

my-ds-guide-id's Introduction

Data Science itu luas, dan banyak yang bingung mau mulai masuk dari mana.
Artikel ini dibuat dengan harapan untuk menjawab kebingungan itu.


Intro

Data Science?

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.

Case Examples

Biar gak ngawang, di bawah ada beberapa contoh dari Data Science Problem Statements:

  1. Given records of ticket transactions for the past month,
    predict how many extra tickets will be booked everyday for the next week.

  2. Given pictures of product and their category,
    build an automatic categorizer of product pictures.

  3. Given a number of texts and their category (containing explicit content or not),
    build an automatic categorizer for unlabeled texts.

  4. 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

Tipe-Tipe Task/Problem

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:

Berdasarkan Bentuk Data (yang Umum)

  1. 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:

  2. 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:

  3. 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:

Berdasarkan Tipe Pembelajaran




  1. 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
  2. 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
  3. 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.

Technical Skills Checklist

Technical Prerequisite

Skills penting yang dibutuhin sebelum masuk ke Skill Spesifik Data Science

1. Basic Programming

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.

Di mana Belajarnya?

2. Basic Math & Statistics

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.

Di mana Belajarnya?

Specific Technical Skills

Skills penting yang perlu dipelajari ketika udah mulai masuk ke Data Science

1. Data Analysis Tools

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.

Di mana Belajarnya?

2. Basic Data Preprocessing Concepts

Proses apa aja yang dilakuin ke sebuah data. Di antara contoh istilahnya:

  • Data Cleansing
  • Null or Missing Value Handling
  • Outlier Handling
  • Remove Duplicate
  • Normalization

Di mana Belajarnya?

3. Basic Machine Learning Model Concepts

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.

Di mana Belajarnya?

4. Data Science Workflow

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

Softskills Checklist

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:

a. Semangat Eksplorasi dan Belajar Mandiri

"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.

b. Skeptis secara Moderat

"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.

c. Passion untuk Memahami Konsep

"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

(Possible) Learning Flow


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.

1. Belajar "Secukupnya"

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".

2. Mulai Ngerjain Sesuatu

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

3. Cari Sumber-Sumber untuk Menyelesaikan Lomba atau Proyek

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.

4. Repeat #1

3 Tahap di atas kita ulang-ulang lagi dengan ngerjain problem dan kompetisi yang bervariasi.

Other Great Resources

Berikut beberapa kompilasi sumber-sumber lain yang bisa dipertimbangkan, penulis coba kelompokkan berdasarkan tipe pembelajarannya:

1. Hands-on

Sumber untuk latihan, berupa ide projek, kompetisi, task-task, dan dataset

2. Course

Course bisa dianggap kayak kuliah: ada materi, ada tugas, ada nilai. Di antara keuntungan course adalah pembelajaran yang terstruktur

3. Buku

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

4. Artikel

Bisa dibilang sumber informasi yang spesifik banget terhadap suatu task atau bisa jadi fokusnya lebih ke memberikan insight tentang bidang Data Science secara umum.

5. Tutorials

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.

Final Words

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!

Ucapan Terima Kasih

  • 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

my-ds-guide-id's People

Contributors

ardyh avatar christianwbsn avatar ilhamfp avatar myarist avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.