web analytics

Perlombongan Data tu apa?

Saya menerima banyak soalan mengenai ‘data mining’ atau ‘perlombongan data’. Tetapi kadang-kala, soalan itu mencerminkan bahawa mereka terlupa tentang asas dan konsep perlombongan data. Kita selalu tenggelam dalam takrifan panjang lebar dari jurnal atau media seperti bidang ini sangat kompleks. Penggunaan rumus yang mewakili pseudokod algoritma kompleks, atau guru saya Prof. Emeritus Dr Haji Abd Razak Hamdan) lebih gemar memanggilnya alkhwarizmi mungkin menjauhkan kawan kawan ‘non-IT’ dari bidang ni.

Muḥammad ibn Mūsā al-Khwārizmī, Arabized as al-Khwarizmi with al- and formerly Latinized as Algorithmi, was a Persian polymath who produced works in mathematics, astronomy, and geography. Around 820 CE he was appointed as the astronomer and head of the library of the House of Wisdom in Baghdad

https://en.wikipedia.org/wiki/Muhammad_ibn_Musa_al-Khwarizmi

Jadi, hantaran saya kali ini cuba menerangkan perlombongan data, apa kaitannya dengan Artificial Intelligence (AI) dan Machine Learning (ML) ( ‘Pembelajaran Mesin’), semudah yang mungkin. Jika sdr kehendaki penerangan yang lebih ilmiah, boleh saja Google Scholar dan cari penerangan yang lebih formal dan akademik.

Untuk menjawab soalan mereka, lazimnya saya tanya mereka kembali dengan soalan demi soalan. Saya mula dengan, kenapa manusia melombong? Apa yang dilombong?

Jawapan lazim: semestinya untuk mencari sesuatu yang berharga, untuk menambah laba kekayaan, seperti bijih besi, emas, berlian, permata dan sebagainya termasuk petroleum, gas asli dan air. Wikipedia menerangkan bahawa perlombongan ialah aktiviti mengeluarkan galian atau bahan geologi berharga lain dari bumi. Pelombong bermaksud orang yang mengerjakan lombong. Lombong bermaksud lubang atau gelombong iaitu sebuah lubang seperti terowong dari sebuah bukit atau dari sebuah tebing.

Maka samalah, Perlombongan Data ialah aktiviti mengeluarkan ‘galian berharga‘ dari lombong. Lombong kali ini , bukanlah sebidang tanah, sungai, lembah atau bukit tetapi apa jua perkakasan ( ‘hardware’) yang menyimpan data digital seperti ‘pangkalan data’, ‘laman Web’ , twitter, korpus seperti buku digital, quran digital, video, imej, gambar digital dan sebagainya. Apa saja kandungan digital, termasuk bacaan suhu dan rekod jatuh naik saham seperti Kuala Lumpur Stock Exchange, adalah lubuk data dan boleh dijadikan lombong data.

Soalan seterusnya, Kalau melombong di Kelantan dapat emas, apa yang berharga dari lombong data?

Jawapannya ialah maklumat atau pengetahuan yang nilainya, apabila digunakan dengan betul, pada waktu yang betul, akan menyebabkan perolehan keuntungan yang signifikan atau menjimatkan kos operasi.

Kenapa maklumat sangat berharga ?

Bayangkan jika anda adalah seorang pelabur saham. Seorang saintis data menggunakan teknik perlombongan data dan mendapat satu pola tersorok (maklumat) yang meramal, bahawa esok, saham Syarikat A akan naik dan saham Syarikat B akan jatuh teruk. Berdasarkan kepada analisis sainstis data dan pakai domain, anda pun jual kesemua saham Syarikat A dan duit hasil jualan itu digunakan untuk membeli saham Syarikat B. Lusa, anda mendapat keuntungan yang sangat banyak.

Jadi, bila melombong data, kita mencari ‘maklumat’ yang boleh menjana duit ATAU menjimatkan duit ATAU mendana bisnes, ATAU menyelamatkan nyawa (lombong data perubatan). Bukankah dari duit yang terhasil atau tersimpan hasil penjanaan dan penjimatan boleh digunakan untuk membeli emas dan berlian juga?

Hasil Perlombongan Data Perlu Sampai Kepada Orang yang Betul pada Waktu yang Betul

– Pengurusan Pengetahuan

Pola atau maklumat yang ditemui hasil perlombongan data hanya berguna apabila digunakan dengan betul, pada waktu yang betul, oleh orang/organisasi yang betul.

Jika saya melombong data saham dan menjumpai pola saham yang terbaik untuk meramal turun naik saham, tetapi saya bukan orang/organisasi yang betul untuk menggunakan pola itu seoptima mungkin, maka pengetahuan itu tidak membawa manfaat pada saya. Pengetahuan (i.e., pola ) hanya berguna apabila diamalkan/digunakan. Ibarat pokok yang tidak berbuah, berguna tetapi tidak berfungsi seperti pokok yang berbuah.

Pola saham ini jadi TIDAK BERGUNA kepada saya kerana saya tidak tahu atau tidak mampu menggunakannya, kerana saya bukan pelabur. Kalau nak melabur pun, saya tak ada pengetahuan dan modal yang boleh memberi impak besar. Saya hanya mengkaji algoritma. Kalau saya buat sebarkan dalam media sosial bahawa esok saham Syarikat A diramal akan jatuh, adakah saya akan selamat dari saman kerana membuat spekulasi? Saya kurang arif mengenai isu ini.

Nabi Muhammad SAW mengajar kita satu doa, “Ya Allah, aku bermohon, lindungi aku daripada ilmu pengetahuan yang tidak berguna, daripada hati yang tidak khusyuk.. “

Perkara utama sebelum melombong data, pastikan ada ‘pengguna’ hasil perlombongan data anda. Pastikan pengguna itu adalah orang yang membuat keputusan atau orang yang dekat/berpengaruh seperti penasihat kepada pembuat keputusan, ATAU hasil perlombongan data akan diguna pakai oleh sistem lain.

Soalan seterusnya, bagaimana melombong data?

Jika kita perhatikan, proses melombong data ni lebih kurang macam melombong bahan mineral juga. Proses ini boleh dibahagikan kepada empat fasa besar:

  1. Perolehan
  2. Pra-pemprosesan
  3. Pemprosesan
  4. Pakai/Guna (deployment)

Fasa perolehan ialah fasa menentukan sumber data atau kawasan perlombongan. Bila dah kenalpasti, baru kita mohon data dari tuan data atau tuan tanah (e.g., Pejabat Tanah) kan? Dah dapat permit atau lesen dari kerajaan atau tuan punya data, barulah proses menggali atau perolehan data (contohnya memuat turun data dari pangkalan data) dilaksanakan.

Bila dah dapat data mentah dari sumber, barulah Fasa Pra-Pemprosesan bermula. Fasa Pra-Pemprosesan adalah fasa yang memenatkan. Fasa ini selalunya memakan masa antara 60-80% dari masa perlombongan data. Antara aktiviti dalam fasa ini ialah proses pembersihan (pemisahan dari tanah/kotoran = pembersihan data mentah) untuk mendapatkan data bersih daripada ‘data mentah’. Gambar di bawah adalah contoh emas mentah.

Seperti emas dan bahan geologi lain yang tersorok di dalam perut bumi, emas mentah ni tersorok dan disaluti tanah, lumpur, pasir, seut, batu dan sebagainya. Pelbagai teknik digunakan untuk memisahkan emas mentah dari kotoran. Samalah dalam konteks perlombongan data, data bersih perlu dipisahkan dari kotoran.

Sumber imej: Facebook Pembeli Emas Mentah

Sebab itu akademia memanggil ‘maklumat bernilai’ di dalam timbunan data ini sebagai ‘hidden pattern’ atau ‘pola tersorok’ kerana emas dan bahan galian tersorok dan diselaputi kotoran.

Susah juga membersihkan data kerana melibatkan pencarian penyelesaian kepada isu seperti data yang tak lengkap, data yang ralat (contohnya ada nombor IC pelanggan yang lahir tahun 1511 sebagai pelanggan online) dan macam macam kepelikan pada data yang disebabkan oleh kesilapan manusia atau ralat sistem atau, sesuatu yang misteri (Kalau misteri sangat, delete je data tu, jgn buang masa cari ustaz atau pengkaji paranormal utk bersihkan data).

Setelah data sudah dibersihkan dari segala jenis kepelikan maka sampailah masa kita menggunakan ilmu dari bidang machine learning untuk memproses data. Fasa Pemprosesan Data lazimnya ialah menggunakan algoritma machine learning (ML) untuk mencari pola tersorok. Jenis jenis algoritma ni kita bincang kemudian dalam posting saya yang lain. Pola ni boleh dalam macam macam bentuk. Ada pola dalam bentuk association rules atau hubungan, ada dalam bentuk ramalan, ada dalam bentuk pengelompokan dan ada juga dalam bentuk jujukan. Nantilah kita citer panjang pasal ni yea. Setelah menggunakan algoritma ML, hasil ini digunakan dalam fasa seterusnya iaitu Fasa Pakai/Guna.

Machine Learning adalah sub-bidang dari bidang Kecerdasan Buatan atau (Artificial Intelligence). Jadi, hubungan di antara Perlombongan Data dan Kecerdasan Buatan ialah, sub-bidang kecerdasan bidang seperti Machine Learning dan Optimization sering digunakan untuk mencari pola tersorok dan mengoptimumkan gelintaran.

Ingat, TIDAK WAJIB guna algoritma Machine Learning untuk cari pola, ada kalanya kita guna teknik dari statistik. Kebarangkalian (probability), kaedah pengesahan (validation), regression dan banyak lagi teknik menjadi asas kepada banyak algoritma ML, menjadikan bidang statistik antara tiang seri machine learning. Untuk belajar ML, tak perlu tahu stat dan math hingga level degree, form 5 pun cukup dah utk memahami machine learning. Yang mana advanced tu, boleh sambung belajar di Udemy atau Youtube.

Seperti yang diterangkan, pola boleh dalam pelbagai bentuk. Antara bentuk yang saya tidak senaraikan di atas ialah dalam bentuk PETUA. Ya.. petua…

Guru saya kata (saya lupa guru yang mana), petua ialah pola yang diperolehi hasil pemerhatian orang tua-tua. Oleh itu PETUA adalah singkatan dari “PEmerhatian orang TUA”. Apa contoh petua yg terkenal? Lihat contoh petua yang saya dapat dari Laman Web Puspanita. Jadi, antara hasil perlombongan data juga adalah petua, tetapi bukanlah ‘PEmerhatian orang TUA‘ tapi PETUA kali ini ialah singkatan bagi ‘PEraturan Tersirat Ungkapan Algoritma.

Ungkapan bermakna “Susunan kata yg mempunyai maksud tertentu dan digunakan dlm tulisan dan juga dlm pertuturan”.

Faham dah apa itu perlombongan data? Bahasa mudah saya, perlombongan data ialah aktiviti mengeluarkan maklumat bernilai yang selama ini kita tidak nampak atau tidak diketahui dari lambakan, timbunan dan lautan data.

Susah ke nak belajar perlombongan data? Tak susah lah. Macam naik basikal juga, ia memerlukan latihan. Ia memerlukan masa. Ia boleh dipelajari. Ia boleh dikuasai. Guna Excel pun boleh buat perlombongan data!! Dan berdoalah agar Allah permudahkan. InshaAllah.. semua jadi mudah.

Occupational Hazard In Data Analytics?

Whenever I had a chance during my lecture, I will advise my students that based on my experience, don’t be overconfident on your results and conclusions that the decision-makers will accept your analysis without any sort of argument and confrontation during the presentation.

We as the analyst, have to equip our selves not just with the technical skills but also soft skills, i.e. communication and political skills. Political skill is defined as: “The ability to effectively understand others at work, and to use such knowledge to influence others to act in ways that enhance one’s personal and/or organizational objectives” (Ferris, Treadway et al., 2005).

In the context of data science, the ‘others’ are usually the end-user of your data product, and whoever will be affected by the decisions made that will be greatly influenced by your analysis.

Why? Because our conclusions are derived from facts, from a single source, a single point of truth. We don’t assume or judge, we show patterns and insights which are unknown, hidden in the huge data. The analyst doesn’t have any hidden agenda. Just doing our job. What we present is the result of applying an algorithm. But, not everybody is going to easily accept, appreciate, and like your analysis. Why? To answer the second why is not easy. Usually is not about you. Nothing personal. It has been always ‘business’. To answer the second why question, I guess it is where some little readings on science politics and behavioural science will become handy.

For example, a good case study is the Rebekah Jones case. Ms. Jones, she is a real person (this case is not a fiction), who was the architect and manager of Florida’s COVID-19 dashboard. Her dashboard was fantastic. Florida’s COVID-19 dashboard, created by a team of Florida Department of Health data scientists and public health officers led by Jones, was praised by White House officials for its accessibility. Jones packaged data for academic and private researchers who are interested to do predictive analytics and explore impacts based on the collected data.

However, the US was divided between to stay closed (just like Malaysia’s Movement Control Order) or to open their states and do businesses as usual. As Florida starts to reopen, Ms. Jones announced she’d been removed from her position. Rebekah Jones said in an email to CBS12 News that her removal was “not voluntary” and that she was removed from her position because she was ordered to censor some data, but refused to “manually change data to drum up support for the plan to reopen. For further information, please read the news at CBS and Florida Today.

And see what The Daily Show did…

“Data doesn’t lie, but now you can …. – Excel: Coronavirus Edition

The Rebekah Jones case is one living example of the occupational hazard of a data scientist, who suffers as a result of doing her job. As a result of being truthful and showing bravery to uphold the highest standard of integrity. May God bless her and hope we will have the same courage to ‘politely refuse’ to take orders that will ‘modify’ data, that will ‘modify’ the truth.

Understanding Terms in Data Analysis

Data analysis is a process of inspecting, cleansing, transforming and modeling data with the goal of discovering useful information, informing conclusions and supporting decision-making.

Data analysis has multiple facets and approaches, encompassing diverse techniques under a variety of names.

Data mining is a particular data analysis technique that focuses on statistical modeling and knowledge discovery for predictive rather than purely descriptive purposes.

Business intelligence covers data analysis that relies heavily on aggregation, focusing mainly on business information.

In statistical applications, data analysis can be divided into descriptive statistics, exploratory data analysis (EDA), and confirmatory data analysis (CDA).

EDA focuses on discovering new features in the data while CDA focuses on confirming or falsifying existing hypotheses.

Predictive analytics focuses on the application of statistical models for predictive forecasting or classification.

Text analytics applies statistical, linguistic, and structural techniques to extract and classify information from textual sources, a species of unstructured data.

All of the above are varieties of data analysis.

Source: Wikipedia

Testing Trinket

TRINKET adalah Web Aplikasi yang menyediakan Persekitaran Pengaturcaraan yang direka bentuk untuk pendidikan secara PERCUMA.

Trinket membolehkan sesiapa sahaja mengaturcara dan melarikan aturcara pada apa sahaja jenis pelayar Web (Browser) dan pada apa jua jenis mesin komputer seperti Mac atau Dell.

Lihat contoh di bawah. Cuba anda klik pada mana mana butang.

Perihal Mengaturcara..

Menu Utama Python

Komputer adalah sejenis mesin elektronik yang tidak mampu berbuat apa-apa tanpa aturcara atau yang lebih popular sekarang dengan istilah app atau aplikasi atau perisian atau program atau kod. Apa jua istilah yang anda gunakan, perisian atau aplkasi dibina berasaskan kepada algoritma tertentu:

Algoritma adalah set arahan, peraturan atau prosedur yg diikuti utk menyelesaikan masalah. 
Istilah ini lebih popular merujuk kepada algoritma komputer.

Komputer tidak dapat berfikir sendiri untuk menyelesaikan masalah. Contoh masalah ialah masalah untuk berkomunikasi dengan ramai kawan serentak dan kawan kawan sentiasa mengetahui status sosial anda. Maka pengaturcara membangunkan Facebook, Whatsapp, Messenger dan sebagainya yang membolehkan masalah komunikasi tersebut di atasi.

Jadi, mengaturcara adalah mengenai memberi arahan kepada komputer apa yang perlu komputer perlu lakukan untuk anda, satu demi satu.

Komputer akan membaca arahan anda satu baris demi satu baris dan melaksanakannya. Jika anda menggunakan Python dan menulis kod >>> print ‘Aku hensem’ maka komputer akan memaparkan output    Aku hensem    walau pun komputer tak bersetuju sangat dengan pernyataan anda tadi.

Jadi, untuk mengaturcara anda kena pelajari dua perkara penting iaitu 1) Sintaks bahasa (lebih kurang tatabahasa) dan 2) kaedah penyelesaian masalah berkomputer.

Menu Utama Python

Menggunakan PyCharm

Tutorial ini menggunakan PyCharm untuk mengaturcara. Jika anda belum memasang PyCharm, anda boleh muat turun dari laman ini.

Apabila anda berjaya memasang Python dan PyCharm Community Edition, anda boleh larikan PyCharm dan anda akan perolehi antaramuka seperti di bawah. Sekarang, anda klik pada ‘Create New Project’ dan namakan projek anda ini Salam.

pycharmInterface1 pycharmInterfaceSetelah anda berjaya mencipta Projek bernama Salam, anda akan lihat nama Projek Salam muncul dalam senarai Projek.  Antaramuka di atas ini, anda lihat ia terbahagi kepada tiga bahagian iaitu dari sebelah kiri atas ada Senarai Projek, di sebelahnya tempat anda mengekod dan di bawah adalah Python Console.

Untuk menggunakan pyCharm untuk mempelajari Python, ada tiga alat: 1) Menggunakan fail Python; 2) Menggunakan Python Console dan 3) Menggunakan Terminal

Kita gunakan fail Python jika kita ingin membangunkan suatu program lengkap yang boleh dipindahkan atau disalin dengan mudah. Kita gunakan Python Console yang disediakan dalam PyCharm jika kita ingin menguji suatu kod dan mendapatkan hasilnya dengan pantas.

Sebagai contoh, lihat imej di bawah. Saya telah mencipta fail bernama Salam.py dalam projek Salam. Cara mencipta fail mudah. Pada senarai projek, anda hanya perlu klik kanan pada tetikus anda dan pilih jenis fail Python. Beri nama yang sesuai dan kemudian fail tersebut akan disediakan oleh PyCharm. Anda boleh mengaturcara.

Setelah anda selesai mengaturcara seperti di bawah, anda hanya perlu tekan butang PLAY berwarna hijau di sudut atas kanan antara muka dan PyCharm akan mengeluarkan output aturcara anda. Cuba anda perhatikan fail Salam saya. Untuk mengeluarkan output berupa teks ‘salam’, aturcara nya hanyalah print ‘salam’

Salam

Kaedah kedua dalam mempelajari Python adalah dengan menggunakan Python Console. Sila anda lihat imej di atas, pada sudut kiri di bawah ada perkataan 4: Run  6: TODO, Python Console dan Terminal.

Cuba and klik pada Python Console. Anda akan lihat tetingkap Python Console akan muncul. Pada simbol >>>  cuba anda taip print ‘salam’ dan tekan enter.

Anda akan dapat output yang sama seperti menggunakan faile Salam.py di atas.

salamConsole

Kaedah ke tiga adalah menggunakan Terminal. Klik pada Terminal di bawah. Apabila muncul suatu antaramuka seperti di bawah, taip python. Jika python telah dipasang dengan betul, sistem akan memaparkan versi python yang digunakan seperti yang dipaparkan di bawah. Kemudian anda nampak >>> ? Anda boleh gunakan untuk menguji kod dengan menaip aturcara dlm bahasa python seperti

>>> print 'assalamualaikum bro..'

terminalCube try test…

Update

>>> record={ ‘name’ : ‘Anas’, ‘gender’ : ‘male’, ‘age’ : 18, ’email’ : ‘anas@gmail.com’}

>>> db.profiles.update({’email’:’anas@gmail.com’},{‘$set’:record},upsert=True)

{u’n’: 1,
u’nModified’: 0,
u’ok’: 1,
‘updatedExisting’: False,
u’upserted’: ObjectId(‘5459a7e6ce2e87461eb5778e’)}

>>> db.profiles.update({’email’:’anas@gmail.com’},{‘$set’:{‘occupation’:’engineer’}},multi=True)
{u’n’: 1, u’nModified’: 1, u’ok’: 1, ‘updatedExisting’: True}

>>> db.profiles.find({’email’:’anas@gmail.com’}).next()
{u’_id’: ObjectId(‘5459a7e6ce2e87461eb5778e’),
u’age’: 18,
u’email’: u’anas@gmail.com’,
u’gender’: u’male’,
u’name’: u’Anas’,
u’occupation’: u’engineer’}

Hossein on Python and Big Data

Some interesting notes:

  1. Youtube, Twitter, Yahoo!, Disney, IBM, NASA, Instagram, Google.. big guys using python.
  2. They called Python the sweet baby..
  3. Guido Van Rossum created Python in the 90s… was working with Google and now with Dropbox.
  4. Watch TED .. a talk by Thomas Suarez  problem now: lack of programmer.. Singapore – 6 months ago, they look for programmer but they cannot get enough so they went to Vietnam. Why Malaysia do not produce enough programmer? Solution: Start teaching kids to program as early as 8.
  5. IBM: Python code is often 3-5 times shorter than Java, 5-10 times shorter than C++.
  6. Free license; free learning resources; great communities; free repository (PyPi).
  7. Agility…?
  8. We need python for students.
  9. Python have 50,000 libraries…
  10.  7 billion people, only 2-3 million python programmer.
  11. Raspberry pi… ? a credit card size computer.
  12.  Remember matlotlib.. numpy
  13. IBM: 80% of the data .. was created in the last 2 years.