Maison  >  Article  >  développement back-end  >  Exemples Naive Bayes en Python

Exemples Naive Bayes en Python

王林
王林original
2023-06-09 23:36:06901parcourir

Python est un langage de programmation simple et facile à apprendre doté de riches bibliothèques de calcul scientifique et d'outils de traitement de données. Parmi eux, l’algorithme Naive Bayes, en tant que méthode classique d’apprentissage automatique, est également largement utilisé dans le langage Python. Cet article utilisera des exemples pour présenter les méthodes et les étapes d'utilisation de Naive Bayes en Python.

  1. Introduction à Naive Bayes

L'algorithme Naive Bayes est un algorithme de classification basé sur le théorème de Bayes. Son idée principale est de déduire les résultats de classification de nouvelles données à travers les caractéristiques de l'ensemble de données d'entraînement connu. Dans les applications pratiques, l'algorithme Naive Bayes est souvent utilisé dans des scénarios tels que la classification de texte, le filtrage du spam et l'analyse des sentiments.

La caractéristique de l'algorithme Naive Bayes est qu'il suppose que chaque fonctionnalité est indépendante les unes des autres. Cette hypothèse n'est souvent pas vraie dans les situations réelles, c'est pourquoi l'algorithme Naive Bayes est appelé « naïf ». Malgré cette hypothèse, Naive Bayes fonctionne toujours bien sur des problèmes tels que la classification de textes courts.

  1. Utilisation du Naive Bayes Classifier

En Python, les étapes d'utilisation du Naive Bayes Classifier peuvent être résumées comme suit :

2.1 Préparer les données

Vous devez d'abord préparer les données d'entraînement et les tests pour classer les données. Ces données peuvent se présenter sous forme de texte, d’images, d’audio, etc., mais elles doivent être converties sous une forme compréhensible par l’ordinateur. Dans les problèmes de classification de texte, il est souvent nécessaire de convertir le texte en représentation vectorielle.

2.2 Modèle de formation

Ensuite, vous devez utiliser l'ensemble de données de formation pour créer le classificateur Naive Bayes. Il existe trois classificateurs Bayes naïfs couramment utilisés en Python :

  • GaussianNB : convient à la classification de données continues.
  • BernoulliNB : Convient à la classification des données binaires.
  • MultinomialNB : convient à la classification de données multivariées.

En prenant la classification de texte comme exemple, vous pouvez utiliser la classe TfidfVectorizer fournie par la bibliothèque sklearn pour convertir le texte en représentation vectorielle, et utiliser le classificateur MultinomialNB pour la formation.

2.3 Test du modèle

Une fois la formation terminée, l'ensemble de données de test doit être utilisé pour évaluer les performances du modèle. Généralement, l'ensemble de données de test et l'ensemble de données d'entraînement sont indépendants. Il convient de noter que les données de l'ensemble de données de formation ne peuvent pas être utilisées pendant les tests. Vous pouvez utiliser la fonction precision_score fournie par la bibliothèque sklearn pour calculer la précision du modèle.

  1. Exemple : Classification de texte basée sur Naive Bayes

Afin de démontrer l'application pratique du classificateur Naive Bayes, cet article prend comme exemple la classification de texte basée sur Naive Bayes.

3.1 Préparer les données

Tout d'abord, recherchez deux ensembles de données textuelles sur Internet, à savoir « Sports News » et « Technology News », chaque ensemble de données contient 1 000 textes. Placez les deux ensembles de données dans des dossiers différents et étiquetez respectivement les textes comme « Sports » et « Technologie ».

3.2 Utilisez la bibliothèque sklearn pour la classification

Ensuite, utilisez le classificateur naïf Bayes fourni par la bibliothèque sklearn pour la classification.

(1) Importer des bibliothèques associées

from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import accuracy_score
import os

(2) Lire les données textuelles et leurs annotations

def read_files(path):
    text_list = []
    label_list = []
    for root, dirs, files in os.walk(path):
        for file in files:
            file_path = os.path.join(root, file)
            with open(file_path, 'r', encoding='utf-8') as f:
                text = ''.join(f.readlines())
                text_list.append(text)
                if '体育' in file_path:
                    label_list.append('体育')
                elif '科技' in file_path:
                    label_list.append('科技')
    return text_list, label_list

(3) Convertir le texte en représentation vectorielle

def text_vectorizer(text_list):
    vectorizer = TfidfVectorizer()
    X = vectorizer.fit_transform(text_list)
    return X, vectorizer

(4) Entraîner le modèle et renvoyer la précision

def train(text_list, label_list):
    X, vectorizer = text_vectorizer(text_list)
    y = label_list
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
    clf = MultinomialNB()
    clf.fit(X_train, y_train)
    y_pred = clf.predict(X_test)
    acc = accuracy_score(y_test, y_pred)
    return clf, vectorizer, acc

(5) Test model

def predict(clf, vectorizer, text):
    X = vectorizer.transform(text)
    y_pred = clf.predict(X)
    return y_pred[0]

3.3 Analyse des résultats

En exécutant le code ci-dessus, vous pouvez obtenir que la précision du classificateur soit de 0,955. Lors de l'exécution d'une classification réelle, il vous suffit de saisir le texte à classer dans la fonction de prédiction pour renvoyer la catégorie à laquelle il appartient. Par exemple, saisissez le texte « L'iPhone 12 est enfin sorti ! » pour revenir à la catégorie « Technologie ».

  1. Résumé

En tant qu'algorithme de classification simple et efficace, l'algorithme Naive Bayes est également largement utilisé en Python. Cet article présente les méthodes et les étapes d'utilisation du classificateur Naive Bayes et prend comme exemple la classification de texte basée sur Naive Bayes pour démontrer l'application pratique du classificateur. Dans le processus de candidature réel, le prétraitement des données, la sélection des fonctionnalités et d'autres opérations sont également nécessaires pour améliorer la précision du classificateur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn