Naives Bayes-Beispiel

Machine LearningMachine LearningBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden wir ein Beispiel betrachten, bei dem Naive Bayes-Klassifizierer aus der scikit-learn-Bibliothek in Python verwendet werden. Naive Bayes-Klassifizierer sind eine Gruppe von Supervised-Learning-Algorithmen, die häufig für Klassifizierungstasks eingesetzt werden. Diese Klassifizierer basieren auf der Anwendung des Bayes-Theorems unter der Annahme von bedingter Unabhängigkeit zwischen jeder Paarung von Merkmalen bei gegebener Wert der Klassenvariable.

In diesem Beispiel werden wir den Gaussian Naive Bayes-Klassifizierer aus scikit-learn verwenden, um den Iris-Datensatz zu klassifizieren, der ein populärer Datensatz für maschinelles Lernen ist. Ziel ist es, die Art einer Irisblume anhand ihrer Blütenblatt- und Kelchblattdimensionen vorherzusagen.

Tipps für die VM

Nachdem der VM-Start abgeschlossen ist, klicken Sie in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu nutzen.

Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund von Einschränkungen in Jupyter Notebook nicht automatisiert werden.

Wenn Sie bei der Lernphase Probleme haben, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback ab, und wir werden das Problem für Sie prompt beheben.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn(("Sklearn")) -.-> sklearn/CoreModelsandAlgorithmsGroup(["Core Models and Algorithms"]) sklearn(("Sklearn")) -.-> sklearn/ModelSelectionandEvaluationGroup(["Model Selection and Evaluation"]) sklearn(("Sklearn")) -.-> sklearn/UtilitiesandDatasetsGroup(["Utilities and Datasets"]) sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/naive_bayes("Naive Bayes") sklearn/ModelSelectionandEvaluationGroup -.-> sklearn/model_selection("Model Selection") sklearn/UtilitiesandDatasetsGroup -.-> sklearn/datasets("Datasets") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/naive_bayes -.-> lab-71106{{"Naives Bayes-Beispiel"}} sklearn/model_selection -.-> lab-71106{{"Naives Bayes-Beispiel"}} sklearn/datasets -.-> lab-71106{{"Naives Bayes-Beispiel"}} ml/sklearn -.-> lab-71106{{"Naives Bayes-Beispiel"}} end

Bibliotheken importieren und den Datensatz laden

Lassen Sie uns beginnen, indem wir die erforderlichen Bibliotheken importieren und den Iris-Datensatz laden. Wir werden die Funktion load_iris aus dem Modul sklearn.datasets verwenden, um den Datensatz zu laden.

from sklearn.datasets import load_iris

## Lade den Iris-Datensatz
iris = load_iris()
X = iris.data  ## Merkmale
y = iris.target  ## Zielvariable

print("Anzahl der Samples:", X.shape[0])
print("Anzahl der Merkmale:", X.shape[1])
print("Anzahl der Klassen:", len(set(y)))

Den Datensatz in Trainings- und Testsets unterteilen

Als nächstes werden wir den Datensatz unter Verwendung der Funktion train_test_split aus dem Modul sklearn.model_selection in Trainings- und Testsets aufteilen. Der Trainingssatz wird verwendet, um den Naiven Bayes-Klassifizierer zu trainieren, und der Testsatz wird verwendet, um seine Leistung zu evaluieren.

from sklearn.model_selection import train_test_split

## Teilen Sie den Datensatz in Trainings- und Testsets auf
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

Den Gauß'schen Naiven Bayes-Klassifizierer trainieren und evaluieren

Jetzt werden wir den Gauß'schen Naiven Bayes-Klassifizierer auf dem Trainingssatz trainieren und seine Leistung auf dem Testsatz evaluieren. Wir werden die Klasse GaussianNB aus dem Modul sklearn.naive_bayes verwenden.

from sklearn.naive_bayes import GaussianNB

## Erstellen Sie einen Gauß'schen Naiven Bayes-Klassifizierer
gnb = GaussianNB()

## Trainieren Sie den Klassifizierer
gnb.fit(X_train, y_train)

## Vorhersagen Sie die Zielvariable für den Testsatz
y_pred = gnb.predict(X_test)

## Berechnen Sie die Genauigkeit des Klassifizierers
accuracy = (y_pred == y_test).sum() / len(y_test)
print("Genauigkeit:", accuracy)

Die Ergebnisse interpretieren

Anhand der erzielten Genauigkeit können wir die Leistung des Gauß'schen Naiven Bayes-Klassifizierers auf dem Iris-Datensatz interpretieren. Die Genauigkeit repräsentiert den Anteil der korrekt vorhergesagten Zielvariablenwerte im Testsatz. In diesem Fall repräsentiert die Genauigkeit den Anteil der korrekt klassifizierten Irisblumenarten.

Zusammenfassung

In diesem Lab haben wir ein Beispiel für die Verwendung des Gauß'schen Naiven Bayes-Klassifizierers aus scikit-learn durchlaufen. Wir haben den Iris-Datensatz geladen, ihn in Trainings- und Testsets unterteilt, den Klassifizierer auf dem Trainingssatz trainiert und seine Leistung auf dem Testsatz ausgewertet. Die erzielte Genauigkeit gibt uns einen Anhaltspunkt dafür, wie gut der Klassifizierer in der Vorhersage der Irisblumenarten performt. Naive Bayes-Klassifizierer sind einfache, aber effektive Algorithmen für Klassifizierungstasks und werden häufig in verschiedenen realen Anwendungen verwendet.