tugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docx
SKL-CHT
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