fbpx
blog banner scikit-learn

Berkenalan dengan scikit-learn (Part 1) – Preparations

“If one wants to make a machine mimic the behaviour of the human computer in some complex operation one has to ask him how it is done, and then translate the answer into the form of an instruction table. Constructing instruction tables is usually described as “programming”.”

~ Alan Turing

hakim-azizul.com – scikit-learn adalah library untuk machine learning bagi para pengguna python. Scikit-learn merupakan free software, dan memungkinkan kita melakukan beragam pekerjaan dalam Data Science, seperti regresi (regression), klasifikasi (classification), pengelompokkan/penggugusan (clustering), data preprocessing, dimensionality reduction, dan model selection (pembandingan, validasi, dan pemilihan parameter maupun model).

Pada postingan kali ini, bersama-sama kita akan berkenalan dengan library super keren ini, dan seperti biasa, sambil praktik. Let’s get started! πŸ™‚

 

1. Preparations

Pertama, kita mulai dengan instalasi library scikit-learn. Seperti yang pernah saya bahas di sini, jika anda menggunakan Anaconda Python, anda tidak perlu menginstall library ini, karena sudah termasuk sebagai package bawaan (default). πŸ™‚

Berikut ini tampilan di Anaconda Navigator apabila scikit-learn telah terinstall di komputer anda.

Muhammad Azizul Hakim, Aziz, Data Scientist, Data Science, Machine Learning, Statistics, Data Science Indonesia, Data Analytics, Data, Astronomy, Astronomer, Python, iPython, Jupyter Notebook, R, Excel
Sumber Gambar: Pengalaman Pribadi.

Jadi, sekali lagi, saya rekomendasikan untuk menggunakan Anaconda Python, untuk meringankan pekerjaan anda, sehingga tidak perlu terlalu sering menginstall library. Namun, apabila anda tidak menggunakan Anaconda, anda bisa menginstallnya dengan easy install atau pip install seperti biasa (pastikan PyPI telah terinstall di komputer anda).

Sebelum menginstall scikit-learn, berikut ini adalah libraries yang menjadi requirementnya:

  • dateutil==2.1
  • ipython==2.2.0
  • ipython-notebook==2.1.0
  • jinja2==2.7.3
  • markupsafe==0.18
  • matplotlib==1.3.1
  • numpy==1.8.1
  • patsy==0.3.0
  • pandas==0.14.1
  • pip==1.5.6
  • pydot==1.0.28
  • pyparsing==1.5.6
  • pytz==2014.4
  • pyzmq==14.3.1
  • scipy==0.14.0
  • setuptools==3.6
  • six==1.7.3
  • ssl_match_hostname==3.4.0.2
  • tornado==3.2.2

Catatan:

  1. Versi library yang tersedia saat ini kemungkinan sudah berbeda dengan yang tertulis di atas (yang tertulis di atas author dapatkan dari referensi tahun 2014 silam). πŸ˜€
  2. Instalasi libraries dengan easy-install mungkin akan merepotkan jika anda lakukan satu persatu untukΒ  setiap library di atas, sehingga anda dapat menginstallnya sekaligus, dengan sebelumnya mencopas libraries di atas, lalu di simpan dalam file requirements.txt (untuk detil instalasi dengan metode ini silakan googling sendiri ya, nanti kepanjangan, mudah kok. :D).

 

2. Memperoleh Sampel Data

Setelah berhasil menginstall scikit-learn, sekalian mengecek apakah instalasinya sudah benar atau belum, mari kita import librarynya, khususnya sampel dataset pada library scikit-learn, dengan script di bawah:

from sklearn import datasets
import numpy as np

Oh iya, untuk library numpy, sementara ini silakan baca sendiri dulu yaa. Apabila memungkinkan atau dibutuhkan, besok-besok insyaAlloh akan dibahas oleh author. πŸ™‚

Berikutnya, kita ingin melihat datasets apa saja yang tersedia pada scikit-learn (run script baris pertama di bawah), lalu datasets apa saja yang menjadi bawaan/default dari scikit-learn ini (baris kedua):

datasets.*?
datasets.load_*? #default sklearn data

Berikut ini, tampilan hasilnya:

Muhammad Azizul Hakim, Aziz, Data Scientist, Data Science, Machine Learning, Statistics, Data Science Indonesia, Data Analytics, Data, Astronomy, Astronomer, Python, iPython, Jupyter Notebook, R, Excel
Sumber Gambar: Pengalaman Pribadi.

Datasets-nya banyak sekali, lihat saja di console IPython anda masing-masing. Seru juga ya jika besok-besok kita explore satu-persatu dan dijadikan project. πŸ™‚ πŸ˜€

Muhammad Azizul Hakim, Aziz, Data Scientist, Data Science, Machine Learning, Statistics, Data Science Indonesia, Data Analytics, Data, Astronomy, Astronomer, Python, iPython, Jupyter Notebook, R, Excel
Sumber Gambar: Pengalaman Pribadi

Perintah kedua, menghasilkan output seperti di atas. Apa artinya?

Artinya itulah datasets bawaan dari scikit-learn, yaitu datasets.load_. Datasets bawaan scikit-learn terbagi menjadi 2, yang pertama datasets.load_ adalah datasets ringan yang juga umum digunakan dalam proses belajar ataupun prototyping. Sedangkan yang kedua, datasets yang berukuran relatif besar, dan perlu kita unduh (fetching) terlebih dahulu.

#Load Boston data
boston = datasets.load_boston()
print(boston.DESCR)

Selanjutnya, mari kita load sampel data kita, pertama-tama, kita pakai dataset default terlebih dahulu. Di sini, saya pakai dataset Boston.

Apakah itu? Bagi yang belum kenal, silakan print(boston.DESCR), dan kita baca bersama deskripsinya:

Muhammad Azizul Hakim, Aziz, Data Scientist, Data Science, Machine Learning, Statistics, Data Science Indonesia, Data Analytics, Data, Astronomy, Astronomer, Python, iPython, Jupyter Notebook, R, Excel
Sumber Gambar: Pengalaman Pribadi.

Selanjutnya, kita coba juga fetching data yang bukan merupakan dataset bawaan. Di bawah ini, kita coba dengan California Housing Dataset.

#Fetch Housing data
housing = datasets.fetch_california_housing()
print(housing.DESCR)

Berikut ini deskripsi tentang datasetnya:

Muhammad Azizul Hakim, Aziz, Data Scientist, Data Science, Machine Learning, Statistics, Data Science Indonesia, Data Analytics, Data, Astronomy, Astronomer, Python, iPython, Jupyter Notebook, R, Excel
Sumber Gambar: Pengalaman Pribadi.

Menarik bukan? Kedua dataset tersebut merupakan contoh data kuantitatif yang menjadi bahan studi untuk metode regresi.

Selanjutnya, mari kita load data kita dalam bentuk variabel dengan script di bawah:

X, y=boston.data, boston.target

Data set ini terbagi dua yaitu .data sebagai feature (variabel bebas), dan .target sebagai target (variabel terikat).

Memprediksi target dengan bermodalkan data/feature dan beragam metode-metode statistik, itulah yang dikenal sebagai Data Science/Machine Learning/Statistical Learning. πŸ™‚

Ingin mengetahui wujud datanya? Silakan type and run X atau y pada console anda:

Muhammad Azizul Hakim, Aziz, Data Scientist, Data Science, Machine Learning, Statistics, Data Science Indonesia, Data Analytics, Data, Astronomy, Astronomer, Python, iPython, Jupyter Notebook, R, Excel
Sumber Gambar: Pengalaman Pribadi.

Jika belum tampak jelas atau memuaskan, saatnya kita gunakan fitur keren dari Anaconda/Spyder, yaitu “Variable Explorer”.

Untuk menajamkan sense kita ketika melihat data dan menentukan algoritma apa yang akan kita pergunakan untuk menyelesaikan permasalahan yang dihadapi, saya sarankan untuk membiasakan melihat dan memperhatikan setiap variabel, data, serta karakteristik data yang kita hadapi, seperti disarankan juga oleh salah satu mentor saya ketika mengambil online course dari Microsoft Virtual Academy (MVA), Dr. Steve Elston, dan juga para Data Scientist lainnya. Untuk pembahasan lebih jauh mengenai karakteristik data ini, akan dibahas di part 2. πŸ™‚

Muhammad Azizul Hakim, Aziz, Data Scientist, Data Science, Machine Learning, Statistics, Data Science Indonesia, Data Analytics, Data, Astronomy, Astronomer, Python, iPython, Jupyter Notebook, R, Excel
Sumber Gambar: Pengalaman Pribadi.

Kembali ke Boston Dataset.

Klik boston, dan kita dapat lihat apa saja yang ada di dalamnya, Mulai dari DESCRipsi data, data (13 variabel bebas), feature_names (nama-nama setiap variabel), dan target (variabel terikat).

Muhammad Azizul Hakim, Aziz, Data Scientist, Data Science, Machine Learning, Statistics, Data Science Indonesia, Data Analytics, Data, Astronomy, Astronomer, Python, iPython, Jupyter Notebook, R, Excel
Sumber Gambar: Pengalaman Pribadi.

Klik variabel X, akan kita lihat 13 variabel bebasnya dengan indah, dalam format spreadsheet (seperti Ms. Excel, bahkan lebih keren, karena perbedaan warna cell di sini menunjukkan perbedaan besarnya nilai (makin kecil makin merah, makin besar makin biru, seperti heat map)).

Muhammad Azizul Hakim, Aziz, Data Scientist, Data Science, Machine Learning, Statistics, Data Science Indonesia, Data Analytics, Data, Astronomy, Astronomer, Python, iPython, Jupyter Notebook, R, Excel
Sumber Gambar: Pengalaman Pribadi.

Variabel target atau variabel y:

Muhammad Azizul Hakim, Aziz, Data Scientist, Data Science, Machine Learning, Statistics, Data Science Indonesia, Data Analytics, Data, Astronomy, Astronomer, Python, iPython, Jupyter Notebook, R, Excel
Sumber Gambar: Pengalaman Pribadi.

Begitulah, all preparations are done!

Selamat mencoba, sampai jumpa pada artikel-artiket berikutnya. Enjoy machine learning! πŸ™‚

 

References & Further Reading

Hauck T. (2014): scikit-learn Cookbook, Packt Publishing.

Hastie et. al (2015): An Introduction to Statistical Learning – with Applications in R, 6th Printing, Springer.

Machine Learning.

scikit-learn.

Social media & sharing icons powered by UltimatelySocial