AI Artificial Intelligence

Viele Teile ergeben ein Ganzes! Die Kunst unwichtige Details zu vermeiden!

Naive Bayes - Single feature

Dabei geht es um ein einziges Merkmal, welches vorhergesagt werden soll. Um so etwas zu bauen, sollte man mit System vorgehen. Ein Beispiel zeigt das am Besten:

Worum geht es ?

  • Es gibt Wetterdaten (sonnig, bewölkt, regnerisch)
  • Es gibt Temperaturdaten (heiss, mild, kalt)
  • Es gibt Aktionsdaten - spiele (zum Beispiel Tennis) - (J, N) - Ja, Nein

Im folgenden Beispiel sind das Wetter und die Temperatur die Merkmale und spiele ist das Label (Etikett, Ergebnis .... )

Die Übersicht der vorhandenen Daten:


Datei: NaiveBayesSingleFeature.py

Version:1.0 StartHTML:0000000128 EndHTML:0000003153 StartFragment:0000000128 EndFragment:0000003153 SourceURL:about:blank

# Implementierung Naive Bayes - Single Feature
# 2022 Ehrenfried Stuhlpfarrer

# Import der erforderlichen Bibliotheken
# Labelencoder
from sklearn import preprocessing
# Gauss Naive Bayes - Model
from sklearn.naive_bayes import GaussianNB

# Zuordnen der Merkmale und Etiketten
# Features - Labels
wetter = ["sonnig", "sonnig", "bedeckt", "regnerisch", "regnerisch",
"bedeckt", "sonnig", "sonnig", "regnerisch", "bedeckt", "regnerisch"]
temperatur = ["heiss", "heiss", "heiss", "mild", "kalt", "kalt", "mild", "kalt",
"mild", "mild", "mild"]
spiele = ["N", "N", "J", "J", "N", "N", "J", "J", "J", "J", "J"]
# Objektinstanz - Label Encoder
LblEncoder = preprocessing.LabelEncoder()

# Die String Labels in Zahlen umwandeln
encodeWetterdaten = LblEncoder.fit_transform(wetter)
encodeTemperaturdaten = LblEncoder.fit_transform(temperatur)
encodeSpieledaten = LblEncoder.fit_transform(spiele)
# Ausgabe der codierten Labels
print("Kodierte Wetterdaten: \n", encodeWetterdaten)
print("Kodierte Temperaturdaten: \n", encodeTemperaturdaten)
print("Kodierte Spieledaten: \n", encodeSpieledaten)
-------------------------------------------------------------------------
Kodierte Wetterdaten: 
 [2 2 0 1 1 0 2 2 1 0 1]
Kodierte Temperaturdaten: 
 [0 0 0 2 1 1 2 1 2 2 2]
Kodierte Spieledaten: 
 [1 1 0 0 1 1 0 0 0 0 0]

-------------------------------------------------------------------------
# Kombinieren der Wetter und Temperaturdaten in einem Tupel
kombinierteMerkmale = tuple(zip(encodeWetterdaten, encodeTemperaturdaten))
print("Merkmale kombiniert: \n", kombinierteMerkmale)
-------------------------------------------------------------------------
Merkmale kombiniert: 
 ((2, 0), (2, 0), (0, 0), (1, 2), (1, 1), (0, 1), (2, 2), (2, 1), (1, 2), (0, 2), (1, 2))
-------------------------------------------------------------------------

# Gauss - Klassifizierer generieren
NaiveBayesModel = GaussianNB()

# Das Modell trainieren
NaiveBayesModel.fit(kombinierteMerkmale, encodeSpieledaten)

# Die Prognose - Ausgabe vorhersagen
vorhergesagt = NaiveBayesModel.predict([[1, 0]]) # regnerisch, heiss
print("Vorhergesagt: \n", vorhergesagt)
-------------------------------------------------------------------------
Vorhergesagt: 
 [1]
-------------------------------------------------------------------------
Es wird also nicht gespielt!













KI

Copyright © 2022. All Rights Reserved. Ehrenfried Stuhlpfarrer