Pada kasus ini kita akan menggunakan salah satu metode boosting yaitu AdaBoost untuk mengklasifikasikan jenis bunga Iris. Dalam latihan ini kita akan menggunakan dataset Iris yang sangat lazim digunakan. Latihan ini akan melakukan prediksi memprediksi 3 jenis bunga Iris yaitu, Iris Setosa, Iris Versicolor, dan Iris Virginica berdasarkan panjang dan lebar sepal dan petal.
Kita akan membandingkan performa dari algoritma Decision Tree dan AdaBoost pada kasus ini.
from sklearn.model_selection import train_test_splitX_train, X_test, y_train, y_test =train_test_split(X, y, test_size=0.2, random_state=1)
Training Decision Tree
# Secara default, DecisionTreeClassifier dari scikit-learn akan menggunakan nilai "Gini" untuk kriteria# Terdapat beberapa "hyperparamater" yang dapat digunakan. Silahka baca dokumentasi# Pada kasus ini kita akan menggunakan parameter defaultdt =DecisionTreeClassifier()# Sesuaikan dt ke set trainingdt.fit(X_train, y_train)# Memprediksi label set testy_pred_dt = dt.predict(X_test)# menghitung set accuracyacc_dt =accuracy_score(y_test, y_pred_dt)print("Test set accuracy: {:.2f}".format(acc_dt))print(f"Test set accuracy: {acc_dt}")
Test set accuracy: 0.97
Test set accuracy: 0.9666666666666667
Training AdaBoost
# Pada kasus kali ini kita akan menggunakan estimator pada AdaBoost# Untuk detail parameter (hyperparameter) silahkan cek dokumentasiada =AdaBoostClassifier(n_estimators=2)# Sesuaikan dt ke set trainingada.fit(X_train, y_train)# Memprediksi label set testy_pred_ada = ada.predict(X_test)# menghitung set accuracyacc_ada =accuracy_score(y_test, y_pred_ada)print("Test set accuracy: {:.2f}".format(acc_ada))print(f"Test set accuracy: {acc_ada}")
Test set accuracy: 0.97
Test set accuracy: 0.9666666666666667