Showing posts with label datasains. Show all posts
Showing posts with label datasains. Show all posts

Monday, May 31, 2021

Data Jalan Kaki, Tidur, dan Detak Jantung September 2020 - Maret 2021

September 2020 sampai dengan maret 2021 adalah bulan-bulan terakhir saya menjalani PhD di JAIST, Kota Nomi, Prefektur Ishikawa di Jepang. Kebetulan, di akhir september 2020 saya membeli mi band 4 yang murah meriah. Gelang tersebut memuat sensor langkah (jalan kaki), waktu tidur, dan detak jantung (BPM, beat per minute) selain data lainnya. Berikut saya sajikan data tersebut ketika berjuang menyelesaikan tahapan-tahapan terakhir studi S3 di JAIST.

Setting alat

Tidak ada yang spesial dalam mengkonfigurasi mi band saya. Hanya saja, saya mengeset "sleep assistant" pada "heart rate monitoring" (Profile > Mi Smart Band 4 > Heart rate monitoring). Selain itu saya off-kan semua. Dengan cara ini, sensor deteksi waktu tidur akan lebih akurat dan umur baterai band lebih panjang. Biasanya saya mengisi catu daya (charge) band saya sekitar sebulan sekali. Lebih kurang setiap 28 hari sekali.

Visualisasi data dilakukan dengan bantuan libreoffice Calc. Fitur yang dipakai adalah pivot table dan group and outline. Berikut datanya.

Data langkah kaki



Data rata-rata langkah kaki per bulan; distance dalam meter, calories dalam kcal

Sebagai informasi tambahan, jarak antara rumah (apato) dan lab di kampus hanya 200 m. Hanya saja, apato saya berlokasi di lantai 5 (tidak ada lift), sedang lab saya ada di lantai 9 (ada lift). Dengan kondisi di tempat terpencil demikian justru saya masih bisa menjaga langkah jalan kaki sekitar delapan ribu langkah per hari.

Data waktu tidur (deep sleep, shallow sleep, total)

Data lama tidur September 2020 - Maret 2021

Data rata-rata lama tidur, mulai tidur, dan bangun tidur

Dari data tidur di atas nampak tidak ada perubahan berarti ketika mengerjakan disertasi. Saya masih bisa tidur normal (6-9 jam per hari), bahkan di malam menjelang ujian pre-defense (1 Desember 2020) dan final defense (2 Februari 2021). 

Data detak jantung (heartrate, beat per minutes [bpm])

Mean				65.1039860577353
Standard Error			0.044167266977505
Mode				75
Median				63
First Quartile			57
Third Quartile			74
Variance			87.307653868568
Standard Deviation		9.34385647731
Kurtosis			1.00227156060073
Skewness			0.877115460025224
Range				101
Minimum				40
Maximum				141
Sum				2913794
Count				44756

Data detak Jantung tidak menunjukkan perubahan yang berarti. Saya juga kesulitan untuk menginterpretasikan data di atas. Kedepannya, mungkin hanya data langkah kaki dan waktu tidur yang dijadikan rujukan utama untuk memvisualisasikan pola hidup.

Penutup

Tujuan utama visualisasi data jalan kaki, tidur, dan detak jantung ini adalah untuk mengetahui pola hidup saya di akhir studi S3. Saya ingin membandingkan data saat sekolah tersebut dan data saat mulai bekerja (April 2021). Data selanjutnya akan dipublikasikan juga jika memungkinkan.

Update:  

Wednesday, March 25, 2020

Apa bedanya training, validasi, development dan test set ?

Dalam sebuah seminar/konferensi ilmiah, saya bertanya kepada pemateri: Kenapa data yang dipakai untuk validasi dan test sama? Menurut beliau, istilah validasi dan test dalam machine learning sama. Menurut saya ini salah. Data validasi tidak boleh dipakai untuk test (karena tentu saja, hasilnya akan lebih bagus). Data validasi sama dengan data development, keduanya, validation dan development, merupakan istilah yang sama untuk "tuning model" dari hasil training.

Partisi data Training, Validasi, dan Test (sumber gambar: disini)

Merujuk pada StackOverflow:

Wednesday, February 26, 2020

Menghitung rataan dengan mengabaikan nilai nol di Python Numpy

Ada kalanya kita ingin menghitung nilai rata-rata dari suatu data, namun kita ingin mengabaikan (skip) jika
ada nilai 0 (atau kosong, atau NaN, Not a Number) dalam data tersebut. Screencast di bawah ini menjelaskan tentang hal tersebut.

Thursday, March 28, 2019

Data yang besar mengalahkan algoritma yang baik

Dalam sebuah workshop yang saya ikuti setahun dua tahun yang lalu di Trieste, seorang pemateri dengan pedenya menyampaikan: "bigger data win over good algorithm", data yang besar mengalahkan algortima yang baik. Saya tercengang. Benarkah...? Selama sekolah, S1~S2, saya diajari dan dituntut untuk menghasilkan algoritma yang baik dari data pengukuran fisis untuk aplikasi kontrol, prediksi, diagnosa dan lain sebagainya. Namun sekarang paradigmanya berubah, bukan bagaimana meng-improve algoritma, tapi mempebesar jumlah data. Tidak sepenuhnya benar memang, namun ini jauh lebih mudah. Akan lebih mudah mengakuisisi lebih banyak data daripada mengimprove/memodifikasi algoritma yang biasanya membutuhkan matematika yang cukup rumit.

Benar adanya, tak semata-mata algoritma/metode yang baik, tapi juga data yang banyak. Gampangannya, orang yang yamg "pintar" tapi jarang belajar dibanding dengan orang yang "rajin" belajar dari banyak data. Pengalaman menunjukkan, tipe orang disebut terakhir lebih banyak berhasilnya daripada tipe orang yang disebut pertama.

Analogi lagi, data vs algoritma: mana yang lebih penting adalah seperti membandingkan mana yang lebih dulu: telur atau ayam. Awalnya saya, mungkin seperti kebanyakan orang juga, berpikiran telur lebih dahulu. Alasannya: telur lebih rigid, lebih statis, dan lebih kecil daripada ayam. Namun hasil penelitian membuktikan bahwa ayam lebih dahulu daripada telur (artinya Tuhan menciptakan ayam dulu, ini lebih masuk akal). Begitu juga dengan data vs algoritma: data-lah akhirnya yang menang, tentunya data yang banyak, big atau bahkan very big.

Jadi tunggu apa lagi? Cari data sebanyak-banyaknya, seakurat mungkin! Mengumpulkan data tidak sesulit membangun algortima. Kalau membangun algortima, kita butuh mikir exktra, menurunkan rumus matematik, dan mengimplementasikannya dalam bahasa pemrograman. Sedangkan untuk mengumpulkan data, kita cuma butuh waktu, keuletan, dan ketekunan. Contohnya untuk data teks, kita perlu sabar dan rajin mengumpulkan kalimat, tokenisasi, mengetik dan sebagaiknya. Untuk data suara, kita perlu merekam, mengedit dan memanipulasi (tambahkan noise, hilangkana noise, dsb). Jauh lebih mudah untuk memperbanyak data daripada memperbaiki algoritma.

Garbage In Garbage Out
Salah satu prinsip yang penting dalam machine learning dan pengenalan pola adalah "data yang baik", berkualitas. Jika data yang kita masukkan adalah sampah, maka hasilnya juga sampah. Maka, selain memperbanyak data, yang harus kita perhatikan adalah kualitas data tersebut. Jangan sampai data yang kita latih, misal dengan deep learning, merupakan data sampah, sehingga hasilnya juga sampah. Disinilah pentingnya preprocessing.

Berapa data yang "besar" itu?

Pertanyaanya selanjutnya, jika data yang besar mengalahkan algoritma yang baik, seberapa besar data yang besar itu? Ian Goodfellow et al. dalam bukunya "Deep learning" berargumen sebagai berikut,
As of 2016, a rough rule of thumb is that a supervised deep learning algorithm will generally achieve acceptable performance with around 5,000 labeled examples per category, and will match or exceed human performance when trained with a dataset containing at least 10 million labeled examples. Working successfully with datasets smaller than this is an important research area, focusing in particular on how we can take advantage of large quantities of unlabeled examples, with unsupervised or semi-supervised learning.
 Jadi, 5000 data yang terlabeli dengan benar merupakan data minimal dari sisi best practice. Tenju saja, semakin besar semakin baik.

Referensi:
  1. Alon Halevy, P. Norvig, F. Pereira, "The Unreasonable Effectiveness of Data". Available online:https://static.googleusercontent.com/media/research.google.com/ja//pubs/archive/35179.pdf
  2. https://www.datasciencecentral.com/profiles/blogs/data-or-algorithms-which-is-more-important
Related Posts Plugin for WordPress, Blogger...