fbpx

Integrasi R dan Python untuk Data Science Workflow yang Lebih Baik

By Prahariezka Arfienda   |   Oct 23, 2018

Baik level eksekutif, manajemen maupun data scientist, sepertinya sama-sama menyetujui satu hal: transformasi data-driven sedang berlangsung saat ini. Artificial Intelligence (AI) dan khususnya data science, telah mengubah bagaimana perusahaan menggali insight dari core business mereka.

Berbagai perusahaan atau organisasi kini tengah mengalami pergeseran fundamental. Pada tahun 2019, 90 persen organisasi global diperkirakan memiliki Chief Data Officer.

Kenapa? Karena ketika perusahaan sudah memiliki sebuah tim high performance data science, maka perusahaan atau organisasi tersebut bisa mendapatkan return on investment (ROI) yang besar dari investasi mereka di sektor data. Sayangnya, tim data science cenderung masih “terjebak” dalam dilema antara dua bahasa pemrograman data science: R versus Python.

Padahal, penggunaan bahasa pemrograman data science itu sebetulnya hanyalah sebuah alat. Kamu bisa menggunakan keduanya, R atau Python. Keduanya memiliki kekuatan masing-masing. Jangan mengkotak-kotakkan tim data science sebagai “tim R” atau “tim Python”

Ciptakanlah sebuah tim High Performance Data Science yang fokus pada keunggulan dari masing-masing bahasa tersebut.

Gagasan untuk menggunakan kedua bahasa tersebut secara bersamaan mungkin terdengar agak mengintimidasi. Banyak hal yan harus dilakukan. Dalam jangka pendek, ada waktu ekstra yang perlu dihabiskan untuk belajar. Namun dalam jangka panjang, investasi tersebut akan terbayarkan, dengan beberapa hal ini:

  • Meningkatkan efisiensi (seberapa cepat tim data science dapat menjalankan secara berulang workflow yang diciptakan)
  • Meningkatkan produktivitas (seberapa cepat tim data science menghasilkan suatu informasi yang dapat menambahkan value dan menghasilkan ROI)
  • Meningkatkan kapabilitas (output yang dihasilkan oleh tim data scientist)

Artikel ini akan terbagi dalam dua bagian:

Bagian 1: R + Python, Eksplorasi Key Strength
Pada bagian ini, kita akan mendiskusikan tentang asal mula diciptakannya kedua bahasa ini, perbedaan mendasar, dan kelebihan yang bisa dimanfaatkan dalam sebuah data science workflow.

Bagian 2: R + Python, Tutorial integrasi R dan Python
Setelah memahami perencanaan workflow, di bagian ini kita akan membahas tutorial menggunakan Python di RStudio.

Bagian 1: R + Python, Eksplorasi Key Strength

Kedua bahasa data science tersebut sama-sama bagus untuk analisis bisnis. Baik R maupun Python sama-sama bisa digunakan dalam kapasitas yang setara jika dilihat dari perspektif machine learning. Keduanya sama-sama memiliki package maupun library untuk data wrangling, preprocessing, atau aplikasi machine learning ke dalam data.

R dan Python juga sama-sama bisa menjadi pilihan bagus untuk reproducible research, yang menjadi kebutuhan bagi banyak industri dalam memvalidasi riset metodologi atau eksperimen.

Kelebihan R
Mari kita awali dengan R. Atau, lebih tepatnya, mari kita mulai dengan S. Bahasa S adalah pendahulu R yang dikembangkan oleh ahli statistik bernama John Chambers di Bell Labs pada tahun 1976 sebagai bahasa pemrograman yang didesain untuk implementasi statistik.

Bahasa pemrograman statistik R kemudian dikembangkan oleh sejumlah profesor di University of Auckland, Selandia Baru, untuk mengembangkan kemampuan versi awal S.

Para developer justru S dan R bukanlah software engineer atau computer scientist. Para peneliti dan ilmuwan ini mengembangkan tool dengan desain yang lebih efektif, dapat mendukung eksperimen, dan menunjukkan hasil yang dapat dipahami.

R adalah bahasa yang berakar pada statistik, analisis data, eksplorasi data, dan visualisasi data. R memiliki fitur yang sangat bagus untuk reporting dan komunikasi, termasuk RMarkdown dan Shiny. RMarkdown adalah sebuah metode untuk mengintegrasikan kode, output grafis, dan teks ke dalam laporan berkualitas jurnal. Shiny adalah sebuah tool untuk menciptakan prototipe aplikasi web atau MVP (minimum viable product).

Perkembangan pesat R dimulai seiring dengan kemunculan tidyverse, serangkaian tool dengan programming-interface pada umumnya yang menggunakan functional verbs. Misalnya, fungsi seperti ‘mutate()’ dan ‘summarize()’, untuk menunjukkan operasi intuitif yang dihubungkan oleh pipe (%>%). Metode tersebut meniru seperti apa proses saat orang membaca.

Tidyverse memberikan manfaat besar karena membuat eksplorasi data menjadi jauh lebih efisien. Iterasi melalui analisis eksploratori jadi semudah menulis sebuah paragraf dan menjelaskan apa yang ingin kamu lakukan terhadap data tersebut.

Kelebihan R sangat dapat diaplikasikan dalam bisnis, di mana bisnis perlu menguji teori, menjelaskan hubungan sebab-akibat, iterasi dengan cepat, dan mengambil keputusan. Lebih jauh lagi, kelengkapan komunikasi seperti laporan bisnis, slide presentasi, dan aplikasi web, dapat diciptakan dengan menggunakan reproducible workflow yang ada di dalam R.

Bagaimana untuk mulai mempelajari R?

Bagi kamu yang baru pertama kali berkenalan dengan data science, kamu boleh memilih mau mulai belajar R atau Python terlebih dahulu. Jika kamu ingin belajar R, ada beberapa tips yang bisa kamu ikuti:

  • Kenali environment dan bahasa pemrograman R. Paling dasar, download dan instal dulu R di komputer yang kamu gunakan berikut dengan environment pendukungnya, misalnya RStudio
  • Pahami bagaimana R bekerja, dan apa saja tool yang kamu perlu gunakan. Bisa lewat video tutorial, buku, atau workshop yang mengajarkan data science menggunakan R
  • Latihan dasar-dasar coding menggunakan R untuk lebih memahami struktur R.
  • Selanjutnya, coba bereksperimen dengan dataset yang bisa kamu dapatkan dari berbagai sumber dan mengaplikasikan model yang kamu buat untuk berbagai situasi.

Di Indonesia, Algoritma memiliki beberapa program workshop untuk membantu pemula dalam mempelajari Data Science. Salah satunya adalah program Algoritma Data Science Academy, yang memungkinkan kamu untuk menguasai data science dari tingkat dasar selama tiga bulan.

Course yang akan kamu dapatkan di Algoritma Data Science Academy adalah:

  • Data Visualization Specialization
  • Machine Learning Specialization
  • 2 Capstone Projects
  • Data Science Communications & Presentation Workshop
  • Demo Day Coaching

Kelebihan Python

Python adalah bahasa pemrograman yang dapat digunakan untuk banyak fungsi. Bahasa ini diciptakan oleh seorang computer scientist bernama Guido van Rossum pada tahun 1991. Tujuan dikembangkannya Python adalah agar bahasa ini mudah dibaca dan mampu mencakup berbagai paradigma pemrograman.

Salah satu kekuatan terbesar Python adalah fleksibilitas penggunaannya yang termasuk web framework, database connectivity, networking, web scraping, scientific computing, text dan image processing. Kebanyakan fitur Python memungkinkan untuk melakukan berbagai tugas dalam machine learning termasuk image recognition dan natural language processing.

Python adalah bahasa yang berakar pada ilmu komputer dan matematika. Bahasa ini didesain untuk programer yang memerlukan fleksibilitas tinggi dalam berbagai aktivitas pemrograman.

Dengan library open source yang jumlahnya lebih dari 100.000, Python memiliki ekosistem terbesar dibandingkan bahasa pemrograman apapun. Ini menjadikan Python pilihan yang baik bagi programer yang mencari fleksibilitas.

Python memiliki berbagai library data science menarik, termasuk Scikit-Learn yang merupakan salah satu library machine learning paling populer. Ada juga TensorFlow, sebuah library yang dikembangkan oleh software engineer di Google untuk melakukan deep learning dan biasa digunakan untuk image recognition dan natural language processing.

MENDESAIN SEBUAH DATA SCIENCE WORKFLOW

Saat kamu mempelajari beberapa bahasa atau tool pemrograman, kamu memiliki kemampuan untuk dapat memilih mana yang terbaik untuk sebuah pekerjaan. Hasilnya adalah perpaduan bahasa yang harmonis dan dapat meningkatkan efisiensi, kapabilitas, dan produktivitas dari sebuah tim data science.

Jadilah sefleksibel mungkin sehingga kita bisa memanfaatkan kelebihan dari kedua bahasa tersebut dalam full-stack data science workflow, termasuk:

  • Eksplorasi data dengan efisien
  • Modeling, Cross Validating, dan Evaluating Model Quality
  • Menyampaikan data science untuk membuat keputusan yang lebih baik lewat alat konvensional (Word, PowerPoint, Excel, PDF), web-based report (HTML), dan aplikasi web interaktif (Shiny, Django).

Kita bisa menciptakan modifkasi terhadap visualisasi R dan Python untuk mengaturnya secara logika dan meningkatkan kelebihan dua bahasa ini:

  • R dipilih untuk eksplorasi karena efisiensi dan readability tidyverse
  • Python dipilih untuk machine learning karena kapabilitas pipeline Scikit-Learn
  • R dipilih untuk komunikasi karena fitur reporting yang cukup lengkap, termasuk RMarkdown, Shiny, dan package visualisasi ggplot2.

Bagian 2: R + Python, Tutorial integrasi R dan Python

Apakah kamu adalah developer R yang ingin mencoba mempelajari library Python seperti Matplotlib, TensorFlow dan OpenCV tapi terhambat karena format Jupyter yang terbatas? Gunakan RStudio untuk melakukan eksperimen ini!

  1. Kamu bisa menggunakan R, Python, SQL atau bahasa liannya dalam dokumen yang sama (hal seperti ini tidak bisa kamu lakukan di Jupyter; satu notebook, satu kernel)
  2. Autocompletion yang cepat dan responsif baik untuk Python maupun R
  3. Render Matplotlib
  4. Experience IDE (Integrated Development Environment) yang lebih didapatkan dengan Git, Jobs, History, Connections dan sebagainya
  5. Pilihan exporting yang sangat banyak melalui knitr
  6. Mendukung virtual environments / conda environments dalam jumlah banyak.

Berikut ini adalah video singkat untuk menunjukkan bagaimana kamu dapat menggunakan tool yang familier ketika kamu berlatih dengan Python:

Sumber: Tutorial oleh Samuel Chan


(Artikel ini pertama kali muncul di RBloggers dengan judul “R and Python: How to Integrate the Best of Both into Your Data Science Workflow“. Diterjemahkan dan disesuaikan isinya oleh Tim Algoritma.)

Tertarik untuk mempelajari data science dan machine learning lebih mendalam?

Daftar Data Science Academy di Sini!

The last comment and 5 other comment(s) need to be approved.