KI Elemente

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

Perceptron - Scikit learn

Implementierung eines Perceptrons mit Scikit learn.

Python Skript: PerceptronScikitLearn.py

# Stuhlpfarrer Ehrenfried - 2021
# Demo Perceptron Scikit-learn Implementierung

import numpy as np
import matplotlib.pyplot as plt
# Datenerzeugung
from sklearn import datasets
from sklearn.linear_model import Perceptron

# Daten erstellen für das Lernen
# Punkthaufen mit 2 Kategorien, die linear trennbar sind
# n_samples = Anzahl an Datenpunkten pro Kategorie
# n_features = Anzahl der Kategorien
# centers = Anzahl der Punkthaufen
# random_state = Seed für Zufallsgenerator
X, y = datasets.make_blobs(n_samples=50, n_features=2, centers=2, random_state=3)
# Klassifikationen
# Aufbau eines Rasters, um auszuwerten und zu zeichnen
s = 0.02 # Schrittweite im Raster
# Ermittlung der 1D Arrays, die die Koordinaten im Raster repräsentieren
x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1 # erste Koordinate
y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1 # zweite Koordinate
# np.arrange liefert ein ndarray mit gleichmäßig verteilten Werten
# np.meshgrid liefert Koordinatenmatrizen von Koordinaten - Vektoren
xx, yy = np.meshgrid(np.arange(x_min, x_max, s), np.arange(y_min, y_max, s))
# Das Perceptron instanzieren
# max_iter = Maximale Anzahl der Iterationen
# tol = Stoppkriterium
Perceptron = Perceptron(random_state=42, max_iter=1000)
# lernen
Perceptron.fit(X,y)
# Auswertung alle Rasterpunkte mit Array
# ravel() erzeugt ein 1D Array
# np.c_ erzeugt ein Punktpärchen Arrays für jeden Rasterpunkt,
# die als Input für das Perceptron dienen
Prediciton = Perceptron.predict(np.c_[xx.ravel(), yy.ravel()])
# Daten anzeigen in einem Plot
# Zuerst Plotten der Punkthaufen
plt.plot(X[:, 0][y == 0], X[:, 1][y == 0], 'b^') # blaue Dreiecke
plt.plot(X[:, 0][y == 1], X[:, 1][y == 1], 'ys') # gelbe Quadrate
# Umwandlung von 1D Array in die Rasterdimensionen [x_min, x_max] mal [y_min, y_max]
Prediciton = Prediciton.reshape(xx.shape)
# Plotten der Vorhersagen
plt.contourf(xx,yy, Prediciton, cmap=plt.cm.Paired)
plt.show()


KI

Copyright © 2021. All Rights Reserved. Ehrenfried Stuhlpfarrer