Pengenalan K-Nearest Neighbor (KNN)
K-Nearest Neighbor (KNN) adalah algoritma klasifikasi berbasis data yang sangat sederhana namun efektif. KNN bekerja dengan cara membandingkan data baru dengan data yang sudah ada di dalam dataset berdasarkan kedekatannya (jarak) dan kemudian mengklasifikasikannya berdasarkan mayoritas kelas dari tetangga terdekat.
Cara Kerja Algoritma KNN:
- Menentukan K: Tentukan nilai K (jumlah tetangga yang akan dipertimbangkan).
- Menghitung Jarak: Hitung jarak antara data yang baru dan data yang ada di dataset menggunakan metrik jarak seperti Euclidean distance.
- Memilih Tetangga Terdekat: Pilih K data terdekat dari data yang baru.
- Klasifikasi: Tentukan kelas dari data baru berdasarkan mayoritas kelas dari K tetangga terdekat.
Contoh Program KNN untuk Klasifikasi Data E-commerce
Untuk contoh ini, kita akan menggunakan dataset e-commerce sederhana yang mengandung informasi pelanggan dan produk yang dibeli. Kita akan mengklasifikasikan pelanggan berdasarkan fitur seperti pendapatan, umur, dan frekuensi pembelian, dan mencoba memprediksi kategori produk yang dibeli.
Langkah-langkah:
- Memuat dataset.
- Memilih fitur untuk klasifikasi.
- Menerapkan algoritma KNN.
- Evaluasi akurasi model.
Kode Python untuk Klasifikasi Menggunakan KNN
Persiapan:
- Pastikan Anda sudah menginstal pustaka scikit-learn untuk menggunakan algoritma KNN. Jika belum, Anda dapat menginstalnya menggunakan pip:
Contoh Program KNN untuk Data E-commerce:
Penjelasan Kode:
Data E-commerce Sederhana:
- Data ini berisi informasi tentang pelanggan, seperti umur, pendapatan, dan frekuensi pembelian.
- Target variabel
produk_dibeli
menunjukkan kategori produk yang dibeli pelanggan (A, B, atau C).
Mengonversi Kategorikal ke Numerik:
- Algoritma KNN membutuhkan data numerik, jadi kita mengubah label produk yang dibeli (A, B, C) menjadi angka (0, 1, 2).
Preprocessing:
- Dataset dibagi menjadi X (fitur) dan y (target).
- Data dibagi menjadi training set dan testing set dengan proporsi 70% untuk pelatihan dan 30% untuk pengujian menggunakan
train_test_split
. - Data fitur (X) distandarisasi menggunakan
StandardScaler
untuk menghindari dominasi fitur dengan nilai besar (misalnya pendapatan) dalam perhitungan jarak.
Model KNN:
- Model KNeighborsClassifier dengan parameter
n_neighbors=3
diinisialisasi. - Model dilatih dengan data training (
X_train
,y_train
). - Setelah model dilatih, dilakukan prediksi pada data pengujian (
X_test
), dan hasilnya dibandingkan dengan nilai sebenarnya untuk menghitung akurasi.
- Model KNeighborsClassifier dengan parameter
Evaluasi Model:
- Akurasi model dihitung dengan accuracy_score antara prediksi dan data asli.
- Hasil prediksi untuk data pengujian juga ditampilkan.
Output yang Diharapkan:
Jika Anda menjalankan program ini, Anda mungkin akan melihat hasil seperti berikut (bergantung pada data dan random state yang digunakan):
- Akurasi: Akurasi model menunjukkan seberapa tepat model dalam mengklasifikasikan data uji berdasarkan pelatihan yang telah dilakukan.
- Hasil Prediksi: Menunjukkan prediksi produk yang dibeli untuk data uji.
Penggunaan KNN dalam Data E-commerce:
- Segmentation Pelanggan: Dengan KNN, kita dapat mengklasifikasikan pelanggan berdasarkan perilaku mereka (misalnya, produk yang dibeli berdasarkan umur, pendapatan, dan frekuensi pembelian).
- Rekomendasi Produk: Model ini bisa digunakan untuk memberikan rekomendasi produk kepada pelanggan berdasarkan pelanggan yang memiliki kemiripan karakteristik.
- Prediksi Pembelian: KNN dapat digunakan untuk memprediksi produk mana yang kemungkinan akan dibeli oleh pelanggan tertentu.
Kesimpulan:
- KNN adalah algoritma klasifikasi yang mudah diterapkan pada berbagai masalah, termasuk di bidang e-commerce untuk analisis pelanggan dan prediksi produk.
- Akurasi model bisa bervariasi tergantung pada data dan pemilihan parameter seperti nilai K (jumlah tetangga terdekat).
- Dengan data yang lebih besar dan lebih kompleks, Anda bisa mengembangkan model ini lebih lanjut untuk memberikan rekomendasi yang lebih presisi atau analisis pelanggan yang lebih mendalam.
0 Comments