Heim > Artikel > Backend-Entwicklung > Naive Bayes-Beispiele in Python
Python ist eine einfache und leicht zu erlernende Programmiersprache mit umfangreichen wissenschaftlichen Computerbibliotheken und Datenverarbeitungstools. Unter ihnen ist der Naive-Bayes-Algorithmus als klassische Methode des maschinellen Lernens auch in der Python-Sprache weit verbreitet. In diesem Artikel werden Beispiele verwendet, um die Verwendung und Schritte von Naive Bayes in Python vorzustellen.
Der Naive Bayes-Algorithmus ist ein Klassifizierungsalgorithmus, der auf dem Bayes-Theorem basiert. Seine Kernidee besteht darin, die Klassifizierungsergebnisse neuer Daten anhand der Eigenschaften des bekannten Trainingsdatensatzes abzuleiten. In praktischen Anwendungen wird der Naive-Bayes-Algorithmus häufig in Szenarien wie Textklassifizierung, Spam-Filterung und Stimmungsanalyse verwendet.
Das Merkmal des Naive-Bayes-Algorithmus ist, dass er davon ausgeht, dass jedes Merkmal unabhängig voneinander ist. Diese Annahme trifft in tatsächlichen Situationen oft nicht zu, daher wird der Naive-Bayes-Algorithmus als „naiv“ bezeichnet. Trotz dieser Annahme schneidet Naive Bayes bei Problemen wie der Kurztextklassifizierung immer noch gut ab.
In Python können die Schritte zur Verwendung des Naive-Bayes-Klassifikators wie folgt zusammengefasst werden:
2.1 Daten vorbereiten
Zuerst müssen Sie die Trainingsdaten vorbereiten und die zu klassifizierenden Daten testen. Diese Daten können in Form von Text, Bildern, Audio usw. vorliegen, müssen jedoch in eine für den Computer verständliche Form umgewandelt werden. Bei Textklassifizierungsproblemen ist es häufig erforderlich, Text in eine Vektordarstellung umzuwandeln.
2.2 Trainingsmodell
Als nächstes müssen Sie den Trainingsdatensatz verwenden, um den Naive Bayes-Klassifikator zu erstellen. In Python gibt es drei häufig verwendete naive Bayes-Klassifikatoren:
Am Beispiel der Textklassifizierung können Sie die von der sklearn-Bibliothek bereitgestellte TfidfVectorizer-Klasse verwenden, um den Text in eine Vektordarstellung umzuwandeln, und den MultinomialNB-Klassifikator für das Training verwenden.
2.3 Testen des Modells
Nach Abschluss des Trainings muss der Testdatensatz verwendet werden, um die Leistung des Modells zu bewerten. Normalerweise sind der Testdatensatz und der Trainingsdatensatz unabhängig. Es ist zu beachten, dass Daten aus dem Trainingsdatensatz während des Tests nicht verwendet werden können. Sie können die von der Sklearn-Bibliothek bereitgestellte Funktion precision_score verwenden, um die Genauigkeit des Modells zu berechnen.
Um die praktische Anwendung des Naive Bayes-Klassifikators zu demonstrieren, wird in diesem Artikel eine Textklassifizierung basierend auf Naive Bayes als Beispiel herangezogen.
3.1 Daten vorbereiten
Suchen Sie zunächst zwei Textdatensätze aus dem Internet, nämlich „Sportnachrichten“ und „Technologienachrichten“. Jeder Datensatz enthält 1000 Texte. Legen Sie die beiden Datensätze in verschiedene Ordner und kennzeichnen Sie die Texte als „Sport“ bzw. „Technologie“.
3.2 Verwenden Sie die Sklearn-Bibliothek zur Klassifizierung.
Als nächstes verwenden Sie zur Klassifizierung den von der Sklearn-Bibliothek bereitgestellten naiven Bayes-Klassifikator.
(1) Verwandte Bibliotheken importieren
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) Textdaten und ihre Anmerkungen lesen
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) Text in Vektordarstellung konvertieren
def text_vectorizer(text_list): vectorizer = TfidfVectorizer() X = vectorizer.fit_transform(text_list) return X, vectorizer
(4) Modell trainieren und Genauigkeit zurückgeben
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) Testen Modell
def predict(clf, vectorizer, text): X = vectorizer.transform(text) y_pred = clf.predict(X) return y_pred[0]
3.3 Ergebnisanalyse
Durch Ausführen des obigen Codes können Sie eine Genauigkeit des Klassifikators von 0,955 erhalten. Bei der eigentlichen Klassifizierung müssen Sie lediglich den zu klassifizierenden Text in die Vorhersagefunktion eingeben, um die Kategorie zurückzugeben, zu der er gehört. Geben Sie beispielsweise den Text „iPhone 12 ist endlich erschienen!“ ein, um zur Kategorie „Technologie“ zurückzukehren.
Als einfacher und effektiver Klassifizierungsalgorithmus wird der Naive Bayes-Algorithmus auch häufig in Python verwendet. In diesem Artikel werden die Methoden und Schritte zur Verwendung des Naive-Bayes-Klassifikators vorgestellt und die Textklassifizierung basierend auf Naive Bayes als Beispiel verwendet, um die praktische Anwendung des Klassifikators zu demonstrieren. Im eigentlichen Anwendungsprozess sind auch Datenvorverarbeitung, Merkmalsauswahl und andere Vorgänge erforderlich, um die Genauigkeit des Klassifikators zu verbessern.
Das obige ist der detaillierte Inhalt vonNaive Bayes-Beispiele in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!