Berkenalan dengan scikit-learn (Part 2) – datasets.make_: Membuat Sampel Data untuk Latihan Analisis Data

Data Scientist, Data Science, Machine Learning, Statistics, Data Science Indonesia, Data Analytics, Data Analysis, Data Analyst, Data, Astronomy, Astronomer, Science, Python, iPython, Jupyter Notebook, R, RStudio, Excel, Coding, Koding, Cara Mengolah Data, Mengolah Data, Olah Data, Programming, Pemrograman, Sains, Teknologi, Ilmu Data, Teknologi Informasi, Tech in Asia, Teknologi, Technology, Sains, Bisnis, Business, Business Analyst, Business Analysis, Social Media Mining, Movie Review, Muhammad Azizul Hakim, Aziz

β€œYou can have data without information, but you cannot have information without data.”

~ Daniel Keys Moran

Pada postingan sebelumnya (part 1), kita telah mengenal langkah-langkah persiapan dalam menggunakan library scikit-learn, dan kita juga telah tahu cara meng-import datasets bawaan dari scikit-learn. Untuk lebih menajamkan sense kita untuk mengetahui kecocokan suatu tipe datasets dengan metode machine learning yang akan kita gunakan, di postingan kali ini, akan kita coba bersama, membuat datasets untuk toy analysis; atau untuk latihan analisis data, atau bahkan untuk prototyping, sebelum implementasi ke data yang sebenarnya. πŸ™‚

Di postingan kali ini, kita akan lihat perbedaan bentuk/tipe-tipe datasets untuk setiap algoritma machine learning yang berbeda.

Mari kita lihat, beragam jenis datasets yang dapat kita buat dengan scikit-learn, dengan script berikut ini:

#import library terlebih dahulu, jangan lupa
import sklearn.datasets as d
import numpy as np

#syntax untuk melihat, datasets macam apa sajakah yang bisa dibuat menggunakan scikit-learn
d.make_*?

Kita lihat hasilnya di console:

Data Scientist, Data Science, Machine Learning, Statistics, Data Science Indonesia, Data Analytics, Data Analysis, Data Analyst, Data, Astronomy, Astronomer, Science, Python, iPython, Jupyter Notebook, R, RStudio, Excel, Coding, Koding, Cara Mengolah Data, Mengolah Data, Olah Data, Programming, Pemrograman, Sains, Teknologi, Ilmu Data, Teknologi Informasi, Tech in Asia, Teknologi, Technology, Sains, Bisnis, Business, Business Analyst, Business Analysis, Social Media Mining, Movie Review, Muhammad Azizul Hakim, Aziz

Sumber Gambar: Pengalaman Pribadi.

Selanjutnya, mari kita buat satu-persatu dataset sesuai dengan karakteristik algoritma yang akan digunakan.

1. Dataset Regresi (Regression)

Selanjutnya, mari kita buat dataset untuk problem regresi (regression), dengan script berikut:

reg_data = d.make_regression()

Script di atas secara default akan menghasilkan data/tuple berupa matrix 100 x 100 yang menjadi feature-nya (variabel bebas), dan 100 target (variabel terikat).

Jika dilihat pada variable explorer, sebagai berikut:

Data Scientist, Data Science, Machine Learning, Statistics, Data Science Indonesia, Data Analytics, Data Analysis, Data Analyst, Data, Astronomy, Astronomer, Science, Python, iPython, Jupyter Notebook, R, RStudio, Excel, Coding, Koding, Cara Mengolah Data, Mengolah Data, Olah Data, Programming, Pemrograman, Sains, Teknologi, Ilmu Data, Teknologi Informasi, Tech in Asia, Teknologi, Technology, Sains, Bisnis, Business, Business Analyst, Business Analysis, Social Media Mining, Movie Review, Muhammad Azizul Hakim, Aziz

Sumber Gambar: Pengalaman Pribadi.

Variabel bebas (feature) yang berupa matrix 100 x 100:

Data Scientist, Data Science, Machine Learning, Statistics, Data Science Indonesia, Data Analytics, Data Analysis, Data Analyst, Data, Astronomy, Astronomer, Science, Python, iPython, Jupyter Notebook, R, RStudio, Excel, Coding, Koding, Cara Mengolah Data, Mengolah Data, Olah Data, Programming, Pemrograman, Sains, Teknologi, Ilmu Data, Teknologi Informasi, Tech in Asia, Teknologi, Technology, Sains, Bisnis, Business, Business Analyst, Business Analysis, Social Media Mining, Movie Review, Muhammad Azizul Hakim, Aziz

Sumber Gambar: Pengalaman Pribadi.

Sedangkan variabel terikat (target)nya:

Data Scientist, Data Science, Machine Learning, Statistics, Data Science Indonesia, Data Analytics, Data Analysis, Data Analyst, Data, Astronomy, Astronomer, Science, Python, iPython, Jupyter Notebook, R, RStudio, Excel, Coding, Koding, Cara Mengolah Data, Mengolah Data, Olah Data, Programming, Pemrograman, Sains, Teknologi, Ilmu Data, Teknologi Informasi, Tech in Asia, Teknologi, Technology, Sains, Bisnis, Business, Business Analyst, Business Analysis, Social Media Mining, Movie Review, Muhammad Azizul Hakim, Aziz

Sumber Gambar: Pengalaman Pribadi.

Kita juga dapat mengatur data/matrix/array-nya sesuka kita. Sebagai contoh, kita akan men-generate matrix 1000 x 10 dengan lima variabel feature yang berkaitan erat dengan generate variabel target, dengan bias factor sebesar 1.0, dan memiliki 2 variabel target, dengan script berikut ini:

complex_reg_data = d.make_regression(1000,10,5,2,1.0)

Untuk mengecek bentuk (shape) dari datasetnya, dan membandingkan dengan shape dataset regresi default yang dibahas sebelumnya, gunakanlah script berikut:

complex_reg_data[0].shape
#Compare with:
reg_data[0].shape

Berikut ini, perbedaan shape antara kedua dataset tersebut: πŸ™‚

Data Scientist, Data Science, Machine Learning, Statistics, Data Science Indonesia, Data Analytics, Data Analysis, Data Analyst, Data, Astronomy, Astronomer, Science, Python, iPython, Jupyter Notebook, R, RStudio, Excel, Coding, Koding, Cara Mengolah Data, Mengolah Data, Olah Data, Programming, Pemrograman, Sains, Teknologi, Ilmu Data, Teknologi Informasi, Tech in Asia, Teknologi, Technology, Sains, Bisnis, Business, Business Analyst, Business Analysis, Social Media Mining, Movie Review, Muhammad Azizul Hakim, Aziz

Sumber Gambar: Pengalaman Pribadi.

Dan ini adalah shape dataset complex_reg_data apabila kita lihat dari variable explorer.

Data Scientist, Data Science, Machine Learning, Statistics, Data Science Indonesia, Data Analytics, Data Analysis, Data Analyst, Data, Astronomy, Astronomer, Science, Python, iPython, Jupyter Notebook, R, RStudio, Excel, Coding, Koding, Cara Mengolah Data, Mengolah Data, Olah Data, Programming, Pemrograman, Sains, Teknologi, Ilmu Data, Teknologi Informasi, Tech in Asia, Teknologi, Technology, Sains, Bisnis, Business, Business Analyst, Business Analysis, Social Media Mining, Movie Review, Muhammad Azizul Hakim, Aziz

Sumber Gambar: Pengalaman Pribadi.

Tampilan feature:

Data Scientist, Data Science, Machine Learning, Statistics, Data Science Indonesia, Data Analytics, Data Analysis, Data Analyst, Data, Astronomy, Astronomer, Science, Python, iPython, Jupyter Notebook, R, RStudio, Excel, Coding, Koding, Cara Mengolah Data, Mengolah Data, Olah Data, Programming, Pemrograman, Sains, Teknologi, Ilmu Data, Teknologi Informasi, Tech in Asia, Teknologi, Technology, Sains, Bisnis, Business, Business Analyst, Business Analysis, Social Media Mining, Movie Review, Muhammad Azizul Hakim, Aziz

Sumber Gambar: Pengalaman Pribadi.

Tampilan target (seperti script kita di atas tadi, targetnya ada 2):

Data Scientist, Data Science, Machine Learning, Statistics, Data Science Indonesia, Data Analytics, Data Analysis, Data Analyst, Data, Astronomy, Astronomer, Science, Python, iPython, Jupyter Notebook, R, RStudio, Excel, Coding, Koding, Cara Mengolah Data, Mengolah Data, Olah Data, Programming, Pemrograman, Sains, Teknologi, Ilmu Data, Teknologi Informasi, Tech in Asia, Teknologi, Technology, Sains, Bisnis, Business, Business Analyst, Business Analysis, Social Media Mining, Movie Review, Muhammad Azizul Hakim, Aziz

Sumber Gambar: Pengalaman Pribadi.

Done! πŸ˜‰

 

2. Dataset Klasifikasi (Classification)

Berikutnya, kita akan membuat dataset klasifikasi.

Dataset klasifikasi juga dapat dibuat dengan mudah. Agar sedikit menyerupai dengan dataset yang dihadapi di dunia nyata, yaitu seringkali suatu kelompok klasifikasi tidak sama dengan kelompok yang lainnya (contohnya jumlah klasifikasi positif dan negatif tidak sama, sentimen positif menjadi mayoritas/sebaliknya, kebanyakan user yang melihat atau mendaftar tidak sampai terkonversi membeli, mayoritas transaksi adalah transaksi palsu/fraud, dsb), maka kita akan membuat dataset yang tidak setimbang (unbalanced dataset), dengan memberikan pembobotan/weight, dalam pembuatan datasetnya.

#Classification
classification_set = d.make_classification(weights=[0.1])
np.bincount(classification_set[1])

Selanjutnya, dengan cara yang sama, kita dapat melihat setiap variabelnya:

Data Scientist, Data Science, Machine Learning, Statistics, Data Science Indonesia, Data Analytics, Data Analysis, Data Analyst, Data, Astronomy, Astronomer, Science, Python, iPython, Jupyter Notebook, R, RStudio, Excel, Coding, Koding, Cara Mengolah Data, Mengolah Data, Olah Data, Programming, Pemrograman, Sains, Teknologi, Ilmu Data, Teknologi Informasi, Tech in Asia, Teknologi, Technology, Sains, Bisnis, Business, Business Analyst, Business Analysis, Social Media Mining, Movie Review, Muhammad Azizul Hakim, Aziz

Sumber Gambar: Pengalaman Pribadi.

Data Scientist, Data Science, Machine Learning, Statistics, Data Science Indonesia, Data Analytics, Data Analysis, Data Analyst, Data, Astronomy, Astronomer, Science, Python, iPython, Jupyter Notebook, R, RStudio, Excel, Coding, Koding, Cara Mengolah Data, Mengolah Data, Olah Data, Programming, Pemrograman, Sains, Teknologi, Ilmu Data, Teknologi Informasi, Tech in Asia, Teknologi, Technology, Sains, Bisnis, Business, Business Analyst, Business Analysis, Social Media Mining, Movie Review, Muhammad Azizul Hakim, Aziz

Sumber Gambar: Pengalaman Pribadi.

Pengklasifikasian dengan label berupa bilangan 1, atau 0, sebagai berikut:

Data Scientist, Data Science, Machine Learning, Statistics, Data Science Indonesia, Data Analytics, Data Analysis, Data Analyst, Data, Astronomy, Astronomer, Science, Python, iPython, Jupyter Notebook, R, RStudio, Excel, Coding, Koding, Cara Mengolah Data, Mengolah Data, Olah Data, Programming, Pemrograman, Sains, Teknologi, Ilmu Data, Teknologi Informasi, Tech in Asia, Teknologi, Technology, Sains, Bisnis, Business, Business Analyst, Business Analysis, Social Media Mining, Movie Review, Muhammad Azizul Hakim, Aziz

Sumber Gambar: Pengalaman Pribadi.

Done!

Terakhir, mari kita buat dataset untuk clustering. πŸ˜€

 

3. Dataset Clustering

Data set clustering yang akan dibuat dengan d.make_blobs() adalah dataset yang dapat dimodelkan oleh K-Means clustering.

Agar tidak bosan, kali ini kita tidak hanya membuat dataset saja, tapi juga memplotkannya dengan matplotlib. Mari menggambar scatterplot, dengan menggunakan script berikut: πŸ™‚

#Plotting blobs
import matplotlib.pyplot as plt

from sklearn.datasets import make_blobs

plt.plot()
plt.title("Three blobs", fontsize='small')
X, Y = make_blobs(n_features=2, centers=3)
plt.scatter(X[:, 0], X[:, 1], marker='o', c=Y, s=25, edgecolor='k')

plt.show()

Hasilnya, sebagai berikut:

Data Scientist, Data Science, Machine Learning, Statistics, Data Science Indonesia, Data Analytics, Data Analysis, Data Analyst, Data, Astronomy, Astronomer, Science, Python, iPython, Jupyter Notebook, R, RStudio, Excel, Coding, Koding, Cara Mengolah Data, Mengolah Data, Olah Data, Programming, Pemrograman, Sains, Teknologi, Ilmu Data, Teknologi Informasi, Tech in Asia, Teknologi, Technology, Sains, Bisnis, Business, Business Analyst, Business Analysis, Social Media Mining, Movie Review, Muhammad Azizul Hakim, Aziz

Sumber Gambar: Pengalaman Pribadi.

Apabila penasaran dengan datanya, bisa dilihat di variable explorer, seperti biasa:

Data Scientist, Data Science, Machine Learning, Statistics, Data Science Indonesia, Data Analytics, Data Analysis, Data Analyst, Data, Astronomy, Astronomer, Science, Python, iPython, Jupyter Notebook, R, RStudio, Excel, Coding, Koding, Cara Mengolah Data, Mengolah Data, Olah Data, Programming, Pemrograman, Sains, Teknologi, Ilmu Data, Teknologi Informasi, Tech in Asia, Teknologi, Technology, Sains, Bisnis, Business, Business Analyst, Business Analysis, Social Media Mining, Movie Review, Muhammad Azizul Hakim, Aziz

Sumber Gambar: Pengalaman Pribadi.

Data Scientist, Data Science, Machine Learning, Statistics, Data Science Indonesia, Data Analytics, Data Analysis, Data Analyst, Data, Astronomy, Astronomer, Science, Python, iPython, Jupyter Notebook, R, RStudio, Excel, Coding, Koding, Cara Mengolah Data, Mengolah Data, Olah Data, Programming, Pemrograman, Sains, Teknologi, Ilmu Data, Teknologi Informasi, Tech in Asia, Teknologi, Technology, Sains, Bisnis, Business, Business Analyst, Business Analysis, Social Media Mining, Movie Review, Muhammad Azizul Hakim, Aziz

Sumber Gambar: Pengalaman Pribadi.

Data Scientist, Data Science, Machine Learning, Statistics, Data Science Indonesia, Data Analytics, Data Analysis, Data Analyst, Data, Astronomy, Astronomer, Science, Python, iPython, Jupyter Notebook, R, RStudio, Excel, Coding, Koding, Cara Mengolah Data, Mengolah Data, Olah Data, Programming, Pemrograman, Sains, Teknologi, Ilmu Data, Teknologi Informasi, Tech in Asia, Teknologi, Technology, Sains, Bisnis, Business, Business Analyst, Business Analysis, Social Media Mining, Movie Review, Muhammad Azizul Hakim, Aziz

Sumber Gambar: Pengalaman Pribadi.

Done!

Demikianlah cara mudah membuat dataset untuk keperluan pembelajaran dasar machine learning/prototyping. Seperti kita lihat di gambar pertama, d.make_*? menyediakan banyak datasets. Untuk penjabaran setiap datasetsnya, maupun pembahasan praktik detil untuk regresi, klasifikasi, dan clustering, insyaAlloh akan kita coba bersama-sama di postingan-postingan selanjutnya. Semoga. πŸ˜€

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.

matplotlib.pyplot.scatter.

scikit-learn.

When should we consider a dataset as imbalanced?

Follow and like us:

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *