Pendeteksi spam email Machine Learning dengan Py

reza aulya

Sosial Media


0 orang menyukai ini
Suka

Summary

Kita semua pernah menjadi penerima email spam sebelumnya. Email spam, atau email sampah, adalah jenis email yang dikirim ke sejumlah besar pengguna sekaligus, sering kali berisi pesan rahasia, penipuan, atau yang paling berbahaya, konten phishing.

 Meskipun email spam terkadang dikirim secara manual oleh manusia, paling sering dikirim menggunakan bot. Platform email paling populer, seperti Gmail dan Microsoft Outlook, secara otomatis memfilter email spam dengan menyaring frasa dan pola yang dapat dikenali. Beberapa email spam umum termasuk iklan palsu, email berantai, dan upaya peniruan identitas. Meskipun pendeteksi spam bawaan ini biasanya cukup efektif, kadang-kadang, email spam yang disamarkan dengan sangat baik bisa lolos dari celah, mendarat di kotak masuk Anda alihalih folder spam Anda.

 Mengklik email spam bisa berbahaya, memaparkan komputer dan informasi pribadi Anda ke berbagai jenis malware. Oleh karena itu, penting untuk menerapkan langkah-langkah keamanan tambahan untuk melindungi perangkat Anda, terutama saat menangani informasi sensitif seperti data pengguna.

Description

Pembahasan

Pertama, kami akan mengimpor dependensi yang diperlukan. Pandas adalah perpustakaan yang sebagian besar digunakan oleh ilmuwan data untuk pembersihan dan analisis data. Scikit-learn, juga disebut Sklearn, adalah perpustakaan yang tangguh untuk pembelajaran mesin dengan Python. Ini memberikan pilihan alat yang efisien untuk pembelajaran mesin dan pemodelan statistik, termasuk klasifikasi, regresi, pengelompokan, dan pengurangan dimensi melalui antarmuka yang konsisten. Jalankan perintah di bawah ini untuk mengimpor dependensi yang diperlukan:

 

Pada kode di atas, kita membuat file spam.csv, yang akan kita ubah menjadi bingkai data dan simpan ke folder spam kita. Bingkai data adalah struktur yang menyelaraskan data secara tabular dalam baris dan kolom.

 

Python train_test_split()

Kami akan menggunakan metode pemisahan uji coba untuk melatih pendeteksi spam email kami untuk mengenali dan mengkategorikan email spam. Pemisahan uji-latih adalah teknik untuk mengevaluasi kinerja algoritme pembelajaran mesin.

 Kita dapat menggunakannya untuk klasifikasi atau regresi dari algoritma pembelajaran yang diawasi. Prosedurnya melibatkan pengambilan dataset dan membaginya menjadi dua dataset terpisah.

 Dataset pertama digunakan agar sesuai dengan model dan disebut sebagai dataset pelatihan. Untuk dataset kedua, dataset uji, kami menyediakan elemen input ke model. Terakhir, kami membuat prediksi, membandingkannya dengan hasil aktual. Latih dataset: digunakan agar sesuai dengan model pembelajaran mesin Test dataset: digunakan untuk mengevaluasi kecocokan model machine learning Kami akan menyesuaikan model pada data yang tersedia dengan input dan output yang diketahui. Kemudian, kami akan membuat prediksi berdasarkan contoh baru di mana kami tidak memiliki nilai output atau target yang diharapkan.

 Kami akan mengambil data dari sampel file .csv kami, yang berisi contoh yang telah diklasifikasikan sebelumnya menjadi spam dan nonspam, masing-masing menggunakan label spam dan ham. Untuk membagi data menjadi dua kumpulan data, kami akan menggunakan metode train_test_split() scikit-learn.

Katakanlah kita memiliki 100 catatan dalam kumpulan data yang dimuat. Jika kami menentukan kumpulan data pengujian adalah 30 persen, kami akan membagi 70 catatan untuk pelatihan dan menggunakan 30 catatan sisanya untuk pengujian.

z = spam['EmailText'] menugaskan kolom EmailText dari spam ke z. Ini berisi data yang akan kita jalankan melalui model. y = spam["Label"] menugaskan kolom Label dari spam ke y, memberi tahu model untuk memperbaiki jawabannya. Anda dapat melihat tangkapan layar dari kumpulan data mentah di bawah ini.

Fungsi z_train , z_test , y_train , y_test = train_test_split(z,y,test_size = 0.2) membagi kolom z dan y menjadi z_train untuk input training, y_train untuk label training,

 z_test untuk input testing, dan y_test untuk label testing. test_size=0.2 menyetel set pengujian ke 20 persen dari z dan y.

 , CountVectorizer() secara acak menetapkan nomor untuk setiap kata dalam proses yang disebut tokenizing. Kemudian, menghitung jumlah kemunculan kata dan menyimpannya ke cv. Pada titik ini, kami hanya menetapkan metode untuk cv

fitur = cv.fit_transform(z_train) memberikan nomor secara acak untuk setiap kata. Itu menghitung jumlah kemunculan setiap kata, lalu menyimpannya ke cv.

 Pada gambar di bawah, 0 mewakili indeks email. Urutan angka di kolom tengah mewakili kata yang dikenali oleh fungsi kita, dan angka di sebelah kanan menunjukkan berapa kali kata itu dihitung:

 

 

Membangun model

SVM, algoritma mesin vektor dukungan, adalah model linier untuk klasifikasi dan regresi. Ide SVM sederhana, algoritma membuat garis, atau hyperplane, yang memisahkan data ke dalam kelas-kelas. SVM dapat memecahkan masalah linear dan non-linear:

model = svm.SVC() menugaskan svm.SVC() ke model. Dalam fungsi model.fit(features,y_train) , model.fit melatih model dengan fitur dan y_train . Kemudian, ia memeriksa prediksi terhadap label y_train dan menyesuaikan parameternya hingga mencapai akurasi setinggi mungkin.

UJI MODEL

Fungsi features_test = cv.transform(z_test) membuat prediksi dari z_test yang akan melewati vektorisasi hitungan. Ini menyimpan hasil ke file features_test. Dalam fungsi print(model.score(features_test,y_test)) , mode.score() menilai prediksi features_test terhadap label sebenarnya di y_test .

Informasi Course Terkait
  Kategori: Artificial Intelligence
  Course: Machine Learning For Beginner