Mahout - Klasifikasi
Apa itu Klasifikasi?
Klasifikasi adalah teknik pembelajaran mesin yang menggunakan data yang diketahui untuk menentukan bagaimana data baru harus diklasifikasikan ke dalam sekumpulan kategori yang ada. Sebagai contoh,
Aplikasi iTunes menggunakan klasifikasi untuk menyiapkan playlist.
Penyedia layanan surat seperti Yahoo! dan Gmail menggunakan teknik ini untuk memutuskan apakah email baru harus diklasifikasikan sebagai spam. Algoritme kategorisasi melatih dirinya sendiri dengan menganalisis kebiasaan pengguna dalam menandai email tertentu sebagai spam. Berdasarkan itu, pengklasifikasi memutuskan apakah email di masa mendatang harus disimpan di kotak masuk Anda atau di folder spam.
Bagaimana Klasifikasi Bekerja
Saat mengklasifikasikan kumpulan data tertentu, sistem pengklasifikasi melakukan tindakan berikut:
- Awalnya model data baru disiapkan menggunakan salah satu algoritma pembelajaran.
- Kemudian model data yang telah disiapkan diuji.
- Selanjutnya model data ini digunakan untuk mengevaluasi data baru dan menentukan kelasnya.
Aplikasi Klasifikasi
Credit card fraud detection- Mekanisme Klasifikasi digunakan untuk memprediksi penipuan kartu kredit. Dengan menggunakan informasi historis dari penipuan sebelumnya, pengklasifikasi dapat memprediksi transaksi masa depan mana yang dapat berubah menjadi penipuan.
Spam e-mails - Bergantung pada karakteristik email spam sebelumnya, pengklasifikasi menentukan apakah email yang baru ditemui harus dikirim ke folder spam.
Penggolong Naive Bayes
Mahout menggunakan algoritma pengklasifikasi Naive Bayes. Ini menggunakan dua implementasi:
- Klasifikasi Naive Bayes terdistribusi
- Klasifikasi pelengkap Naive Bayes
Naive Bayes adalah teknik sederhana untuk membangun pengklasifikasi. Ini bukan algoritme tunggal untuk melatih pengklasifikasi semacam itu, tetapi sekumpulan algoritme. Pengklasifikasi Bayes membangun model untuk mengklasifikasikan instance masalah. Klasifikasi ini dibuat dengan menggunakan data yang tersedia.
Keuntungan dari naive Bayes adalah hanya membutuhkan sedikit data pelatihan untuk memperkirakan parameter yang diperlukan untuk klasifikasi.
Untuk beberapa jenis model probabilitas, pengklasifikasi naive Bayes dapat dilatih dengan sangat efisien dalam pengaturan pembelajaran yang diawasi.
Terlepas dari asumsinya yang terlalu disederhanakan, pengklasifikasi Bayes yang naif telah bekerja cukup baik dalam banyak situasi dunia nyata yang kompleks.
Prosedur Klasifikasi
Langkah-langkah berikut harus diikuti untuk mengimplementasikan Klasifikasi:
- Hasilkan data contoh
- Buat file urutan dari data
- Ubah file urutan menjadi vektor
- Latih vektor
- Uji vektornya
Langkah 1: Buat Data Contoh
Hasilkan atau unduh data untuk diklasifikasikan. Misalnya, Anda bisa mendapatkan file20 newsgroups contoh data dari tautan berikut: http://people.csail.mit.edu/jrennie/20Newsgroups/20news-bydate.tar.gz
Buat direktori untuk menyimpan data masukan. Unduh contoh seperti yang ditunjukkan di bawah ini.
$ mkdir classification_example
$ cd classification_example
$tar xzvf 20news-bydate.tar.gz
wget http://people.csail.mit.edu/jrennie/20Newsgroups/20news-bydate.tar.gz
Langkah 2: Buat File Urutan
Buat file urutan dari contoh menggunakan seqdirectoryutilitas. Sintaks untuk menghasilkan urutan diberikan di bawah ini:
mahout seqdirectory -i <input file path> -o <output directory>
Langkah 3: Konversi File Urutan ke Vektor
Buat file vektor dari file urutan menggunakan seq2parseutilitas. Opsi dariseq2parse utilitas diberikan di bawah ini:
$MAHOUT_HOME/bin/mahout seq2sparse
--analyzerName (-a) analyzerName The class name of the analyzer
--chunkSize (-chunk) chunkSize The chunkSize in MegaBytes.
--output (-o) output The directory pathname for o/p
--input (-i) input Path to job input directory.
Langkah 4: Latih Vektor
Latih vektor yang dihasilkan menggunakan trainnbutilitas. Opsi untuk digunakantrainnb utilitas diberikan di bawah ini:
mahout trainnb
-i ${PATH_TO_TFIDF_VECTORS}
-el
-o ${PATH_TO_MODEL}/model
-li ${PATH_TO_MODEL}/labelindex
-ow
-c
Langkah 5: Uji Vektor
Uji vektor menggunakan testnbutilitas. Opsi untuk digunakantestnb utilitas diberikan di bawah ini:
mahout testnb
-i ${PATH_TO_TFIDF_TEST_VECTORS}
-m ${PATH_TO_MODEL}/model
-l ${PATH_TO_MODEL}/labelindex
-ow
-o ${PATH_TO_OUTPUT}
-c
-seq