SlideShare a Scribd company logo
1/8
November 14, 2021
Scikit-Learn Cheat Sheet untuk Data Science
softscients.com/2021/11/14/scikit-learn-cheat-sheet-untuk-data-science/
30 Views
Scikit-learn adalah library machine learning open source untuk bahasa pemrograman
Python. Ini fitur berbagai klasifikasi, regresi, algoritma pengelompokan, dan alat yang
efisien untuk data mining dan analisis data. Ini dibangun di atas NumPy, SciPy, dan
Matplotlib. Pada buku yang telah saya terbitkan pernah dibahas koq, ini tambahan juga,
maka saya berikan judul Scikit-Learn Cheat Sheet untuk Data Science.
Kode di bawah ini menunjukkan langkah-langkah dasar menggunakan scikit-learn untuk
membuat dan menjalankan model pada satu set data. Langkah-langkah dalam kode
meliputi: memuat data, membelah menjadi kereta api dan set uji, menskalakan set,
membuat model, menyesuaikan model pada data, menggunakan model terlatih untuk
membuat prediksi pada set tes, dan akhirnya mengevaluasi kinerja model. Seperti biasa
kita akan menggunakan dataset iris. Begini kode yang kita akan gunakan secara sekilas.
2/8
from sklearn import neighbors, datasets, preprocessing
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.preprocessing import StandardScaler
iris = datasets.load_iris()
X,y = iris.data[:,:2], iris.target
X_train, X_test, y_train, y_test = train_test_split(X,y)
scaler = StandardScaler().fit(X_train)
X_train = scaler.transform(X_train)
X_test = scaler.transform(X_test)
knn = neighbors.KNeighborsClassifier(n_neighbors = 5)
knn.fit(X_train, y_train)
y_pred = knn.predict(X_test)
accuracy_score(y_test, y_pred)
Loading Data
Contents
1 Loading Data
2 Training and Test Data
3 Preprocessing Data
3.1 1. Standardization
3.2 2. Normalization
3.3 3. Binarization
3.4 4. Encoding Categorical Features
3.5 5. Imputing Missing Values
3.6 6. Generating Polynomial Features
4 Create Model
4.1 Supervised Learning Models
4.2 Unsupervised Learning Models
5 Model Fitting
5.1 Supervised learning
5.2 Unsupervised learning
6 Prediction
7 Evaluasi Kinerja Model
7.1 Classification Metrics
7.2 Regression Metrics
7.3 Clustering Metrics
7.4 Cross-Validation
8 Tuning Model
8.1 Grid Search
8.2 Randomized Parameter Optimization
3/8
Data mu harus bertipe numerik dan disimpan sebagai array NumPy atau matriks
cadangan SciPy. Jenis lain yang dikonversi ke array numerik, seperti Pandas DataFrame
juga dapat diterima. Tapi saya lebih suka menggunakan Numpy saja
>>> import numpy as np
>>> X = np.random.random((10,5))
array([[0.21069686, 0.33457064],
[0.23887117, 0.6093155 ],
[0.48848537, 0.62649292]])
>>> y = np.array(['A','B','A'])
array(['A', 'B', 'A'])
Training and Test Data
Membagi dataset menjadi pelatihan dan set uji untuk variabel X dan y. Oiya hati-hati ya,
python adalah bahasa case sensitif jadi huruf besar dan kecil itu beda tidak seperti
bahasa basic
>>> from sklearn.model_selection import train_test_split
>>> X_train,X_test,y_train,y_test = train_test_split(X,y, random_state = 0)
Oiya pengaturan split dataset diatas, bisa kalian berikan opsi seperti berapa ratio yang
digunakan, disini
See also Python Pandas Merging DataFrames
Preprocessing Data
Siapkan data sebelum model difit kan/proses, ada banyak cara yang digunakan
tergantung tipe data apakah numerik, kategorikal, ataupun range. Dibahas juga cara
menangani missing value.
1. Standardization
Standarisasi adalah fitur dengan menghapus rata-rata dan penskalaan ke varians unit.
>>> from sklearn.preprocessing import StandardScaler
>>> scaler = StandardScaler().fit(X_train)
>>> standarized_X = scaler.transform(X_train)
>>> standarized_X_test = scaler.transform(X_test)
2. Normalization
Setiap sampel (yaitu setiap baris matriks data) dengan setidaknya satu komponen non-
nol diskalakan ulang secara independen dari sampel lain sehingga normanya sama
dengan satu/jumlah totalnya 1.
>>> from sklearn.preprocessing import Normalizer
>>> scaler = Normalizer().fit(X_train)
>>> normalized_X = scaler.transform(X_train)
>>> normalized_X_test = scaler.transform(X_test)
4/8
3. Binarization
Data binarize (mengatur nilai fitur ke 0 atau 1) sesuai dengan ambang batas.
>>> from sklearn.preprocessing import Binarizer
>>> binarizer = Binarizer(threshold = 0.0).fit(X)
>>> binary_X = binarizer.transform(X_test)
4. Encoding Categorical Features
Label target Encode dengan nilai antara 0 dan n_classes-1.
>>> from sklearn import preprocessing
>>> le = preprocessing.LabelEncoder()
>>> le.fit_transform(X_train)
5. Imputing Missing Values
Pengisian data yang kosong dengan nilai reratanya, biasanya data yang sangat besar
bisa terjadi banyak missing value.
>>> from sklearn.impute import SimpleImputer
>>> imp = SimpleImputer(missing_values = 0, strategy = 'mean')
>>> imp.fit_transform(X_train)
6. Generating Polynomial Features
Hasilkan matriks fitur baru yang terdiri dari semua kombinasi polinomial dari fitur dengan
derajat kurang dari atau sama dengan tingkat yang ditentukan.
>>> from sklearn.preprocessing import PolynomialFeatures
>>> poly = PolynomialFeatures(5)
>>> poly.fit_transform(X)
Create Model
Membuat model dengan algoritma supervised and unsupervised learning. Untuk
penjelasan masing-masing algoritma, sudah saya jabarkan dengan beragam bahasa,
kalian bisa searching sendiri di website ini. Ataupun mengajukan pertanyaan via email
jika ulasan di website ini kurang memuaskan.
Supervised Learning Models
Algoritma machine learning terawasi yang artinya target sudah ditentukan dari awal.
Adapun target disini bisa berupa kelas, angka, dan jumlah cluster bila algoritma tersebut
termasuk clustering
Linear Regression
>>> from sklearn.linear_model import LinearRegression
>>> lr = LinearRegression(normalize = True)
Support Vector Machines (SVM)
5/8
>>> from sklearn.svm import SVC
>>> svc = SVC(kernel = 'linear')
Naive Bayes
>>> from sklearn.naive_bayes import GaussianNB
>>> gnb = GaussianNB()
KNN
>>> from sklearn import neighbors
>>> knn = neighbors.KNeighborsClassifier(n_neighbors = 5)
Unsupervised Learning Models
Algoritma ini bekerja dengan memerlukan target akan tetapi machine belajar sendiri
dalam menentukan target berdasarkan paramater tertentu. Seperti jarak antar anggota,
jarak antar cluster, serta ambang batas.
Principal Component Analysis (PCA)
>>> from sklearn.decomposition import PCA
>>> pca = PCA(n_components = 0.95)
K means
>>> from sklearn.cluster import KMeans
>>> k_means = KMeans(n_clusters = 3, random_state = 0)
Model Fitting
Model fitting yaitu menguji perhitungan algoritma. Bila menggunakan Scikit maka
method/function yang dipanggil yaitu fit(). Semuanya sama baik menggunakan
supervised dan unsupervised learning.
See also Append Array
Supervised learning
Fit model data
>>> lr.fit(X, y)
>>> knn.fit(X_train,y_train)
>>> svc.fit(X_train,y_train)
Unsupervised learning
Fit model data
>>> k_means.fit(X_train)
Fit data dan lakukan transform
>>> pca_model = pca.fit_transform(X_train)
6/8
Prediction
Prediksi test menggunakan model yang sudah training
Prediksi label/target
#Supervised Estimators
>>> y_pred = lr.predict(X_test)
#Unsupervised Estimators
>>> y_pred = k_means.predict(X_test)
Estimasi probabilitas
>>> y_pred = knn.predict_proba(X_test)
Evaluasi Kinerja Model
Untuk mengukur/evaluasi kinerja model ada banyak cara yang digunakan tergantung
kasus seperti klasifikasi atau regresi dan clustering
Classification Metrics
Accuracy Score
>>> knn.score(X_test,y_test)
>>> from sklearn.metrics import accuracy_score
>>> accuracy_score(y_test,y_pred)
Classification Report
>>> from sklearn.metrics import classification_report
>>> print(classification_report(y_test,y_pred))
Confusion Matrix
>>> from sklearn .metrics import confusion_matrix
>>> print(confusion_matrix(y_test,y_pred))
Regression Metrics
Untuk pembahasan pengukuran regression metrics disini
Mean Absolute Error
>>> from sklearn.metrics import mean_absolute_error
>>> mean_absolute_error(y_test,y_pred)
Mean Squared Error
>>> from sklearn.metrics import mean_squared_error
>>> mean_squared_error(y_test,y_pred)
R² Score
7/8
>>> from sklearn.metrics import r2_score
>>> r2_score(y_test, y_pred)
Clustering Metrics
Adjusted Rand Index
>>> from sklearn.metrics import adjusted_rand_score
>>> adjusted_rand_score(y_test,y_pred)
Homogeneity
>>> from sklearn.metrics import homogeneity_score
>>> homogeneity_score(y_test,y_pred)
V-measure
>>> from sklearn.metrics import v_measure_score
>>> v_measure_score(y_test,y_pred)
Cross-Validation
Score Evaluasi dengan cross-validation
>>> from sklearn.model_selection import cross_val_score
>>> print(cross_val_score(knn, X_train, y_train, cv=4))
Tuning Model
Tuning / menemukan nilai parameter yang benar yang akan memaksimalkan akurasi
prediksi model. Ada 2 cara yang digunakan yaitu
1. pencarian menggunakan iterasi tertentu, misalkan jika paramater tersebut
mempunyai pengaturan jumlah minimal keanggotaan, maka bisa dicoba dengan
membuat pengaturan 1 sampai n keanggotaan
2. random menggunakan nilai acak tertentu jadi tidak semuanya dicoba satu-persatu
Grid Search
Pencarian lengkap atas nilai parameter tertentu untuk estimator. Contoh di bawah ini
mencoba untuk menemukan jumlah cluster yang tepat untuk menentukan knn untuk
memaksimalkan akurasi model. Biasanya dilakukan menggunakan teknik looping, tapi
dalam keadaan tertentu paramater function menerima argument array sehingga tidak
perlu membuat looping tersendiri. Contoh dibawah ini array [1:3] sebagai pencarian yang
terbaik berdasarkan jumlah minimal tetangga pada KNN
>>> from sklearn.model_selection import GridSearchCV
>>> params = {'n_neighbors': np.arange(1,3), 'metric':['euclidean','cityblock']}
>>> grid = GridSearchCV(estimator = knn, param_grid = params)
>>> grid.fit(X_train, y_train)
>>> print(grid.best_score_)
>>> print(grid.best_estimator_.n_neighbors)
8/8
Menggunakan GridSearchCV untuk menentukan paramater terbaik di KNN
See also Quadratic Programming
Randomized Parameter Optimization
Pencarian acak pada hiperparameter. Berbeda dengan Pencarian Grid, tidak semua nilai
parameter dicoba, melainkan sejumlah pengaturan parameter tetap diambil sampelnya
dari distribusi yang ditentukan. Jumlah pengaturan parameter yang dicoba diberikan oleh
n_iter.
>>> from sklearn.model_selection import RandomizedSearchCV
>>> params = {'n_neighbors':range(1,5), 'weights':['uniform','distance']}
>>> rsearch = RandomizedSearchCV(estimator = knn, param_distributions = params, cv
= 4, n_iter = 8, random_state = 5)
>>> rseach.fit(X_train, y_train)
>>> print(rsearch.best_score_)
Scikit-learn adalah library yang sangat berguna untuk berbagai model machine learning.
Bagian-bagian di atas memberikan proses langkah demi langkah dasar untuk melakukan
analisis pada model yang berbeda. Namun, jika kalian ingin mempelajari lebih lanjut, lihat
dokumentasi untuk Scikit-Learn, karena masih ada banyak fungsi bermanfaat yang dapat
kalian pelajari.
Akhirnya selesai juga pembahasan mengenai Scikit-Learn Cheat Sheet untuk Data
Science. Happy coding

More Related Content

What's hot (20)

DOCX
Tugas struktur data
Devandy Enda
 
PPTX
Procedur
Devandy Enda
 
PDF
Perkenalan Pemrograman C++
Sparisoma Viridi
 
DOCX
Bab8.array
Isman Isman
 
PPT
Function
windi1
 
PPT
Function
alimilkhoirunnisa
 
PPT
Pertemuan II Function
lembayungtirta
 
DOCX
Membuat program kalkulator sederhana dengan matlab
Nur Halimah
 
PDF
C programming language notes (4)
nakomuri
 
DOC
Dasar Pemrograman materi kuliah
Braga Rezpect
 
PDF
Pemrograman C++ - Fungsi dan Prosedur
KuliahKita
 
PDF
Algoritma dan Struktur Data - fungsi dan prosedur c++
Georgius Rinaldo
 
DOCX
Laporan 1 penngantar program r
Khair Norrasid
 
PPT
Pelatihan Bahasa R
anom0164
 
DOCX
Laporan praktikum modul vii
Devi Apriansyah
 
DOCX
Pembahasan ujian teori pemrograman pascal bagian 1
Damun Setiaji
 
PPT
modul Java dasar fundamental (OOP)
Reza Pramana
 
PDF
My javanote04
Tri Sapto Adji
 
PDF
Pemograman berorientasi objek
Alvin Setiawan
 
DOCX
Lapopran praktikum struktur data pertemuan 3 Merge_Sort
Ady Achirul
 
Tugas struktur data
Devandy Enda
 
Procedur
Devandy Enda
 
Perkenalan Pemrograman C++
Sparisoma Viridi
 
Bab8.array
Isman Isman
 
Function
windi1
 
Function
alimilkhoirunnisa
 
Pertemuan II Function
lembayungtirta
 
Membuat program kalkulator sederhana dengan matlab
Nur Halimah
 
C programming language notes (4)
nakomuri
 
Dasar Pemrograman materi kuliah
Braga Rezpect
 
Pemrograman C++ - Fungsi dan Prosedur
KuliahKita
 
Algoritma dan Struktur Data - fungsi dan prosedur c++
Georgius Rinaldo
 
Laporan 1 penngantar program r
Khair Norrasid
 
Pelatihan Bahasa R
anom0164
 
Laporan praktikum modul vii
Devi Apriansyah
 
Pembahasan ujian teori pemrograman pascal bagian 1
Damun Setiaji
 
modul Java dasar fundamental (OOP)
Reza Pramana
 
My javanote04
Tri Sapto Adji
 
Pemograman berorientasi objek
Alvin Setiawan
 
Lapopran praktikum struktur data pertemuan 3 Merge_Sort
Ady Achirul
 

Similar to scikit-learn cheat sheet untuk data science (9)

PDF
Mobile Price Prediction
FridaPutriassa
 
PPTX
Modul-11-MembangunModel-v3 dengan M.pptx
irvaimuhammad
 
DOCX
ML.docx
josuaturnip1
 
DOCX
ML.docx
josuaturnip1
 
PPTX
Klasifikasi pada Prediksi Risiko Penyakit Kardiovaskular Menggunakan Metode D...
ahmad8117
 
PPTX
Klasifikasi pada Prediksi Risiko Penyakit Kardiovaskular Menggunakan Metode D...
ahmad8117
 
PPTX
SEMABARANGbhgfgfdgffffffssgfsgfdsds.pptx
angga319517
 
PPTX
PPT-Data Mining-Pertemuan 4 metode metode data mining ZZ.pptx
ZaimatunNiswati1
 
PPTX
Pemodelan Data .pptx
MuhammadFathir45
 
Mobile Price Prediction
FridaPutriassa
 
Modul-11-MembangunModel-v3 dengan M.pptx
irvaimuhammad
 
ML.docx
josuaturnip1
 
ML.docx
josuaturnip1
 
Klasifikasi pada Prediksi Risiko Penyakit Kardiovaskular Menggunakan Metode D...
ahmad8117
 
Klasifikasi pada Prediksi Risiko Penyakit Kardiovaskular Menggunakan Metode D...
ahmad8117
 
SEMABARANGbhgfgfdgffffffssgfsgfdsds.pptx
angga319517
 
PPT-Data Mining-Pertemuan 4 metode metode data mining ZZ.pptx
ZaimatunNiswati1
 
Pemodelan Data .pptx
MuhammadFathir45
 
Ad

More from softscients (16)

PDF
belajar statistik
softscients
 
PDF
neural network training dan particle swarm optimization
softscients
 
PDF
pengolahan sinyal digital dengan matlab
softscients
 
PDF
pengolahan citra digital dengan java
softscients
 
PDF
tutorial algoritma genetika bagian 1
softscients
 
PDF
penjelasan konsep oop object oriented programming
softscients
 
PDF
cara membuat aplikasi gui di matlab
softscients
 
PDF
setup widget dan work directory matlab
softscients
 
PDF
Belajar Pemrograman Matlab
softscients
 
PDF
konversi warna dengan matlab
softscients
 
PDF
kriptografi metode hill cipher
softscients
 
PDF
mengapa customer churn rate penting
softscients
 
PDF
pengantar metode numerik
softscients
 
PDF
cara hitung manual uji normalitas dengan uji kolmogorov-smirnov
softscients
 
PDF
pengenalan huruf dengan pca
softscients
 
PDF
steganografi gambar dan teks
softscients
 
belajar statistik
softscients
 
neural network training dan particle swarm optimization
softscients
 
pengolahan sinyal digital dengan matlab
softscients
 
pengolahan citra digital dengan java
softscients
 
tutorial algoritma genetika bagian 1
softscients
 
penjelasan konsep oop object oriented programming
softscients
 
cara membuat aplikasi gui di matlab
softscients
 
setup widget dan work directory matlab
softscients
 
Belajar Pemrograman Matlab
softscients
 
konversi warna dengan matlab
softscients
 
kriptografi metode hill cipher
softscients
 
mengapa customer churn rate penting
softscients
 
pengantar metode numerik
softscients
 
cara hitung manual uji normalitas dengan uji kolmogorov-smirnov
softscients
 
pengenalan huruf dengan pca
softscients
 
steganografi gambar dan teks
softscients
 
Ad

Recently uploaded (20)

PPTX
Desain_Kecernaan_InVitro_PKS_AmpasSagu.pptx
yulianingsih3622
 
PPTX
Pembangunan Karakter : DISIPLIN utk SMP.pptx
MAHFUDALWI1
 
PPTX
HO. BUDAYA KERJA BER AKHLAK SMP 2 KRANGGAN.pptx
MAHFUDALWI1
 
PPTX
Tujuan Dan Perkembangan Supervisi Pendidikan.pptx
susilolok004
 
PPTX
PPT Masa Pengenalan Lingkungan Sekolah_12 JULI 2025.pptx
ninikzulfa
 
PDF
7 Juli - DETEKSI DINI MELALUI SKRINING KESEHATAN JIWA BAGI ANAK DAN REMAJA.pdf
Wishs3
 
PDF
Pelatihan Karier Kedua / Pelatihan Persiapan Pensiun / Pelatihan Persiapan PHK
Karier Kedua
 
PPTX
GURU PROFESIONAL SDI MENTARI INDONESIA.pptx
Dedi Dwitagama
 
PDF
Awareness ISO 9001 2015 training material rev.1.pdf
dinilestari251
 
DOC
CV Narasumber/Pemateri (a.n. Kanaidi, SE., M.Si., cSAP., CGRC., CBCM)_10 Juli...
Kanaidi ken
 
PPTX
Penanganan-Anak-Putus-Sekolah-Investasi-Masa-Depan-Bangsa.pptx
buatarsip3
 
PPT
metode-penelitian-kuantitatif-kualitatif.ppt
AghaAfkar
 
PDF
PROGRAM MPLS KELAS 1 SEKOLAH DASAR TAHUN AJARAN 2024
TantiPurwiPuspitasar
 
PDF
4_17_MAULANA YUSUF_RENCANA AKSI PAPARAN.pdf
adeaziz184
 
PPTX
01. Materi Kebijakan dan Mekanisme Akreditasi PAUD 2025 - Anggota.pptx
suhartopppptkipa
 
PDF
Mengapa Koding dan Kecerdasan Artificial .pdf
IdaFaridaNurani1
 
PDF
PPT Materi Seminar AITalks AI for Good ?
SABDA
 
PDF
Aminullah Assagaf_PLS SPSS_17 Juli 2025.pdf
Aminullah Assagaf
 
PPTX
PERKEMBANGAN TEKNOLOGI DI BIDANG LAYANAN KESEHATAN-1.pptx
AnisRismaFadilah
 
PDF
Meeting-1_Review-Materi-1_Psikopatologi-Status-Mental-Mekanisme-Defens.pdf
mariakelokm
 
Desain_Kecernaan_InVitro_PKS_AmpasSagu.pptx
yulianingsih3622
 
Pembangunan Karakter : DISIPLIN utk SMP.pptx
MAHFUDALWI1
 
HO. BUDAYA KERJA BER AKHLAK SMP 2 KRANGGAN.pptx
MAHFUDALWI1
 
Tujuan Dan Perkembangan Supervisi Pendidikan.pptx
susilolok004
 
PPT Masa Pengenalan Lingkungan Sekolah_12 JULI 2025.pptx
ninikzulfa
 
7 Juli - DETEKSI DINI MELALUI SKRINING KESEHATAN JIWA BAGI ANAK DAN REMAJA.pdf
Wishs3
 
Pelatihan Karier Kedua / Pelatihan Persiapan Pensiun / Pelatihan Persiapan PHK
Karier Kedua
 
GURU PROFESIONAL SDI MENTARI INDONESIA.pptx
Dedi Dwitagama
 
Awareness ISO 9001 2015 training material rev.1.pdf
dinilestari251
 
CV Narasumber/Pemateri (a.n. Kanaidi, SE., M.Si., cSAP., CGRC., CBCM)_10 Juli...
Kanaidi ken
 
Penanganan-Anak-Putus-Sekolah-Investasi-Masa-Depan-Bangsa.pptx
buatarsip3
 
metode-penelitian-kuantitatif-kualitatif.ppt
AghaAfkar
 
PROGRAM MPLS KELAS 1 SEKOLAH DASAR TAHUN AJARAN 2024
TantiPurwiPuspitasar
 
4_17_MAULANA YUSUF_RENCANA AKSI PAPARAN.pdf
adeaziz184
 
01. Materi Kebijakan dan Mekanisme Akreditasi PAUD 2025 - Anggota.pptx
suhartopppptkipa
 
Mengapa Koding dan Kecerdasan Artificial .pdf
IdaFaridaNurani1
 
PPT Materi Seminar AITalks AI for Good ?
SABDA
 
Aminullah Assagaf_PLS SPSS_17 Juli 2025.pdf
Aminullah Assagaf
 
PERKEMBANGAN TEKNOLOGI DI BIDANG LAYANAN KESEHATAN-1.pptx
AnisRismaFadilah
 
Meeting-1_Review-Materi-1_Psikopatologi-Status-Mental-Mekanisme-Defens.pdf
mariakelokm
 

scikit-learn cheat sheet untuk data science

  • 1. 1/8 November 14, 2021 Scikit-Learn Cheat Sheet untuk Data Science softscients.com/2021/11/14/scikit-learn-cheat-sheet-untuk-data-science/ 30 Views Scikit-learn adalah library machine learning open source untuk bahasa pemrograman Python. Ini fitur berbagai klasifikasi, regresi, algoritma pengelompokan, dan alat yang efisien untuk data mining dan analisis data. Ini dibangun di atas NumPy, SciPy, dan Matplotlib. Pada buku yang telah saya terbitkan pernah dibahas koq, ini tambahan juga, maka saya berikan judul Scikit-Learn Cheat Sheet untuk Data Science. Kode di bawah ini menunjukkan langkah-langkah dasar menggunakan scikit-learn untuk membuat dan menjalankan model pada satu set data. Langkah-langkah dalam kode meliputi: memuat data, membelah menjadi kereta api dan set uji, menskalakan set, membuat model, menyesuaikan model pada data, menggunakan model terlatih untuk membuat prediksi pada set tes, dan akhirnya mengevaluasi kinerja model. Seperti biasa kita akan menggunakan dataset iris. Begini kode yang kita akan gunakan secara sekilas.
  • 2. 2/8 from sklearn import neighbors, datasets, preprocessing from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score from sklearn.preprocessing import StandardScaler iris = datasets.load_iris() X,y = iris.data[:,:2], iris.target X_train, X_test, y_train, y_test = train_test_split(X,y) scaler = StandardScaler().fit(X_train) X_train = scaler.transform(X_train) X_test = scaler.transform(X_test) knn = neighbors.KNeighborsClassifier(n_neighbors = 5) knn.fit(X_train, y_train) y_pred = knn.predict(X_test) accuracy_score(y_test, y_pred) Loading Data Contents 1 Loading Data 2 Training and Test Data 3 Preprocessing Data 3.1 1. Standardization 3.2 2. Normalization 3.3 3. Binarization 3.4 4. Encoding Categorical Features 3.5 5. Imputing Missing Values 3.6 6. Generating Polynomial Features 4 Create Model 4.1 Supervised Learning Models 4.2 Unsupervised Learning Models 5 Model Fitting 5.1 Supervised learning 5.2 Unsupervised learning 6 Prediction 7 Evaluasi Kinerja Model 7.1 Classification Metrics 7.2 Regression Metrics 7.3 Clustering Metrics 7.4 Cross-Validation 8 Tuning Model 8.1 Grid Search 8.2 Randomized Parameter Optimization
  • 3. 3/8 Data mu harus bertipe numerik dan disimpan sebagai array NumPy atau matriks cadangan SciPy. Jenis lain yang dikonversi ke array numerik, seperti Pandas DataFrame juga dapat diterima. Tapi saya lebih suka menggunakan Numpy saja >>> import numpy as np >>> X = np.random.random((10,5)) array([[0.21069686, 0.33457064], [0.23887117, 0.6093155 ], [0.48848537, 0.62649292]]) >>> y = np.array(['A','B','A']) array(['A', 'B', 'A']) Training and Test Data Membagi dataset menjadi pelatihan dan set uji untuk variabel X dan y. Oiya hati-hati ya, python adalah bahasa case sensitif jadi huruf besar dan kecil itu beda tidak seperti bahasa basic >>> from sklearn.model_selection import train_test_split >>> X_train,X_test,y_train,y_test = train_test_split(X,y, random_state = 0) Oiya pengaturan split dataset diatas, bisa kalian berikan opsi seperti berapa ratio yang digunakan, disini See also Python Pandas Merging DataFrames Preprocessing Data Siapkan data sebelum model difit kan/proses, ada banyak cara yang digunakan tergantung tipe data apakah numerik, kategorikal, ataupun range. Dibahas juga cara menangani missing value. 1. Standardization Standarisasi adalah fitur dengan menghapus rata-rata dan penskalaan ke varians unit. >>> from sklearn.preprocessing import StandardScaler >>> scaler = StandardScaler().fit(X_train) >>> standarized_X = scaler.transform(X_train) >>> standarized_X_test = scaler.transform(X_test) 2. Normalization Setiap sampel (yaitu setiap baris matriks data) dengan setidaknya satu komponen non- nol diskalakan ulang secara independen dari sampel lain sehingga normanya sama dengan satu/jumlah totalnya 1. >>> from sklearn.preprocessing import Normalizer >>> scaler = Normalizer().fit(X_train) >>> normalized_X = scaler.transform(X_train) >>> normalized_X_test = scaler.transform(X_test)
  • 4. 4/8 3. Binarization Data binarize (mengatur nilai fitur ke 0 atau 1) sesuai dengan ambang batas. >>> from sklearn.preprocessing import Binarizer >>> binarizer = Binarizer(threshold = 0.0).fit(X) >>> binary_X = binarizer.transform(X_test) 4. Encoding Categorical Features Label target Encode dengan nilai antara 0 dan n_classes-1. >>> from sklearn import preprocessing >>> le = preprocessing.LabelEncoder() >>> le.fit_transform(X_train) 5. Imputing Missing Values Pengisian data yang kosong dengan nilai reratanya, biasanya data yang sangat besar bisa terjadi banyak missing value. >>> from sklearn.impute import SimpleImputer >>> imp = SimpleImputer(missing_values = 0, strategy = 'mean') >>> imp.fit_transform(X_train) 6. Generating Polynomial Features Hasilkan matriks fitur baru yang terdiri dari semua kombinasi polinomial dari fitur dengan derajat kurang dari atau sama dengan tingkat yang ditentukan. >>> from sklearn.preprocessing import PolynomialFeatures >>> poly = PolynomialFeatures(5) >>> poly.fit_transform(X) Create Model Membuat model dengan algoritma supervised and unsupervised learning. Untuk penjelasan masing-masing algoritma, sudah saya jabarkan dengan beragam bahasa, kalian bisa searching sendiri di website ini. Ataupun mengajukan pertanyaan via email jika ulasan di website ini kurang memuaskan. Supervised Learning Models Algoritma machine learning terawasi yang artinya target sudah ditentukan dari awal. Adapun target disini bisa berupa kelas, angka, dan jumlah cluster bila algoritma tersebut termasuk clustering Linear Regression >>> from sklearn.linear_model import LinearRegression >>> lr = LinearRegression(normalize = True) Support Vector Machines (SVM)
  • 5. 5/8 >>> from sklearn.svm import SVC >>> svc = SVC(kernel = 'linear') Naive Bayes >>> from sklearn.naive_bayes import GaussianNB >>> gnb = GaussianNB() KNN >>> from sklearn import neighbors >>> knn = neighbors.KNeighborsClassifier(n_neighbors = 5) Unsupervised Learning Models Algoritma ini bekerja dengan memerlukan target akan tetapi machine belajar sendiri dalam menentukan target berdasarkan paramater tertentu. Seperti jarak antar anggota, jarak antar cluster, serta ambang batas. Principal Component Analysis (PCA) >>> from sklearn.decomposition import PCA >>> pca = PCA(n_components = 0.95) K means >>> from sklearn.cluster import KMeans >>> k_means = KMeans(n_clusters = 3, random_state = 0) Model Fitting Model fitting yaitu menguji perhitungan algoritma. Bila menggunakan Scikit maka method/function yang dipanggil yaitu fit(). Semuanya sama baik menggunakan supervised dan unsupervised learning. See also Append Array Supervised learning Fit model data >>> lr.fit(X, y) >>> knn.fit(X_train,y_train) >>> svc.fit(X_train,y_train) Unsupervised learning Fit model data >>> k_means.fit(X_train) Fit data dan lakukan transform >>> pca_model = pca.fit_transform(X_train)
  • 6. 6/8 Prediction Prediksi test menggunakan model yang sudah training Prediksi label/target #Supervised Estimators >>> y_pred = lr.predict(X_test) #Unsupervised Estimators >>> y_pred = k_means.predict(X_test) Estimasi probabilitas >>> y_pred = knn.predict_proba(X_test) Evaluasi Kinerja Model Untuk mengukur/evaluasi kinerja model ada banyak cara yang digunakan tergantung kasus seperti klasifikasi atau regresi dan clustering Classification Metrics Accuracy Score >>> knn.score(X_test,y_test) >>> from sklearn.metrics import accuracy_score >>> accuracy_score(y_test,y_pred) Classification Report >>> from sklearn.metrics import classification_report >>> print(classification_report(y_test,y_pred)) Confusion Matrix >>> from sklearn .metrics import confusion_matrix >>> print(confusion_matrix(y_test,y_pred)) Regression Metrics Untuk pembahasan pengukuran regression metrics disini Mean Absolute Error >>> from sklearn.metrics import mean_absolute_error >>> mean_absolute_error(y_test,y_pred) Mean Squared Error >>> from sklearn.metrics import mean_squared_error >>> mean_squared_error(y_test,y_pred) R² Score
  • 7. 7/8 >>> from sklearn.metrics import r2_score >>> r2_score(y_test, y_pred) Clustering Metrics Adjusted Rand Index >>> from sklearn.metrics import adjusted_rand_score >>> adjusted_rand_score(y_test,y_pred) Homogeneity >>> from sklearn.metrics import homogeneity_score >>> homogeneity_score(y_test,y_pred) V-measure >>> from sklearn.metrics import v_measure_score >>> v_measure_score(y_test,y_pred) Cross-Validation Score Evaluasi dengan cross-validation >>> from sklearn.model_selection import cross_val_score >>> print(cross_val_score(knn, X_train, y_train, cv=4)) Tuning Model Tuning / menemukan nilai parameter yang benar yang akan memaksimalkan akurasi prediksi model. Ada 2 cara yang digunakan yaitu 1. pencarian menggunakan iterasi tertentu, misalkan jika paramater tersebut mempunyai pengaturan jumlah minimal keanggotaan, maka bisa dicoba dengan membuat pengaturan 1 sampai n keanggotaan 2. random menggunakan nilai acak tertentu jadi tidak semuanya dicoba satu-persatu Grid Search Pencarian lengkap atas nilai parameter tertentu untuk estimator. Contoh di bawah ini mencoba untuk menemukan jumlah cluster yang tepat untuk menentukan knn untuk memaksimalkan akurasi model. Biasanya dilakukan menggunakan teknik looping, tapi dalam keadaan tertentu paramater function menerima argument array sehingga tidak perlu membuat looping tersendiri. Contoh dibawah ini array [1:3] sebagai pencarian yang terbaik berdasarkan jumlah minimal tetangga pada KNN >>> from sklearn.model_selection import GridSearchCV >>> params = {'n_neighbors': np.arange(1,3), 'metric':['euclidean','cityblock']} >>> grid = GridSearchCV(estimator = knn, param_grid = params) >>> grid.fit(X_train, y_train) >>> print(grid.best_score_) >>> print(grid.best_estimator_.n_neighbors)
  • 8. 8/8 Menggunakan GridSearchCV untuk menentukan paramater terbaik di KNN See also Quadratic Programming Randomized Parameter Optimization Pencarian acak pada hiperparameter. Berbeda dengan Pencarian Grid, tidak semua nilai parameter dicoba, melainkan sejumlah pengaturan parameter tetap diambil sampelnya dari distribusi yang ditentukan. Jumlah pengaturan parameter yang dicoba diberikan oleh n_iter. >>> from sklearn.model_selection import RandomizedSearchCV >>> params = {'n_neighbors':range(1,5), 'weights':['uniform','distance']} >>> rsearch = RandomizedSearchCV(estimator = knn, param_distributions = params, cv = 4, n_iter = 8, random_state = 5) >>> rseach.fit(X_train, y_train) >>> print(rsearch.best_score_) Scikit-learn adalah library yang sangat berguna untuk berbagai model machine learning. Bagian-bagian di atas memberikan proses langkah demi langkah dasar untuk melakukan analisis pada model yang berbeda. Namun, jika kalian ingin mempelajari lebih lanjut, lihat dokumentasi untuk Scikit-Learn, karena masih ada banyak fungsi bermanfaat yang dapat kalian pelajari. Akhirnya selesai juga pembahasan mengenai Scikit-Learn Cheat Sheet untuk Data Science. Happy coding