Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan algoritma Naive Bayes menggunakan Python?

Bagaimana untuk melaksanakan algoritma Naive Bayes menggunakan Python?

PHPz
PHPzasal
2023-09-19 08:42:161516semak imbas

Bagaimana untuk melaksanakan algoritma Naive Bayes menggunakan Python?

Bagaimana untuk melaksanakan algoritma Naive Bayes menggunakan Python?

Pengenalan:
Algoritma Naive Bayes ialah algoritma klasifikasi berdasarkan teori kebarangkalian dan digunakan secara meluas dalam pengelasan teks, penapisan spam, analisis sentimen dan bidang lain. Artikel ini akan memperkenalkan secara ringkas prinsip algoritma Naive Bayes dan memberikan contoh kod untuk melaksanakan algoritma Naive Bayes menggunakan Python.

1. Prinsip algoritma Naive Bayes

  1. Kebarangkalian bersyarat dan formula Bayesian
    Algoritma Naive Bayes adalah berdasarkan kebarangkalian bersyarat dan formula Bayesian. Kebarangkalian bersyarat merujuk kepada kebarangkalian kejadian B berlaku memandangkan peristiwa A diketahui berlaku.
#🎜🎜 Formula #Bayes digunakan untuk mengira kebarangkalian kejadian A berlaku di bawah keadaan peristiwa B diketahui berlaku.

  1. prinsip algoritma Naive Bayes

    Algoritma Naive Bayes mengira kebarangkalian bahawa input tergolong dalam setiap kategori yang diberi input, dan kemudian memberikan input kepada dalam kategori dengan kebarangkalian tertinggi. Prinsip asas boleh dinyatakan sebagai formula berikut:

         P(类别|特征) = P(特征|类别) * P(类别) / P(特征)
    

di mana P (kategori|ciri) ialah kebarangkalian posterior, yang mewakili kebarangkalian kategori tertentu diberi ciri. ;

P (ciri | kategori) ialah kebarangkalian, menunjukkan kebarangkalian bahawa ciri tersebut tergolong dalam kategori tertentu
P (kategori) ialah kebarangkalian terdahulu, menunjukkan kebarangkalian kategori itu muncul; data keseluruhan; #🎜 🎜#P(ciri) ialah faktor penormalan yang digunakan untuk memastikan jumlah kebarangkalian ialah 1.

2. Gunakan Python untuk melaksanakan algoritma Naive Bayes

Berikut ialah contoh kod mudah yang menunjukkan cara menggunakan Python untuk melaksanakan algoritma Naive Bayes untuk pengelasan teks.

import numpy as np

class NaiveBayes:
    def __init__(self):
        self.classes = None
        self.class_priors = None
        self.feature_likelihoods = None
    
    def fit(self, X, y):
        self.classes = np.unique(y)
        self.class_priors = np.zeros(len(self.classes))
        self.feature_likelihoods = np.zeros((len(self.classes), X.shape[1]))
        
        for i, c in enumerate(self.classes):
            X_c = X[y == c]
            self.class_priors[i] = len(X_c) / len(X)
            self.feature_likelihoods[i] = np.mean(X_c, axis=0)
    
    def predict(self, X):
        preds = []
        
        for x in X:
            likelihoods = []
            
            for i, c in enumerate(self.classes):
                likelihood = np.prod(self.feature_likelihoods[i] ** x * (1 - self.feature_likelihoods[i]) ** (1 - x))
                likelihoods.append(likelihood)
            
            pred = self.classes[np.argmax(likelihoods)]
            preds.append(pred)
        
        return preds

Dalam kod di atas, kelas NaiveBayes ialah kelas tersuai kami dan mengandungi dua kaedah: fit dan predict. Kaedah fit digunakan untuk melatih model, menerima data latihan X dan label y sebagai input. Ia mula-mula memperoleh semua kategori bukan pendua dan mengira kebarangkalian terdahulu bagi setiap kategori. Kemudian, untuk setiap kategori, kemungkinan yang sepadan dengan setiap ciri dikira, iaitu nilai min kebarangkalian ciri itu muncul dalam kategori tersebut.

Kaedah ramalan digunakan untuk meramal data sampel baharu dan menerima data ujian X sebagai input. Ia melalui setiap sampel input, mengira kemungkinan setiap kategori dan memilih kategori dengan kebarangkalian tertinggi sebagai hasil ramalan.

3. Ringkasan

Artikel ini memperkenalkan prinsip algoritma Naive Bayes dan memberikan contoh kod menggunakan Python untuk melaksanakan algoritma Naive Bayes. Algoritma Naive Bayes ialah algoritma pengelasan yang mudah dan berkesan dengan keberkesanan dan kecekapan tinggi dalam aplikasi praktikal. Dengan memahami prinsip algoritma Naive Bayes dan menulis kod dalam Python, anda boleh menggunakan algoritma Naive Bayes dengan lebih baik untuk menyelesaikan masalah praktikal.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan algoritma Naive Bayes menggunakan 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