Exemple d'algorithme Naive Bayes en Python

王林
Libérer: 2023-06-10 08:23:18
original
1373 Les gens l'ont consulté

L'algorithme Naive Bayes est l'un des algorithmes classiques d'apprentissage automatique. Il est largement utilisé, notamment dans des domaines tels que la classification de texte et le filtrage du spam, et présente une grande précision et efficacité. Cet article présentera l'implémentation de l'algorithme Naive Bayes en Python et illustrera son application avec des exemples.

1. Introduction à l'algorithme Naive Bayes
L'algorithme Naive Bayes est un algorithme de classification basé sur le théorème de Bayes et l'hypothèse d'indépendance des fonctionnalités. L'idée de base est de déduire la classification de nouvelles données à travers la probabilité conditionnelle de données de catégorie connues. Plus précisément, avant la classification, le modèle doit être entraîné, c'est-à-dire que la probabilité conditionnelle de chaque caractéristique dans chaque catégorie est calculée. Ensuite, lors de la classification, la probabilité que les nouvelles données appartiennent à chaque catégorie est calculée selon le théorème de Bayes, et la catégorie correspondant à la probabilité maximale est sélectionnée comme résultat de la prédiction. Puisque les caractéristiques sont supposées indépendantes, l’algorithme est nommé « Naive Bayes ».

2. Implémentation Naive Bayes en Python
Il existe plusieurs bibliothèques ou modules en Python qui peuvent être utilisés pour implémenter l'algorithme Naive Bayes, tels que scikit-learn, nltk, gensim, etc. Cet article expliquera comment implémenter l'algorithme naïf de Bayes à l'aide de la bibliothèque scikit-learn.

1. Préparez l'ensemble de données
Vous devez d'abord préparer un ensemble de données pour entraîner et tester le classificateur. Dans cet exemple, nous sélectionnons « Ensemble de données Spambase » sur le référentiel UCI Machine Learning. Cet ensemble de données contient 4 601 e-mails, dont 1 813 sont des e-mails indésirables et 2 788 sont des e-mails normaux. Cet ensemble de données peut être téléchargé et stocké au format CSV.

2. Importez les données et divisez l'ensemble d'entraînement et l'ensemble de test
Utilisez la fonction read_csv de la bibliothèque pandas pour lire le fichier CSV au format DataFrame et divisez-le en un ensemble d'entraînement et un ensemble de test.

importer des pandas au format pd
depuis sklearn.model_selection import train_test_split

Import data

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

Diviser l'ensemble d'entraînement et l'ensemble de test

X = df.iloc[:, :-1]
y = df .iloc[:, -1]
X_train, Classifiez le modèle et utilisez les données de formation pour la formation du modèle Le code est le suivant :

from sklearn.naive_bayes import MultinomialNB

Modèle de formation

.

clf = MultinomialNB()

clf.fit(X_train, y_train)

4. Testez le modèle
Utilisation L'ensemble de test teste le classificateur et calcule la précision de la classification :

from sklearn.metrics import Precision_score.

Modèle de test

y_pred = clf.predict(X_test)

acc = précision_score(y_test, y_pred)

print( 'Précision : {:.2f}%'.format(acc*100))


5. model
Utilisez le modèle entraîné pour classer les nouvelles données et générer les résultats de la prédiction :

Appliquez le modèle

new_data = [[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,04, 0,00, 0,10, 0,05, 0,01, 0,04, 0,6 7, 2,16, 10,00, 136,00, 0,00, 0,96, 0,00, 0,00, 0,00, 32, 0,01]]

prédiction = clf. Predict(new_data)

print('Prediction:', prédiction)


3. Exemple d'analyse
Cet exemple utilise un problème de classification. La fonctionnalité est la fréquence des mots dans l'e-mail, et l'objectif est de classer l'e-mail dans le spam et. email normal. Après formation, l’algorithme naïf de Bayes a été utilisé pour la classification et une précision de 90,78 % a été obtenue. Il ressort des résultats que dans certaines situations d'application, Naive Bayes a d'excellents résultats de classification.

4. Conclusion
L'algorithme Naive Bayes est une méthode de classification simple et efficace, particulièrement largement utilisée dans la classification de texte, le filtrage du spam et d'autres domaines. La bibliothèque scikit-learn en Python fournit une implémentation pratique du classificateur naïf de Bayes, qui peut bien prendre en charge la formation, les tests et l'application du modèle.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal