ARVITA RHINKA LUTPHITASARI
Machine Learning adalah cabang dari kecerdasan buatan (Artificial Intelligence atau AI) yang fokus pada pengembangan algoritma dan teknik yang memungkinkan komputer untuk belajar dari data dan membuat keputusan atau prediksi tanpa di program secara eksplisit.
Machine Learning adalah cabang dari kecerdasan buatan (Artificial Intelligence atau AI) yang fokus pada pengembangan algoritma dan teknik yang memungkinkan komputer untuk belajar dari data dan membuat keputusan atau prediksi tanpa di program secara eksplisit.
Scikit-learn adalah salah satu library machine learning yang paling populer dan banyak digunakan di python. Scikit-learn menyeduakan berbagai alat untuk analisis data dan permodelan prediktif, mencakup banyak algoritma machine learning yang siap digunakan. Library ini dibangun atas library lain seperti NumPy, SciPy, dan matplotlib, yang semuanya digunakan untuk komputasi ilmiah dan visualisasi data.
Pada kesempatan kali ini kita akan melakukan klasifikasi data dengan machine learning. Langkah pertama adalah mengimpor library pandas, yang dialiaskan sebagai ‘pd’. Pandas merupakan library python yang sangat populer untuk analisis dan manipulasi data. Setelah itu kita menggunakan fungsi ‘read_csv’ untuk membaca file CSV dari URL yang diberikan dan mengembalikannya sebagai objek dataframe. Objek dataframe ini disimpan dalam variabel ‘df’. Lalu kita akan melihat beberapa baris pertama dari dataframe dengan menggunakan metode ‘head()’ dan akan dicetak menggunakan fungsi ‘print()’ yang hasilnya akan dikembalikan oleh ‘df.head()’ ke layar.
Selanjutnya kita dapat mengimpor library ‘train_test_split’ dari ‘sklearn.model_selection’ digunakan untuk membagi dataset menjadi set pelatihan dan pengujian, mengimport library ‘StandardScaler’ dari ‘sklearn.preprocessing’ digunakan untuk menstandarisasi fitur sehinga mereka memiliki skala yang sama, mengimpor ‘SVC" dari ’sklearn.svm' sebagai implementasi support vector classifier dari scikit-learn, mengimpor ‘accuracy_score’ dari ‘sklearn.metrics’ digunakan untuk menghitung akurasi dari prediksi model.
Setelah itu, kita pisahkan antara fitur dan label, dimana ‘X’ mengandung fitur-fitur dengan menghapus kolom ‘species’ dan ‘Y’ mengandung label atau target, yaitu kolom ‘species’. Lalu membagi data ke dalam training dan testing set dengan menggunakan source ‘train_test_split’, ‘test_size =0.2" berarti 20% data digunakan untuk pengujian, sedangkan 80% untuk pelatihan. ’random_state=42' digunakan untuk memastikan pembagian data konsisten setiap kali kode dijalankan.
Melakukan standarisasi fitur dengan menghapus rata-rata dan menskala kan ke varians unit menggunakan ‘StandardScaler’, menerapkan skala ke data pelatihan dan menghitung rata-rata dan varians dari pelatihan menggunakan ‘fit_transform’ dan menerapkan skala yang sama ke data pengujian (menggunakan rata-rata dan varians dari data pelatihan) menggunakan ‘transform’.
Membuat objek Support Vector Classifier menggunakan ‘SVC’, melatih model SVM menggunakan data pelatihan ('X_train' dan ‘Y_train’) menggunakan ‘fit’.
Melakukan prediksi menggunakan model yang dilatih untuk memprediksi pada data pengujian menggunakan ‘predict’ dan menghitung akurasi dari prediksi model dengan membandingkan hasil prediksi ('y_pred_svm') dengan label sebenarnya (y_test).
Langkah selanjutnya adalah mengimpor library yang di perlukan yaitu ‘DecisionTreeClassifier’ dari ‘sklearn.tree’, ini merupakan model pohon keputusan yang digunakan untuk klasifikasi, lalu membuat objek model Desicion Tree menggunakan ‘DesicionTreeClassifier()’ dan melatih modelnya menggunakan ‘(x_train y_train’). Setelah dilatih maka akan di prediksi dan dievaluasi menggunakan ‘predict(x_test)’ dan ‘accuracy_score(y_test, y_pred_tree)’.
Selanjutnya kita mengimpor lagi library yang di perlukan yaitu ‘GaussianNB’ dari ‘sklearn.naive_bayes’, ini merupakan model Gaussian Baive Bayes yang digunakan untuk klasifikasi, lalu membuat objek model Naive Bayes menggunakan ‘GaussianNB()’ dan melatih modelnya menggunakan ‘fit(x_train y_train’). Setelah dilatih maka akan di prediksi dan dievaluasi menggunakan ‘predict(x_test)’ dan ‘accuracy_score(y_test, y_pred_nb)’.
‘Kmeans’ merupakan algoritma dari scikit-learn untuk clustering dengan mengimpor ‘KMeans’ dari ‘sklearn.cluster’, ‘matplotlib.pyplot’ yang di aliaskan sebagai ‘plt’ biasanya digunakan untuk membuat plot dan visualisasi sedangkan seaborn yang dialiaskan sebagai ‘sns’ merupakan library visualisasi data yang dibangun diatas matplotlib untuk membuat grafik statistik yang menarik.
Setelah kita mengimpor library yang diperlukan, langkah selanjutnya adalah membuat objek model K-Means dengan jumlah klaster yang diinginkan yaitu 3 (karena kita tahu dataset iris memiliki 3 jenis spesies iris) dengan menggunakan ‘KMeans(n_cluster=3, random_state=42), ’random_state=42' digunakan untuk memastikan hasil clustering konsisten setiap kali kode dijalankan, dan ‘fit(x)’ digunakan untuk melatih model K-Means.
Lalu setelah dilatih kita tambahkan hasil clustering ke dalam dataset, dengan menggunakan ‘kmeans.labels_’, atribut tersebut berisi label klaster yang dihasilkan oleh model K-Means untuk setiap data titik, dan ‘df[’cluster_kmeans'] digunakan untuk menambahkan kolom baru ke dataframe ‘df’ yang berisi label klaster untuk setiap data titik.
Terakhir adalah membuat pairplot dari dataframe ‘df’, dimana setiap subplot menunjukkan scatter plot antara dua fitur yang berbeda, dengan titik-titik diberi warna berdasarkan label klaster ('cluster_kmeans'), lalu akan ditampilkan menggunakan ‘plt,show()’
mengimpor ‘DBSCAN’ (Density-Based Spatial CLustering of Applications with Noise) dari scikit-learn untuk clustering dan juga menggunakan ‘Matplotlib.pyplot’ untuk membuat plot visualisasi dan seaborn.
Setelah import kita Membuat objek model DBSCAN dengan parameter eps (jarak maksimum antara dua sampel untuk dianggap sebagai bagian dari satu cluster) diatur ke 0.5 dan min_samples (jumlah sampel minimum dalam radius eps untuk membentuk core point) diatur ke 5 dan melatih model DBSCAN menggunakan ‘fit(x)’.
Lalu setelah dilatih kita tambahkan hasil clustering ke dalam dataset, dengan menggunakan ‘dbscan.labels_’, atribut tersebut berisi label klaster yang dihasilkan oleh model DBSCAN untuk setiap data titik, titik-titik akan dianggap sebagai noise dibeeri label -1, dan ‘df[’cluster_dbscan'] digunakan untuk menambahkan kolom baru ke dataframe ‘df’ yang berisi label klaster untuk setiap data titik.
Terakhir adalah membuat pairplot dari dataframe ‘df’, dimana setiap subplot menunjukkan scatter plot antara dua fitur yang berbeda, dengan titik-titik diberi warna berdasarkan label klaster ('cluster_dbscan'), lalu akan ditampilkan menggunakan ‘plt,show()’
Mengimpor library yang dibutuhkan yaitu dengan menggunakan ‘classification_report’ untuk menghasilkan laporan yang menunjukkan metrik klasifikasi seperti precision, recall, f1-score, dan support untuk setiap kelas dan ‘silhouette_score’ digunakan untuk skor siluet dari hasil clustering.
Lalu menggunakan ‘classification_report(y_test, y_pred_svm)’ digunakan untuk menghasilkan laporan klasifikasi untuk model SVM dengan membandingkan label sebenarnya ‘(y_test)’ dengan hasil prediksi ‘(y_pred_svm)’, menggunakan 'classification_report(y_test, y_pred_tree)' untuk menghasilkan laporan klasifikasi untuk model Decision Tree dengan membandingkan label sebenarnya' (y_test)' dengan hasil prediksi ‘(y_pred_tree)’ dan menggunakan ‘classification_report(y_test, y_pred_nb)’ untuk menghasilkan laporan klasifikasi untuk model Naive Bayes dengan membandingkan label sebenarnya ‘(y_test)’ dengan hasil prediksi ‘(y_pred_nb)’.
Terakhir adalah dengan menggunakan 'silhouette_score(X, kmeans.labels_)' untuk menghitung skor siluet untuk hasil clustering K-Means. Skor siluet mengukur seberapa mirip sebuah titik dengan klasternya sendiri dibandingkan dengan klaster lain. Nilai berkisar dari -1 (klustering yang sangat buruk) hingga 1 (klustering yang sangat baik), dan menggunakan ‘silhouette_score(X, dbscan.labels_)’ untuk menghitung skor siluet untuk hasil clustering DBSCAN.