Prediksi Kualitas Tidur dari Data Wearable Device
7.3. Konsep Dasar
Pada bagian ini dibahas pengantar konsep-konsep yang dimanfaatkan pada kasus ini. Konsep dibahas dengan disederhanakan agar dapat diikuti pembaca awam.
7.3.1. Klasifikasi Data
Sebagai teknik analisis data, teknik klasifikasi data dikategorikan ke dalam teknik prediksi.
Dengan meproses data dengan format tertentu, teknik ini akan menghasilkan model yang dapat digunakan untuk memprediksi nilai kategorial atau diskret. Data masukan yang dibutuhkan untuk membuat model diilustrasikan pada Gambar 7.2. Pada data yang berformat tabular tersebut, terdapat kolom-kolom (atribut-atribut) prediktor dan kolom/atribut kelas. Jika model dilatih dengan data tersebut, nantinya model akan dapat digunakan untuk memprediksi jenis binatang jika kita memiliki nilai-nilai dari atribut prediktor, yaitu jumlah kaki, punya saya atau tidak, tinggi tubuh, jenis makanan dari binatang. Adapun hasil prediksi jenis binatang yang kita dapatkan, akan bernilai salah satu dari yang tercantum pada kolom Jenis, yaitu burung kutilang, kucing, sapi, dll. Di sini perlu disampaikan bahwa data yang digunakan untuk membuat model klasifikasi dapat saja memiliki semua atribut prediktor bertipe numerik, misalnya jumlah kaki, berat, tinggi, umur, dll.
Gambar 7.2. Ilustrasi data untuk pembuatan model klasifikasi.
Dalam praktek pembuatan model klasifikasi yang sebenarnya, seringkali data yang siap diumpankan ke algoritma klasifikasi belum tersedia. Dari hasil kegiatan pengumpulan data (lihat Bab 1), dihasilkan data mentah yang harus disiapkan/dipraolah terlebih dahulu sedemikian rupa agar diterima oleh algoritma klasifikasi. Untuk membangun model akan dibutuhkan data hasil praolah perlu berukuran relatif besar dengan jumlah rekord/baris yang banyak, misalnya lebih dari 1000, dan memenuhi kriteria tertentu (misalnya tiap nilai kelas direpresentasikan oleh jumlah baris yang seimbang, tidak mengandung nilai atribut yang salah, dll.). Hal tersebut dimaksudkan agar dapat dihasilkan model dengan tingkat akurasi yang baik.
Secara umum, klasifikasi data terdiri dari dua tahap yang utama, yaitu (lihat Gambar 7.3):
• Pertama, pemisahan data masukan (hasil praolah data) secara acak menjadi data training (misalnya 80% dari keseluruhan data) dan uji (misalnya 20%). Kemudian data training diumpankan ke algoritma klasifikasi untuk mendapatkan keluaran berupa model. Terdapat berbagai algoritma klasifikasi yang sudah dikembangkan para peneliti. Seorang data scientist perlu memilih yang paling tepat berdasar data yang diolah, kinerja dan pertimbangan lain yang perlu. Setelah dilatih, model yang dihasilkan oleh algoritma klasifikasi belum tentu berkualitas baik dapat dapat dimanfaatkan, karena itu harus diuji dulu dengan data uji. Salah satu cara untuk mengevaluasi model adalah dengan menghitung akurasi dari model berdasar masukan data uji. Akurasi dihitung dari jumlah baris/rekord yang diprediksi benar dibagi dengan total jumlah rekord. Jika model lolos uji, maka dapt dimanfaatkan di tahap kedua.
• Kedua, penggunaan model untuk mengklasifikasi data baru. Di sini, sebuah rekord yang belum diketahui kelasnya “diumpankan” ke model, yang lalu akan memberikan jawaban
“kelas” hasil perhitungannya. Dalam konteks klasifikasi kemampuan ekonomi orang, misalnya rekord itu memiliki nilai kolom/variabel jumlah penghasilan, kondisi tempat
tinggal, jumlah tanggungan, lingkungan tempat tinggal, dll. Hasil prediksi, misalnya miskin, penghasilan menengah atau kaya.
Gambar 7.3. Proses klasifikasi data.
Terdapat berbagai algoritma klasifikasi, namun sebagai pengenalan, di sini hanya akan dibahas Jaringan syaraf tiruan (JST) yang dimanfaatkan pada penelitian (A Sathyanarayana, 2016). Pada penelitian itu, model klasifikasi yang berbasis JST dibandingkan dengan model Logistic Regression dan didapatkan hasil bahwa model yang berbasis JST berkinerja lebih baik.
7.3.2. Jaringan Syaraf Tiruan dan Multilayer Perceptrons
Jaringan syaraf tiruan (JST) merupakan salah satu dari tools dan pendekatan yang digunakan pada algoritma-algoritma Machine Learning. JST banyak dimanfaatkan pada kehidupan sehari- hari, misalnya untuk mengenali bentuk-bentuk gambar/citra, mengenali kata-kata (hasil tulisan tangan), penyortiran email spam, diagonis penyakit23, dll.
JST merupakan sistem yang dapat “belajar” (dari data) melalui serangkaian komputasi. JST menggunakan jaringan fungsi-fungsi untuk memahami dan menterjemahkan data masukan dalam format tertentu menjadi keluaran yang diinginkan, yang biasanya dalam bentuk berbeda
23 https://deepai.org/machine-learning-glossary-and-terms/neural-network
(dibanding data masukan). Konsep JST ini diinspirasi oleh otak manusia dan cara kerja jaringan yang menghubungan berjuta-juta neuron pada otak (Han, J., Pei, J., & Kamber, M. ,2012). Pada jaringan itu, neuron-neuron bekerja bersama-sama dalam rangka memahami masukan- masukan dari indera manusia.
Pada JST, sebuah neuron dimodelkan sebagai model matematika dan dinamakan perceptron yang ditunjukkan pada Gambar 7.4.
Gambar 7.4. Model sebuah perceptron: (a) versi detil, (b) versi yang disederhanakan.
Pada Gambar 7.4, yin dan Y direpresentasikan dengan rumus-rumus di bawah ini.
Untuk yin,
yin = x1.w1 + x2.w2 + x3.w3…xm.wm + b (1)
dimana wi menyatakan bobot (untuk variabel masukan, xi) dan b adalah bias. Secara umum, yin
dapat dituliskan sebagai:
𝑦𝑖𝑛 = ∑𝑚𝑖=0𝑥𝑖. 𝑤𝑖+ b (2) Sedangkan keluaran dari perceptron, Y:
Y = f(yin) (3)
dimana f biasa dinamakan fungsi aktivasi. Fungsi aktivasi tersebut bermacam-macam, diantaranya adalah fungsi linear, hyperbolic tangent, fungsi logistik dan rectified linear activation. Sebagai contoh di bawah ini diberikan persamaan dari fungsi logistik
𝑓(𝑥) = 𝐿
1+𝑒−𝑘(𝑥−𝑥0) (4) dimana
x = variabel dengan domain bilangan riil dengan rentang minimun tak terhingga sampai positif tak terhingga
L = nilai kurva (f(x)) maksimum
x0 = nilai x yang memberikan titik tengah kurva k = steepness pada kurva.
Jika L = 1, k = 1 dan x0 = 0, maka fungsi tersebut dinamakan fungsi sigmoid logistik standard dan kurvanya diberikan pada Gambar 7.5, dimana sumbu horisontal menyatakan nilai x, sedangkan sumbu vertikal adalah nilai f(x).
Gambar 7.5. Kurva fungsi sigmoid logistik standar.
Dari perasamaan 1, 2 dan 3, dapat diterpretasikan bahwa sebuah perceptron akan menghasilkan sebuah nilai keluaran yang merupakan fungsi dari hasil penjumlahan semua variabel masukan (x1….xm) dikalikan dengan bobot-bobot tiap variabe (w1….wm) ditambah dengan bias (b). Jika fungsi aktivasi yang digunakan adalah fungsi sigmoid logistik standar (Gambar 7.5), maka Y akan bernilai 0 sampai dengan 1.
Sebagaimana otak manusia yang terdiri dari berjuta-juta neuron yang saling tersambung dan membentuk jaringan, untuk keperluan analisis data, JST juga umumnya dirancang dengan menggunakan banyak perceptron yang tersambung dan membentuk jaringan. Pada jaringan itu, keluaran dari sebuah perceptron dapat menjadi masukan bagi perceptron di belakangnya.
Dalam hal perceptron menerima masukan yang berupa keluaran dari perceptron lain, maka persamaan 3 tetap berlaku, hanya saja nilai yin diperoleh dari nilai-nilai Y pada perceptron di depannya.
Salah satu contoh JST adalah Multilayer Perceptrons yang disingkat menjadi MLP. MLP termasuk teknik pada Machine Learning yang tergolong ke dalam kelompok deep learning yang sederhana.
Contoh MLP diberikan pada Gambar 7.6 (untuk penyederhanaan, b tidak digambarkan pada jaringan tersebut).
Gambar 7.6. Model jaringan syaraf tiruan (Han, J., Pei, J., & Kamber, M. ,2012).
Sebagaimana ditunjukkan pada Gambar 7.6, MLP memiliki tiga komponen utama yaitu input layer (lapis masukan), hidden layer (lapis tersembunyi), dan output layer (lapis keluaran) dengan penjelasan sebagai berikut:
• Input layer merupakan layer yang menerima data berformat vektor dengan jumlah elemen sesuai dengan jumlah atribut prediktor yang akan diproses. Pada model klasifikasi, tiap elemen vektor (xi) disambungkan ke tiap atribut prediktor. Jika misalnya terdapat 4 atribut prediktor, akan terdapat 4 elemen vektor pada lapis masukan.
• Hidden layer dapat terdiri dari satu atau lebih lapis. Tiap lapis berisi sejumlah perceptron.
Jika lapis tersembunyi hanya terdiri dari satu lapis (Gambar 7.6), masukan tiap perceptron tersambung ke elemen vektor (xi) pada lapis masukan, sedangkan luaran tiap perceptron tersambung ke lapis luaran. Tiap hubungan dari perceptron ke lapis masukan maupun lapis luaran memiliki bobot (wij atau wjk) tersendiri. Jumlah lapis tersembunyi dan jumlah perceptron pada tiap lapis yang tepat biasanya didapatkan melalui serangkaian eksperimen (dari beberapa konfigurasi yang diuji-coba, dapat dipilih MLP yang memberikan akurasi terbaik dengan komputasi yang cepat). Pada tahap pelatihan, bobot-bobot pada semua perceptron akan dihitung dari data pelatihan sedemikian rupa sehingga pada akhir pelatihan dihasilkan MLP dengan nilai bobot-bobot tertentu.
• Output layer terdiri dari satu atau lebih perceptron. Penentuan jumlah perceptron ini biasanya juga didasarkan pada eksperimen (dari beberapa konfigurasi yang diuji-coba, dapat dipilih MLP dengan kinerja terbaik). Jika nilai yang akan diprediksi terdiri dari dua nilai (0 atau 1), pada lapis keluaran dapat digunakan satu perceptron yang menghasilkan luaran dengan nilai yang mendekati 0 atau 1.
Pada MLP itu, nilai keluaran tiap perceptron pada output layer (Ok) dihitung dari keluaran perceptron- perceptron pada hidden layer. Tiap perceptron pada hidden layer sendiri, memproses masukan dari data berformat vektor (x1….xn) untuk menghasilkan nilai keluarannya.
Jika MLP digunakan untuk klasifikasi data, sebagaimana ditunjukkan pada Gambar 7.3, MLP perlu dilatih dengan menggunakan data training. Pada MLP, tujuan dari pelatihan adalah untuk menghitung bobot-bobot pada hidden layer maupun output layer. Proses pelatihan tersebut diilustrasikan pada Subbab 7.4.3. Setelah model terbentuk, model juga perlu diuji tingkat akurasinya dengan data uji.