Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Contoh algoritma Naive Bayes dalam Python

Contoh algoritma Naive Bayes dalam Python

王林
王林asal
2023-06-10 08:23:181364semak imbas

Algoritma Naive Bayes ialah salah satu algoritma pembelajaran mesin klasik Ia digunakan secara meluas, terutamanya dalam bidang seperti klasifikasi teks dan penapisan spam, serta mempunyai ketepatan dan kecekapan yang tinggi. Artikel ini akan memperkenalkan pelaksanaan algoritma Naive Bayes dalam Python dan menggambarkan aplikasinya dengan contoh.

1. Pengenalan kepada algoritma Naive Bayes
Algoritma Naive Bayes ialah algoritma pengelasan berdasarkan teorem Bayes dan andaian kebebasan ciri. Idea asas adalah untuk membuat kesimpulan klasifikasi data baharu melalui kebarangkalian bersyarat bagi data kategori yang diketahui. Secara khusus, sebelum pengelasan, model perlu dilatih, iaitu, kebarangkalian bersyarat bagi setiap ciri di bawah setiap kategori dikira. Kemudian apabila mengklasifikasikan, kebarangkalian bahawa data baharu tergolong dalam setiap kategori dikira mengikut teorem Bayes, dan kategori yang sepadan dengan kebarangkalian maksimum dipilih sebagai hasil ramalan. Oleh kerana ciri diandaikan bebas, algoritma dinamakan "Naive Bayes".

2. Pelaksanaan Naive Bayes dalam Python
Terdapat berbilang perpustakaan atau modul dalam Python yang boleh digunakan untuk melaksanakan algoritma Naive Bayes, seperti scikit-learn, nltk, gensim, dsb. Artikel ini akan memperkenalkan cara melaksanakan algoritma Bayes yang naif menggunakan perpustakaan pembelajaran scikit.

1 Sediakan set data
Mula-mula, anda perlu menyediakan set data untuk melatih dan menguji pengelas. Dalam contoh ini, kami memilih "Set Data Pangkalan Spam" pada UCI Machine Learning Repository Set data ini mengandungi 4601 e-mel, yang mana 1813 adalah e-mel spam dan 2788 adalah e-mel biasa. Set data ini boleh dimuat turun dan disimpan dalam format CSV.

2. Import data dan bahagikan set latihan dan set ujian
Gunakan fungsi read_csv pustaka panda untuk membaca fail CSV ke dalam format DataFrame dan bahagikannya kepada set latihan dan set ujian. Kodnya adalah seperti berikut:

import panda sebagai pd
daripada sklearn.model_selection import train_test_split

Import data

df = pd.read_csv('spambase.csv' )

Bahagikan set latihan dan set ujian

X = df.iloc[:, :-1]
y = df.iloc[:, -1]
X_train, X_test, y_train, y_test = train_test_split (X, y, test_size=0.3, random_state=42)

3 Model latihan
Gunakan kelas MultinomialNB pustaka sklearn untuk memulakan model klasifikasi Bayes yang naif. dan gunakan data latihan untuk latihan model, kod Seperti berikut:

dari sklearn.naive_bayes import MultinomialNB

Model latihan

clf = MultinomialNB()
clf.fit (X_train, y_train)

4. Model ujian
Gunakan set ujian untuk menguji pengelas dan mengira ketepatan pengelasan adalah seperti berikut:

daripada sklearn.metrics import accuracy_score.

Model ujian

y_pred = clf.predict(X_test)
acc = accuracy_score(y_test, y_pred)
print('Ketepatan: {:.2f}%'.format (acc*100))

5 Guna model
Gunakan model terlatih untuk mengklasifikasikan data baharu dan mengeluarkan hasil ramalan adalah seperti berikut:

Gunakan model

data_baharu = [[0.05, 0.08, 0.00, 0.00, 0.04, 0.00, 0.00, 0.14, 0.03, 0.10, 0.05, 0.00, 0.02, 0.0, 0.0, 0.0, 0.0, 0.04, 04, 0.67, 2.16, 10.00 , 136.00, 0.00, 0.96, 0.00, 0.00, 0.00, 0.32, 0.01]]
ramalan = clf.predict(data_baharu)
cetak('Ramalan:', ramalan)Dalam contoh ini, masalah klasifikasi digunakan, dan ciri-cirinya ialah Kekerapan perkataan dalam e-mel, dengan matlamat untuk mengklasifikasikan e-mel kepada spam dan e-mel biasa. Selepas latihan, algoritma Bayes naif digunakan untuk pengelasan dan ketepatan 90.78% diperolehi. Ia dapat dilihat daripada keputusan bahawa dalam situasi aplikasi tertentu, Naive Bayes mempunyai keputusan pengelasan yang sangat baik.


4. Kesimpulan

Algoritma Naive Bayes ialah kaedah pengelasan yang mudah dan berkesan, terutamanya digunakan secara meluas dalam pengelasan teks, penapisan spam dan medan lain. Pustaka scikit-learn dalam Python menyediakan pelaksanaan yang mudah bagi pengelas Bayes naif, yang boleh menyokong latihan, ujian dan aplikasi model dengan baik.

Atas ialah kandungan terperinci Contoh algoritma Naive Bayes dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn