Mengenal Spark MLlib untuk Big Data dan Machine Learning

By | January 31, 2021
5,382 Views

Apache Spark merupakan framework pemrosesan data yang dapat dengan cepat melakukan tugas pemrosesan pada kumpulan data yang sangat besar dan juga dapat mendistribusikan tugas pemrosesan data ke banyak komputer, baik sendiri atau bersama-sama dengan alat komputasi terdistribusi lainnya.

Untuk mendukung Python dengan Spark, komunitas Apache Spark merilis alat, PySpark. Menggunakan PySpark, developer dapat bekerja dengan RDD (Resilient Distributed Dataset) ketika menggunakan Python.

Komponen Spark adalah:

  1. Spark Core
  2. Spark SQL
  3. Spark Streaming
  4. Spark MLlib
  5. GraphX
  6. Spark R

1. Spark Core

Semua fungsi yang disediakan oleh Apache Spark dibangun di atas Spark Core. Spark Core mengelola semua fungsi I / O esensial seperti untuk pengiriman tugas dan pemulihan kesalahan / recovery. Spark Core disematkan dengan koleksi khusus yang disebut RDD (Resilient Distributed Dataset). RDD adalah salah satu abstraksi Spark. Spark RDD menangani data partisi di semua node dalam sebuah cluster. Ada dua operasi yang dilakukan pada RDD:

  1. Transformation: Ini adalah fungsi yang menghasilkan RDD baru dari RDD yang ada.
  2. Action: Dalam Transformasi, RDD dibuat dari satu sama lain. Tapi ketika kita ingin bekerja dengan dataset yang sebenarnya, maka, kita menggunakan Action.

2. Spark SQL

Komponen Spark SQL adalah distributed framework untuk pemrosesan data terstruktur. Spark SQL berfungsi untuk mengakses informasi terstruktur dan semi-terstruktur, serta memungkinkan aplikasi yang kuat, interaktif, analitis di seluruh streaming dan data historis. DataFrames dan SQL telah menyediakan cara umum cara untuk mengakses berbagai sumber data. Fitur utamanya adalah menjadi pengoptimal berbasis biaya dan toleransi kesalahan kueri menengah.

See also  OCR Optical Character Recognition berbasis Machine Learning

3. Spark Streaming

Adalah add-on ke API Spark inti yang memungkinkan pemrosesan aliran data langsung yang dapat di scale up, high throughput, dan toleran terhadap kesalahan. Spark Streaming, mengelompokkan data langsung menjadi beberapa bagian kecil. Kemudian mengirimkannya ke sistem batch untuk diproses.

4. Spark GraphX

GraphX di Spark adalah API untuk grafik dan eksekusi paralel grafik. Ini adalah mesin analisis grafik jaringan dan penyimpanan data. Pengelompokan, klasifikasi, traversal, pencarian, dan pencarian jalur juga dapat dilakukan via grafik.

5. SparkR

SparkR menyediakan implementasi data frame yang terdistribusi. Serta mendukung operasi seperti pemilihan, pemfilteran, agregasi, tetapi pada kumpulan data besar.

6. Spark MLlib

Spark MLlib digunakan untuk melakukan machine learning di Apache Spark. MLlib terdiri dari algoritma dan utilitas populer. MLlib di Spark adalah library machine learning yang dapat discale up kecepatan tinggi. Algoritma machine learning seperti regresi, klasifikasi, pengelompokan, penambangan pola, dan pemfilteran kolaboratif. Juga tersedianya algoritma dasar machine learning tingkat rendah seperti algoritma pengoptimalan penurunan gradien  / gradien descent generik juga ada di MLlib.

Didalam Spark MLib terdiri dari

  1. ML Algorithms: Algoritma ML membentuk inti dari MLlib. Ini termasuk algoritma machine learning seperti klasifikasi, regresi, pengelompokan, dan pemfilteran kolaboratif. MLlib menstandarkan API untuk memudahkan penggabungan beberapa algoritma ke dalam satu pipeline, atau alur kerja. Konsep utamanya adalah Pipelines API, di mana konsep pipeline terinspirasi oleh proyek scikit-learn.
  2. Featurization: Keistimewaan mencakup
    1. Feature Extraction: mengekstrak fitur dari data mentah / raw data
    2. Feature Transformation mencakup scaling, renovating, atau modifying features
    3. Feature Selection: melibatkan pemilihan subset fitur yang diperlukan dari sekumpulan besar fitur.
  3. Pipelines: Pipeline menyatukan beberapa Transformer dan Estimator untuk menentukan alur kerja ML. Pipelines juga menyediakan fitur untuk membangun, mengevaluasi, dan menyesuaikan Pipelines ML.
  4. Persistence: Persistence membantu dalam menyimpan dan memuat algoritma, model, dan Pipelines. Hal ini membantu dalam mengurangi waktu dan upaya karena model tersebut persistensi, dapat dimuat / digunakan kembali kapan saja bila diperlukan seperti data yang disimpan dalam format HDF5, JSON, ataupun Pickle
  5. Utilities: Utilitas untuk aljabar linier, statistik, dan penanganan data. Contoh: mllib.linalg adalah utilitas MLlib untuk aljabar linier.
See also  Format Anotasi Gambar pada Deep Machine Learning

 

ref:

https://www.analyticsvidhya.com/

https://spark.apache.org/docs/latest/ml-guide.html