Monday, June 17, 2024

Mengaplikasikan Klasifikasi Naive Bayes untuk Menganalisis Kualitas Jeruk


Naive Bayes adalah sebuah algoritma prediksi berbasis probabilistik sederhana yang berdasar pada penerapan Teorema Bayes dengan asumsi independensi fitur. Algoritma ini digunakan untuk melakukan klasifikasi dan prediksi berdasarkan probabilitas keanggotaan suatu kelas. Naive Bayes tidak mempelajari fitur mana yang paling penting untuk membedakan antar kelas, melainkan menggunakan prinsip probabilitas untuk melakukan klasifikasi. Algoritma ini terbukti memiliki akurasi dan kecepatan yang tinggi saats diaplikasikan ke dalam database dengan data yang besar.

 

Apa itu Naïve Bayes Classifier?

Naive Bayes Classifier (NBC) adalah sebuah algoritma klasifikasi yang berbasis pada Teorema Bayes dan digunakan untuk memprediksi kelas suatu objek berdasarkan atribut-atribut yang terkait. NBC mengasumsikan bahwa atribut-atribut tersebut independen dan menggunakan perhitungan probabilitas untuk mengklasifikasikan objek ke dalam kelas yang paling sesuai.

 


Mengapa menggunakan Naïve Bayes Classifier?

Berikut beberapa alasan mengapa menggunakan Navie Bayes Classifier (NBC):

1.Sederhana dan mudah diterapkan: NBC memiliki struktur yang sederhana dan mudah dipahami, sehingga mudah untuk diimplementasikan dan diintegrasikan dengan sistem lain.

2.Tidak membutuhkan banyak data pelatihan: NBC dapat bekerja dengan jumlah data pelatihan yang relatif kecil, sehingga sangat berguna ketika data yang tersedia terbatas

3.Menangani data kontinu dan diskrit: NBC dapat menghandle data yang berupa bilangan bulat, decimal, dan kategori, sehingga sangat berguna dalam berbagai aplikasi.

4.Sangat skalabel: NBC dapat digunakan untuk jumlah prediktor dan titik data yang besar, sehingga sangat berguna dalam aplikasi yang memerlukan skala besar.

5.Cepat dan dapat digunakan untuk membuat prediksi real-time: NBC dapat bekerja dengan cepat, sehingga sangat berguna dalam aplikasi yang memerlukan prediksi real-time.

6.Tidak sensitif terhadap fitur yang tidak relevan: NBC tidak terpengaruh oleh fitur yang tidak relevan, sehingga dapat meningkatkan akurasi prediksi

 

Penerapan Naïve Bayes pada Dataset Jeruk

Langkah pertama adalah mempersiapkan data. Dataset Jeruk bisa kita download di https://www.kaggle.com/datasets/shruthiiiee/orange-quality dan dapat diimpor menggunakan library seperti pandas di Python.


Lalu, kita dapat mengimpor library yang diperlukan untuk menerapkan Naïve Bayes menggunakan library sklearn yang telah disebutkan sebelumnya.

Selanjutnya, unggah dataset yang telah diunduh sebelumnya ke Google Drive dari https://www.kaggle.com/datasets/shruthiiiee/orange-quality Oleh karena itu, nanti kita akan mengimpor dataset nya melalui Google Drive.

Kemudian, kita bisa mengimport Dataset Jeruk dengan menggunakan G.drive


Dalam kasus ini, jalur yang disediakan menunjukkan bahwa file dataset disimpan di Google Drive.

Selanjutnya, kita dapat mengekstrak data dari Dataset Jeruk, yang memiliki 11 kategori, termasuk

{ Size, Weight, Brix, pH, Softness, HarvestTime, Ripeness, Color, Variety, Blemishes (Y/N), Quality }

 

Grafik batang bertanda “Jumlah Jeruk berdasarkan Warna” ditampilkan dalam gambar dibawah Grafik


ini menunjukkan jumlah berbagai kualitas jeruk dari rentang 1-5. Kualitas jeruk diwakili oleh sumbu x, sedangkan jumlah masing-masing warna ditunjukkan oleh sumbu y.


Poin penting :

Jingga adalah warna jeruk yang paling populer, diikuti oleh warna jingga muda dan jingga tua.

Varietas jingga-merah dan kuning-jingga kurang umum.


Detail tambahan:

Kemungkinan besar, koleksi jeruk yang diurutkan berdasarkan warna berfungsi sebagai dasar untuk grafik dan kita dapat membandingkan popularitas berbagai warna jingga dengan menggunakan grafik, lalu grafik ini juga dapat digunakan untuk memantau pergeseran dalam popularitas relatif berbagai warna jingga dari waktu ke waktu.

kemudian kita akan mengkodekan variabel kategori yang berada dalam dataset jeruk_ds menggunakan LabelEncoder dari library sklearn.preprocessing.

Tujuan dari proses ini adalah untuk mempersiapkan data kategori sehingga dapat digunakan dalam model machine learning atau analisis data lainnya yang membutuhkan input numerik, karena sebagian besar algoritma hanya dapat memproses data dalam bentuk numerik.

selanjutnya kita akan melakukan beberapa transformasi pada dataset jeruk_ds terkait kolom 'Quality (1-5)' dan menyiapkan data untuk digunakan dalam analisis atau pemodelan lebih lanjut.

Setelah transformasi ini, kolom 'Quality' dalam jeruk_ds berisi nilai kategori diskrit sesuai dengan bin dan label yang telah ditentukan.

lalu lakukan Define feature columns dan target column sebagai berikut:

Dengan menentukan feature columns dan target column, kita siap untuk menggunakan X sebagai input untuk pemodelan dan y sebagai target yang akan diprediksi atau dianalisis. Langkah ini penting dalam mempersiapkan data sebelum dilakukan proses pemodelan atau analisis lebih lanjut.

setelah itu kita akan memisahkan dataset menjadi set pelatihan (training set) dan set pengujian (test set) lalu menggunakan fungsi train_test_split dari library sklearn.model_selection, lalu inisialisasi dan latih Naive Bayes classifier, lakukan prediksi dengan menggunakan Naive Bayes classifier yang telah dilatih sebelumnya pada data test,setelah lakukan prediksi kita akan mengevaluasi kinerja dari model klasifikasi dengan membandingkan nilai prediksi yang dihasilkan dengan nilai sebenarnya dari test set.


Confusion matrix akan berbentuk matriks dengan baris dan kolom yang mewakili label kelas. Contohnya, jika Anda memiliki 5 kelas (misalnya kelas 1, 2, 3, 4, dan 5), maka confusion matrix akan memiliki dimensi 5x5. Nilai di dalam matriks akan menunjukkan jumlah prediksi yang benar dan salah untuk setiap pasangan kelas (misalnya, berapa banyak sampel yang diklasifikasikan sebagai kelas 1 yang sebenarnya adalah kelas 1, dan sebagainya).


setelah semua itu selesai kita akan menghitung akurasi dari model klasifikasi tersebut.

Ini adalah salah satu metrik evaluasi yang paling umum digunakan untuk model klasifikasi, tetapi perlu diperhatikan bahwa akurasi mungkin tidak selalu menjadi metrik yang paling informatif terutama jika dataset tidak seimbang (imbalance).

lalu kita akan membuat plot count (jumlah) dari jeruk berdasarkan warna mereka menggunakan sns.countplot dari library Seaborn.

Plot ini akan menampilkan jumlah perbandingan antara data jeruk awal dan setelah di prediksi untuk setiap kategori quality yang ada dalam dataset kita.

Keuntungan menggunakan Naive Bayes Classifier:

1. Mudah diimplementasikan: Naive Bayes Classifier relatif mudah untuk diimplemetasikan karena tidak menggunakan optimasi numerik, perhitungan matriks, dan lainnya.

2. Cepat: Algoritma ini cepat dalam membangun model dan membuat prediksi, sehingga dapat digunakan untuk prediksi real-time.

3. Efisien: Efisien dalam pelatihan dan penggunaannya, sehingga dapat digunakan untuk data binary atau polinom.

4. Bisa digunakan untuk klasifikasi multi-kelas: Naive Bayes Classifier dapat digunakan untuk memprediksi probabilitas posterior dari beberapa kelas variabel.

5. Banyak digunakan dalam aplikasi teks: Klasifikasi Naive Bayes banyak digunakan dalam klasifikasi teks, seperti penyaringan spam dan analisis sentimen, karena fitur prediksi multi-kelas.

6. Dapat digunakan untuk sistem rekomendasi: Naive Bayes Classifier dapat digunakan bersama dengan algoritma lain, seperti pemfilteran kolaboratif, untuk membuat sistem rekomendasi yang dapat menyaring informasi yang tidak terlihat dan memprediksi preferensi pengguna.

 

Kekurangan menggunakan Naive Bayes Classifier:

1. Perkiraan kemungkinan kelas yang tidak akurat: Kekurangan dari metode Naive Bayes adalah perkiraan kemungkinan kelas yang tidak akurat.

2. Batasan atau threshold harus ditentukan secara manual: Batasan atau threshold harus ditentukan secara manual, yang dapat mempengaruhi akurasi prediksi.

3. Kurang efektif untuk data kontinyu: Naive Bayes Classifier kurang efektif untuk data kontinyu karena memerlukan perhitungan densitas Gauss yang lebih kompleks.

 

Kesimpulan

Dengan menggunakan algoritma Naive Bayes, kita dapat mengklasifikasikan data jeruk berdasarkan berbagai fitur seperti ukuran, warna, berat, dan lain-lain untuk menentukan kualitas atau jenis jeruk tersebut.


 Script Klasifikasi : https://github.com/Fhanafii/Klasifikasi-NaiveBayes-menggunakan-dataset-Jeruk

Monday, June 3, 2024

Mengenal Decision Tree: Analisis Klasifikasi pada Dataset Wine

Generated by AI: Decision Tree

Decision tree adalah salah satu algoritma machine learning yang populer digunakan untuk tugas klasifikasi dan regresi. Algoritma ini bekerja dengan memecah dataset menjadi subset-subset yang lebih kecil sambil mengembangkan struktur pohon keputusan yang mirip dengan diagram alir. Artikel ini akan membahas penerapan decision tree untuk klasifikasi pada dataset wine, yang merupakan dataset terkenal dalam dunia machine learning.

Apa Itu Decision Tree?



Decision tree adalah model prediksi yang memetakan observasi tentang suatu item ke dalam kesimpulan mengenai nilai target item tersebut. Struktur pohon terdiri dari node keputusan yang mewakili atribut dari dataset, cabang yang mewakili aturan keputusan, dan node daun yang mewakili hasil akhir atau kelas.

Mengapa Menggunakan Decision Tree?



Mudah Dipahami dan Diinterpretasi: Visualisasi dari pohon keputusan membuatnya sangat intuitif dan mudah dipahami, bahkan oleh non-ahli.
Non-parametrik: Decision tree tidak memerlukan asumsi distribusi dari data, sehingga fleksibel dalam berbagai kondisi data.
Mampu Menangani Data Kategorikal dan Numerikal: Decision tree dapat menangani kedua jenis data ini tanpa perlu konversi yang kompleks.

Penerapan Decision Tree pada Dataset Wine
Langkah pertama adalah mempersiapkan data. Dataset wine bisa kita download di https://archive.ics.uci.edu/dataset/109/wine dan dapat diimpor menggunakan library seperti pandas di Python.

dan juga kita bisa mengimport library yang diperlukan untuk memproses Decision Tree menggunakan library sklearn yang tertera diatas. 
Selanjutnya Upload dataset yang sudah di download di https://archive.ics.uci.edu/dataset/109/wine ke google drive.  Karena nanti dataset tersebut akan kita import melalui google drive




Selanjutnya kita bisa mengimport dataset wine dengan menggunakan gdrive

 
Dalam hal ini, path yang diberikan menunjukkan bahwa file dataset disimpan di Google Drive

Selanjutnya kita bisa menampilkan data dari dataset wine yang mempunyai 13 kategori seperti class, Alcohol, Malicacid, Ash, Alcalinity_of_ash, Magnesium, Total_phenols, Flavanoids, Nonflavanoid_phenols, Proanthocyanins, Color_intensity dan sebagainya


Selanjutnya kita bisa memisahkah dataset wine menjadi variable x dan y untuk kita train dan testing.


Kita inisialisisasi model dari decision tree dan melatih model decision tree menggunakan data pelatihan X_train dan y_Train


Selanjutnya kita bisa membuat confusion matrix dan menghitung akurasi untuk mengevaluasi kinerja model klasifikasi yang menunjukkan jumlah prediksi yang benar dan salah untuk setiap kelas dan memberikan gambaran yang lebih rinci tentang kesalahan yang dibuat oleh model serta menghitung rasio antara jumlah prediksi yang benar dengan total jumlah prediksi yang dibuat.


dan terakhir kita bisa menampilkan hasil dari data yang kita latih dengan decision tree 

Keuntungan dan Kekurangan Decision Tree

Keuntungan :
  • Mudah untuk diinterpretasi dan divisualisasikan.
  • Dapat menangani data numerik dan kategorikal.
  • Memerlukan sedikit pra-pemrosesan data.
Kekurangan:
  • Rentan terhadap overfitting, terutama jika pohon terlalu dalam.
  • Perubahan kecil dalam data dapat menyebabkan perubahan besar dalam struktur pohon.
  • Kepekaan terhadap data yang tidak seimbang.

Kesimpulan
Decision tree digunakan untuk membuat klasifikasi pada dataset wine yang memiliki 13 atribut yang mencakup berbagai karakteristik kimia seperti kadar alkohol, keasaman, kandungan fenol dan lain-lain.
Atribut-atribut ini digunakan untuk mengklasifikasikan wine ke dalam kolom yang berisi target (response) yang ingin diprediksi. Meskipun memiliki beberapa kelemahan, keuntungan dalam hal interpretasi dan fleksibilitas menjadikannya pilihan yang baik untuk banyak aplikasi machine learning. Dengan pemahaman yang baik tentang cara kerjanya dan penerapan yang tepat, decision tree dapat memberikan hasil yang sangat memuaskan.