Anda di halaman 1dari 36

LECTURE NOTES

Big Data Technologies

Minggu 10

Big Data Case Study

COMP6725 - Big Data Technologies


LEARNING OUTCOMES

LO 3: Analisis menggunakan analisis big data

Outcome:

Mahasiswa mampu menganalisis menggunakan analisis big data.

OUTLINE MATERI (Sub-Topic):

• Analisis Data Genom


• Analisis Data Cuaca
• Analisis Batch dari Artikel Berita
• Query Interaktif dari Data Cuaca
• Sistem Rekomendasi lagu
• Mengklasifikasikan Digit Tulisan Tangan
• Sistem Rekomendasi film

COMP6725 - Big Data Technologies


ISI MATERI

1. Analisis Data Genom


studi kasus menggunakan stack Big Data untuk analisis data genom. kami akan
menggunakan generator data sintetis yang disediakan dengan benchmark genomik
GenBase [2]. Generator data ini menghasilkan empat jenis kumpulan data: (1) Data
microarray yang mencakup nilai ekspresi untuk sejumlah besar gen untuk pasien yang
berbeda, (2) Meta-data pasien yang berisi data demografi (usia pasien, jenis kelamin,
kode pos) dan informasi klinis (respon penyakit dan obat) untuk setiap pasien yang data
genomiknya tersedia dalam dataset microarray, (3) Meta-data gen yang berisi informasi
seperti target gen (yaitu ID gen lain yang ditargetkan oleh protein dari gen saat ini),
jumlah kromosom, posisi (jumlah pasangan basa dari awal kromosom hingga awal gen),
panjang (dalam pasangan basa) dan fungsi (dikodekan sebagai bilangan bulat), (4)
Ontologi Gen ( GO) data yang menentukan kategori GO untuk gen yang berbeda.
Gambar 10.1 menunjukkan sampel kecil untuk empat jenis dataset.

Pic 10.1 Genome datasets


Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016

a. Pengumpulan data
Mari kita asumsikan bahwa kita memiliki dataset mentah yang tersedia baik dalam
database SQL atau sebagai file teks mentah. Untuk mengimpor kumpulan data dari
database SQL ke dalam stackbig data, kita dapat menggunakan konektor SQL.
Sedangkan untuk mengimpor file dataset mentah, konektor source-sink dapat
berguna.
b. Persiapan data
Pada langkah persiapan data, kita mungkin harus melakukan pembersihan data
(untuk menghapus nilai yang hilang dan catatan yang rusak) dan perselisihan data

COMP6725 - Big Data Technologies


(untuk mengubah catatan dalam format yang berbeda menjadi satu format yang
konsisten).
c. Jenis Analisis
Katakanlah, untuk aplikasi ini kami ingin melakukan dua jenis analisis sebagai
berikut: (1) memprediksi respon obat berdasarkan ekspresi gen, (2) menemukan
korelasi antara nilai ekspresi semua pasangan gen untuk menemukan gen yang
memiliki pola ekspresi yang sama dan gen yang memiliki pola ekspresi yang
berlawanan. Analisis pertama berada di bawah kategori analisis regresi, di mana
model regresi dapat dibangun untuk memprediksi respon obat. Variabel target untuk
model regresi adalah respon obat pasien dan variabel independen adalah nilai
ekspresi gen. Jenis analisis kedua berada di bawah kategori statistik dasar, di mana
kami menghitung korelasi antara nilai ekspresi semua pasangan gen.
d. Mode Analisis
Berdasarkan jenis analisis yang ditentukan pada langkah sebelumnya, kita tahu
bahwa mode analisis yang diperlukan untuk aplikasi akan bersifat batch dan
interaktif.
e. Visualisasi
Aplikasi front-end untuk memvisualisasikan hasil analisis akan bersifat dinamis dan
interaktif.
Untuk mendapatkan pilihan tools dan framework dari stackBig Data yang dapat
digunakan untuk analisis data genom, mari kita buat alur analisis untuk aplikasi seperti
yang ditunjukkan pada Gambar 10.2.

Pic 10.2 Analytics flow for genome data analysis


Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016

Dengan alur analitik untuk aplikasi yang dibuat, sekarang kita dapat memetakan pilihan
di setiap langkah alur ke stack big data. Gambar 10.3 menunjukkan subset komponen
stack big data berdasarkan alur analitik.

Pic 10.3 Using big data stack for analysis of genome data
Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016

COMP6725 - Big Data Technologies


Gambar 10.4 menunjukkan langkah-langkah yang terlibat dalam membangun model
regresi untuk memprediksi respon obat dan data pada setiap langkah. Sebelum kita
dapat membangun model regresi, kita harus melakukan beberapa transformasi dan
penggabungan untuk membuat data sesuai untuk membangun model. Kami memilih gen
dengan serangkaian fungsi tertentu dan menggabungkan meta-data gen dengan meta-
data pasien dan data microarray. Selanjutnya, kami memutar hasil untuk mendapatkan
nilai ekspresi untuk setiap jenis gen untuk setiap pasien. Kemudian kami memilih pasien-
ID, penyakit, dan respon obat dari meta-data pasien. Selanjutnya, kita menggabungkan
tabel yang diperoleh dalam dua langkah sebelumnya untuk menghasilkan tabel baru yang
memiliki semua data dalam format yang tepat untuk membangun model regresi.

Pic 10.4 Steps involved in building a regression model for predicting drug response
Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016

Gambar 10.5 menunjukkan langkah-langkah yang terlibat dalam menghitung korelasi


antara tingkat ekspresi semua pasangan gen dan data pada setiap langkah. Kami memilih
pasien dengan penyakit tertentu dan menggabungkan hasilnya dengan tabel microarray.
Selanjutnya, kami memutar tabel pada langkah sebelumnya untuk mendapatkan nilai
ekspresi untuk semua gen untuk setiap pasien. Kami menggunakan tabel ini untuk
membuat matriks korelasi yang memiliki korelasi antara nilai ekspresi semua pasangan
gen.

COMP6725 - Big Data Technologies


Pic 10.5 Steps involved in building a regression model for predicting drug response
Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016

Gambar 10.5 menunjukkan langkah-langkah yang terlibat dalam menghitung korelasi


antara tingkat ekspresi semua pasangan gen dan data pada setiap langkah. Kami memilih
pasien dengan penyakit tertentu dan menggabungkan hasilnya dengan tabel microarray.
Selanjutnya, kami memutar tabel pada langkah sebelumnya untuk mendapatkan nilai
ekspresi untuk semua gen untuk setiap pasien. Kami menggunakan tabel ini untuk
membuat matriks korelasi yang memiliki korelasi antara nilai ekspresi semua pasangan
gen.

2. Analisis Data Cuaca


Mari kita lihat studi kasus penggunaan stack big data untuk analisis data cuaca. Untuk
mendapatkan pilihan tools dan framework dari stack big data yang dapat digunakan
untuk analisis data cuaca, pertama-tama mari kita buat alur analisis untuk aplikasi seperti
yang ditunjukkan pada Gambar 10.6.

Pic 10.6 Analytics flow for weather data analysis application


Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016

COMP6725 - Big Data Technologies


a. Pengumpulan data
Mari kita asumsikan, kita memiliki beberapa stasiun pemantau cuaca atau node akhir
yang dilengkapi dengan sensor suhu, kelembaban, angin, dan tekanan. Untuk
mengumpulkan dan menyerap data sensor streaming yang dihasilkan oleh stasiun
pemantau cuaca, kita dapat menggunakan framework pesan publish-subscribe untuk
menyerap data untuk analisis real-time dalam stackBig Data dan konektor Source-
Sink untuk menyerap data ke dalam sistem file terdistribusi untuk analisis batch.
b. Persiapan data
Karena data cuaca yang diterima dari stasiun pemantau yang berbeda dapat
memiliki nilai yang hilang, menggunakan unit yang berbeda, dan memiliki format
yang berbeda, kita mungkin perlu menyiapkan data untuk analisis dengan
membersihkan, mengacaukan, menormalkan, dan memfilter data.
c. Jenis Analisis
Pilihan jenis analisis didorong oleh persyaratan aplikasi. Katakanlah, kami ingin
aplikasi analisis cuaca kami untuk mengumpulkan data pada berbagai skala waktu
(menit, jam, harian atau bulanan) untuk menentukan rata-rata, pembacaan
maksimum dan minimum untuk suhu, kelembaban, angin, dan tekanan. Kami juga
ingin aplikasi mendukung kueri interaktif untuk menjelajahi data, misalnya, kueri
seperti: menemukan hari dengan suhu terendah di setiap bulan dalam setahun,
menemukan 10 hari paling basah dalam setahun, misalnya. Jenis analisis ini
termasuk dalam kategori statistik dasar. Selanjutnya, kita juga ingin aplikasi
membuat prediksi kejadian cuaca tertentu, misalnya memprediksi terjadinya kabut
atau kabut. Untuk analisis seperti itu, kami akan membutuhkan model klasifikasi.
Selain itu, jika kita ingin memprediksi nilai (seperti jumlah curah hujan), kita
memerlukan model regresi.
d. Mode Analisis
Berdasarkan jenis analisis yang ditentukan pada langkah sebelumnya, kita tahu
bahwa mode analisis yang diperlukan untuk aplikasi akan bersifat batch, real-time,
dan interaktif.
e. Visualisasi
Aplikasi front-end untuk memvisualisasikan hasil analisis akan bersifat dinamis dan
interaktif.

Sekarang setelah kita memiliki alur analitik untuk aplikasi, mari kita petakan pilihan di
setiap langkah alur ke stack big data. Gambar 10.7 menunjukkan subset komponen stack
big data berdasarkan alur analitik. Untuk mengumpulkan dan menyerap data sensor
streaming yang dihasilkan oleh stasiun pemantauan cuaca, kita dapat menggunakan
kerangka pesan publish-subscribe seperti Apache Kafka (untuk analisis real-time dalam
stackBig Data). Setiap stasiun cuaca menerbitkan data sensor ke Kafka.

COMP6725 - Big Data Technologies


Pic 10.7 Analytics flow for weather data analysis application
Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016

3. Analisis Batch dari Artikel Berita


Studi kasus pada sistem untuk analisis batch artikel berita yang dikumpulkan dari
beberapa situs web berita. Sistem menghitung sentimen dari setiap artikel berita dan
menemukan topik yang sedang tren.
Gambar 10.8 menunjukkan realisasi pola Alpha untuk sistem ini, dengan tools dan
framework khusus yang dapat digunakan. Sistem ini menggunakan MapReduce dan Pig
untuk analisis batch, seperti menghitung kata paling umum dan frasa paling umum di
antara semua artikel berita.

Pic 10.8 A realization of Alpha pattern for batch analysis of news articles
Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016

Gambar 7.10(b) menunjukkan arsitektur sistem analisis berita.

COMP6725 - Big Data Technologies


Pic 10.9 Architecture of the system
Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016

4. Query Interaktif dari Data Cuaca


Studi kasus pada sistem untuk query interaktif data cuaca. Kami akan menggunakan
dataset cuaca NCDC untuk studi kasus ini. NCDC menyediakan akses ke data harian dari
Jaringan Referensi Iklim AS / Jaringan Referensi Iklim Regional AS (USCRN/USRCRN)
melalui FTP.
Gambar 9.1 menunjukkan realisasi pola Delta untuk sistem ini, dengan tools dan
framework khusus yang dapat digunakan. Di bagian ini, kami menjelaskan penggunaan
Spark SQL untuk kueri interaktif kumpulan data cuaca.

Pic 10.10 A realization of Delta pattern for interactive querying of weather data
Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016

Untuk memindahkan data cuaca ke HDFS dari sumber eksternal, kita bisa menggunakan
konektor source-sink seperti Flume. Karena dataset yang digunakan dalam studi kasus ini
dalam bentuk file teks tunggal, kita cukup memindahkan file teks ke HDFS menggunakan
tools baris perintah HDFS. Kotak di bawah ini menunjukkan kode Python untuk membuat
DataFrame dari dataset menggunakan fungsi createDataFrame yang mengubah RDD dari
objek Row menjadi DataFrame dengan menyimpulkan tipe data.

COMP6725 - Big Data Technologies


Kotak di bawah ini menunjukkan skema DataFrame yang dibuat.

COMP6725 - Big Data Technologies


Kotak di bawah ini menunjukkan contoh kueri SQL untuk mengambil nomor WBAN
stasiun, tanggal, dan suhu harian maksimum yang diurutkan dalam urutan menurun.
Klausa LIMIT digunakan untuk membatasi jumlah baris yang dikembalikan.

Kotak di bawah ini menunjukkan contoh kueri SQL untuk menemukan suhu maksimum
yang diamati sepanjang tahun.

Kotak di bawah ini menunjukkan contoh kueri SQL untuk menemukan suhu minimum
yang diamati sepanjang tahun. Perhatikan penggunaan klausa WHERE untuk menyaring
nilai yang hilang (diatur ke -9999.0).

COMP6725 - Big Data Technologies


5. Sistem Rekomendasi lagu
studi kasus membangun sistem rekomendasi musik menggunakan Apache Spark.
Sementara sebagian besar sistem rekomendasi lagu menggunakan penyaringan
kolaboratif, yang memerlukan akses ke data profil pengguna seperti lagu yang dimainkan
oleh pengguna dan peringkat lagu yang diberikan kepada pengguna, tanpa adanya
informasi tersebut, menjadi sulit untuk merekomendasikan lagu kepada pengguna. Untuk
tujuan studi kasus ini, kami akan menggunakan pendekatan penyaringan berbasis konten
yang tidak memerlukan informasi tentang pengguna, melainkan memanfaatkan properti
lagu untuk merekomendasikan lagu baru kepada pengguna.
Untuk studi kasus ini, kami akan menggunakan Kumpulan Data Sejuta Lagu. Dataset
berisi informasi tentang sejuta lagu kontemporer seperti metadata lagu, metadata artis,
dan fitur akustik lagu. File dataset tersedia dalam format HDF5. Untuk studi kasus ini,
kami akan menggunakan subset data. Kotak 11.4 menunjukkan kode Python untuk
membaca file H5 dan mengekstrak bidang metadata yang diinginkan ke dalam file CSV.

COMP6725 - Big Data Technologies


Kotak di bawah ini menunjukkan format dan contoh meta-data yang diekstrak ke dalam
file CSV dari kumpulan data asli.

COMP6725 - Big Data Technologies


Kotak 11.5 menunjukkan program Spark untuk menemukan 10 lagu teratas dan 10 artis
teratas setiap tahun. Program ini mengambil sebagai input file CSV yang dihasilkan pada
langkah sebelumnya. Transformasi peta digunakan untuk membagi nilai yang dipisahkan
koma menjadi kata-kata. Baris kosong kemudian disaring. Langkah selanjutnya adalah
memetakan nilai yang dipisahkan koma menjadi (artist_id, artist_name, artist_hotness,
tahun) dan (song_id, song_name, song_hotness, year). Ada artis dengan banyak lagu,
jadi transformasi perbedaan () digunakan untuk menemukan artis unik agar tidak
terulang saat menghitung artis top. Selanjutnya, for loop digunakan untuk menghitung
artis dan lagu top untuk setiap tahun. Langkah selanjutnya adalah mengubah kunci dari
artist_id dan song_id menjadi artist_hotness dan song_hotness yang dilakukan dengan
transformasi peta lain. Namun, beberapa lagu memiliki nilai song_hotness sebagai NaN.
Jadi nilai-nilai ini harus disaring. Operator sortByKey digunakan untuk mengatur entri
dalam urutan menurun dari nilai hotness dan operator take digunakan untuk
mengembalikan daftar 10 lagu dan artis teratas.

COMP6725 - Big Data Technologies


Untuk merekomendasikan lagu-lagu serupa, lagu-lagu tersebut terlebih dahulu
dikelompokkan menjadi 10 cluster. Lagu-lagu dalam cluster tertentu lebih
berkorelasi/mirip satu sama lain dibandingkan dengan lagu-lagu di cluster lain. MLlib
Spark menyediakan implementasi algoritma pengelompokan K-Means. Setelah
mengelompokkan lagu, kami menambahkan informasi klaster yang sesuai dari setiap lagu
ke dalam file CSV yang juga memiliki metadata lagu. Pusat cluster disimpan dalam file
acar. Gambar 11.10 menunjukkan langkah-langkah yang terlibat dalam rekomendasi
lagu.

Pic 10.11 Steps involved in song recommendation


Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016

Untuk merekomendasikan sebuah lagu, pengguna memberikan ID lagu sebagai masukan.


Sistem kemudian mencari file CSV yang berisi informasi cluster untuk menemukan cluster
yang sesuai dan memuat file pickle untuk menemukan pusat cluster yang sesuai.
Langkah selanjutnya adalah menemukan setiap lagu lain di cluster yang sesuai selain dari
lagu input pengguna dan menghitung jarak Euclidean antara setiap lagu dan lagu input
pengguna. Perhatikan bahwa, setelah pengelompokan, ruang pencarian berkurang secara
signifikan dan pencarian ini berpotensi dilakukan secara real-time. Lagu-lagu dalam
cluster kemudian diurutkan menurut jarak Euclidean-nya dengan lagu input pengguna
dan 10 lagu teratas dipilih untuk ditampilkan kepada pengguna.
Kotak 11.6 menunjukkan program Spark untuk mengelompokkan lagu, dan Kotak 11.7
menunjukkan program Spark untuk merekomendasikan lagu serupa.

COMP6725 - Big Data Technologies


COMP6725 - Big Data Technologies
COMP6725 - Big Data Technologies
6. Mengklasifikasikan Digit Tulisan Tangan
studi kasus tentang membangun sistem untuk mengklasifikasikan angka tulisan tangan.
Untuk studi kasus ini, kami akan menggunakan dataset MNIST (Modified National
Institute of Standards and Technology). Basis data angka tulisan tangan MNIST adalah
kumpulan 60.000 gambar angka tulisan tangan yang diambil sampelnya dari dokumen
yang ditulis oleh pegawai Biro Sensus AS dan siswa sekolah menengah Amerika. Digit
telah dinormalisasi ukuran dan dipusatkan pada gambar skala abu-abu ukuran tetap
dengan dimensi 28 x 28 piksel. Setiap gambar memiliki total 784 piksel (28 x 28). Setiap
piksel memiliki nilai antara 0 dan 255 (dengan angka yang lebih tinggi berarti piksel lebih
gelap). File dataset yang digunakan dalam contoh di bagian ini dapat diunduh dari [47].
Ini adalah file CSV yang berisi 60.000 baris (satu kolom untuk setiap gambar) dan 785
kolom (kolom 1-784 yang menunjukkan nilai piksel dan kolom 785 memiliki label gambar
- 0 hingga 9).
Gambar 11.55 menunjukkan komponen sistem klasifikasi digit Kami akan menjelaskan
dua alternatif implementasi sistem berbasis H2O dan Spark. Model klasifikasi dibangun
menggunakan H2O atau Spark dengan data latih. Komponen layanan web membuat

COMP6725 - Big Data Technologies


sistem klasifikasi tersedia sebagai layanan web. Klien Python digunakan untuk menguji
sistem.

Pic 10.12 Digit recognition


Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016

a. Digit Classification with H2O


Kotak 11.27 menunjukkan implementasi Python dari komponen analisis untuk
klasifikasi digit menggunakan H2O. Dalam program ini, kami mengimplementasikan
kelas AnalysisEngine dengan metode untuk melatih model klasifikasi dan membuat
prediksi. Jenis model klasifikasi (Naive Bayes, Random Forest, Deep Learning, GBM)
ditentukan dalam konstruktor kelas.

COMP6725 - Big Data Technologies


Kotak 11.28 menunjukkan implementasi Python dari komponen server untuk
klasifikasi digit menggunakan H2O. Untuk komponen server, kami menggunakan
web framework Flask Python. Ketika komponen server dijalankan, itu membuat
turunan dari kelas AnalysisEngine dari komponen analisis. Komponen server
memperlihatkan titik akhir (/predict). Ketika klien mengirim permintaan HTTP POST
ke titik akhir ini dengan data gambar, fungsi make_prediction dari kelas
AnalysisEngine dipanggil untuk mengklasifikasikan gambar.

Kotak 11.29 menunjukkan klien Python untuk menguji sistem klasifikasi digit. Klien
ini membaca file gambar, mengubahnya menjadi daftar nilai piksel, dan membuat
permintaan HTTP POST ke server dengan data gambar.

COMP6725 - Big Data Technologies


Untuk menguji sistem, jalankan file server.py terlebih dahulu lalu jalankan file
client.py.

b. Digit Classification with Spark


Kotak 11.30 menunjukkan implementasi Python dari komponen analisis untuk
klasifikasi digit menggunakan Spark. Dalam program ini, kami mengimplementasikan
kelas AnalysisEngine dengan metode untuk melatih model klasifikasi dan membuat
prediksi. Tipe model klasifikasi (Naive Bayes, Decision Tree, Random Forest, GBM)
ditentukan dalam konstruktor kelas.

COMP6725 - Big Data Technologies


Kotak 11.31 menunjukkan implementasi Python dari komponen server untuk
klasifikasi digit menggunakan Spark. Untuk komponen server, kami menggunakan
web framework Flask Python. Saat komponen server dijalankan, komponen tersebut
membuat Spark Context dan meneruskannya ke konstruktor kelas AnalysisEngine
untuk membuat instance kelas. Komponen server memperlihatkan titik akhir
(/predict). Ketika klien mengirim permintaan HTTP POST ke titik akhir ini dengan
data gambar, fungsi make_prediction dari kelas AnalysisEngine dipanggil untuk
mengklasifikasikan gambar.

COMP6725 - Big Data Technologies


Untuk menguji sistem, jalankan file server.py terlebih dahulu (bin/spark-submit
server.py) lalu jalankan file client.py (python client.py).

7. Sistem Rekomendasi film


studi kasus sistem rekomendasi film yang menggunakan algoritma rekomendasi berbasis
ALS dan SVD. Untuk mengimplementasikan ALS kami telah menggunakan Spark MLLib
dan untuk SVD kami telah menggunakan pustaka Python-RecSys.

Pic 10.13 Architecture for movie recommendation system


Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016

Gambar 10.13 menunjukkan arsitektur sistem rekomendasi. Dataset yang digunakan


untuk sistem rekomendasi adalah dataset MovieLens. Selain dataset MovieLens, informasi
tambahan ditambahkan ke dataset dengan IMDbPY, sebuah API untuk mengakses
database IMDb. Dari dataset MovieLens, kami menggunakan file berikut: movies.csv,
ratings.csv, dan links.csv. Movies.csv memiliki format: id film, judul, genre. Rating.csv
memiliki format: id pengguna, id film, peringkat, stempel waktu. Links.csv format:
MovieLens movieID, IMDb movieID, TMDb movieID.

Karena ID film MovieLens memiliki hubungan satu-ke-satu dengan ID film IMDb, IMDbPy
digunakan untuk mengambil objek film yang terkait dengan ID film MovieLens. Objek film
berisi daftar sutradara dan daftar anggota pemeran. Untuk sistem rekomendasi film,
sutradara pertama dalam daftar dan sembilan pemeran teratas ditambahkan ke file
links.csv. Dengan ID film, file tautan yang dimodifikasi (links_modified.csv) dapat
digunakan untuk mengambil lebih banyak informasi tentang film untuk presentasi front-
end. Kotak 11.35 menunjukkan kode Python untuk menambahkan detail ke file tautan
menggunakan IMDbPy. File dataset MovieLens dan file tautan yang dimodifikasi diubah
menjadi SparkSQL DataFrames dan disimpan sebagai tabel yang digunakan dalam mesin
rekomendasi pada waktu proses. Kotak 11.36 menunjukkan program Python untuk
menyimpan file dataset sebagai tabel SparkSQL.

COMP6725 - Big Data Technologies


COMP6725 - Big Data Technologies
COMP6725 - Big Data Technologies
COMP6725 - Big Data Technologies
a. Membangun Model ALS
Kami menggunakan Spark MLlib untuk mengimplementasikan algoritma ALS dan
untuk membangun model ALS. Kotak 11.37 menunjukkan kode Python untuk
melatih dan menyimpan model ALS. Model disimpan sebagai file dan kemudian
digunakan dalam mesin rekomendasi. Pendekatan ini efisien karena model hanya
perlu dihitung sekali. Dengan demikian, latensi waktu dari algoritma rekomendasi
berkurang karena pendekatan rekomendasi berbasis model ini.

b. Building SVD Model


Untuk membangun model SVD, kami menggunakan pustaka Python-RecSys yang
menyediakan implementasi algoritma SVD. Kotak 11.38 menunjukkan kode Python
untuk melatih dan menyimpan model SVD. Model disimpan sebagai file dan
kemudian digunakan dalam mesin rekomendasi.

COMP6725 - Big Data Technologies


c. Mesin Rekomendasi
Mesin rekomendasi menerima masukan dari aplikasi web (ID pengguna dan nama
film) dan memberikan rekomendasi menggunakan model ALS dan SVD yang telah
dilatih sebelumnya. Kotak 11.39 menunjukkan kode Python untuk mesin
rekomendasi.
Model ALS memberikan rekomendasi dengan mencari pengguna yang mirip dengan
pengguna yang diberikan dan kemudian memprediksi peringkat untuk film
berperingkat teratas dari pengguna serupa. Film yang direkomendasikan pada
dasarnya adalah daftar film yang memiliki prediksi rating tinggi di antara film-film
berperingkat teratas dari pengguna serupa. Untuk studi kasus ini, daftar film yang
direkomendasikan dibatasi hingga lima.
Model SVD menyediakan dua jenis rekomendasi:
• Merekomendasikan film untuk pengguna tertentu dalam database: Ini
menghasilkan daftar film yang diberi peringkat teratas oleh pengguna lain yang
mirip dengan pengguna target. Ini adalah rekomendasi film yang dipersonalisasi
dan menampilkan daftar film yang lebih sesuai dengan preferensi pengguna.
• Merekomendasikan film berdasarkan film tertentu: Ini adalah jenis rekomendasi
film yang tidak dipersonalisasi yang mengambil film sebagai input dan
memprediksi peringkat film lain dan mengembalikan daftar film tersebut.

COMP6725 - Big Data Technologies


COMP6725 - Big Data Technologies
COMP6725 - Big Data Technologies
d. Web Application
Kotak 11.40 menunjukkan kode Python untuk aplikasi web Flask. Karena
keterbatasan ruang, kami belum menyertakan file HTML, JavaScript, dan CSS untuk
aplikasi web. Gambar 11.58 menunjukkan screenshot dari aplikasi web. Di
antarmuka web, pengguna dapat mencari nama film di bilah pencarian.
Rekomendasi berdasarkan tiga algoritma yang berbeda tercantum dalam tiga kolom
terpisah. Rekomendasi film di kolom kiri merupakan keluaran dari algoritma SVD
berdasarkan user-ID. Hasil dari rekomendasi SVD berdasarkan input nama film
tercantum di kolom tengah. Kolom kanan adalah hasil dari pemfilteran kolaboratif
ALS. Informasi singkat dari setiap film yang direkomendasikan, seperti judul,
peringkat, dua genre teratas, sutradara, dan sembilan pemeran utama film, juga
ditampilkan.
Aplikasi web Flask digunakan untuk melayani file statis HTML, CSS, dan JavaScript
dan bertindak sebagai server, serta menghubungkan mesin rekomendasi backend ke
front end. Kode JavaScript menangani interaksi pengguna dan memulai pemrosesan
backend dengan mengirimkan permintaan HTTP POST ke aplikasi Flask yang pada
gilirannya memanggil fungsi untuk mendapatkan rekomendasi menggunakan model
ALS dan SVD. JavaScript menunggu respons JSON untuk permintaan POST-nya, lalu
mem-parsing respons dan memasukkan informasi ke dalam template HTML.

COMP6725 - Big Data Technologies


COMP6725 - Big Data Technologies
COMP6725 - Big Data Technologies
Pic 10.14 Architecture for movie recommendation system
Source: Big Data Science & Analytics: A Hands-On Approach Basic Statistics., 2016

COMP6725 - Big Data Technologies


SIMPULAN
o Implementasi dan contoh penerapan algoritme ini menggunakan framework
pembelajaran mesin Spark MLlib dan H2O disediakan. Clustering adalah
proses pengelompokan item data yang serupa sehingga item data yang lebih
mirip satu sama lain dari item data lainnya dimasukkan ke dalam satu cluster.
Algoritma pengelompokan k-means mengelompokkan item data ke dalam k
cluster, sehingga semua titik dalam sebuah cluster lebih dekat ke centroidnya
dibandingkan dengan centroid dari cluster tetangga.
o Generalized Linear Models (GLM) adalah generalisasi dari model regresi
linier biasa yang memungkinkan variabel respon yang diskrit, tidak
terdistribusi normal, dan/atau varians non-konstan.
o Dalam Support Vector Machine (SVM), hyperplane margin maksimum
ditentukan, yang memisahkan dua kelas. Selanjutnya, kami menjelaskan
implementasi spesifik pembelajaran mendalam, yang didasarkan pada
jaringan saraf tiruan feed-forward multi-layer yang mencakup beberapa
lapisan neuron yang saling berhubungan.

COMP6725 - Big Data Technologies


DAFTAR PUSTAKA
• Arshdeep Bahga & Vijay Madisetti. (2016). Big Data Science & Analytics: A Hands-
On Approach. 1st E. VPT. India. ISBN: 9781949978001. Chapter 1, 7, 10, and 11.
• https://towardsdatascience.com/step-by-step-twitter-sentiment-analysis-in-python-
d6f650ade58d
• https://towardsdatascience.com/twitter-sentiment-analysis-in-python-1bafebe0b566

COMP6725 - Big Data Technologies

Anda mungkin juga menyukai