ANFRAGE
Machine Learning mit Python: Ein einfaches Beispiel

SOFTWARE & KI

Machine Learning ist ein faszinierendes Gebiet der künstlichen Intelligenz, das es Computern ermöglicht, aus Daten zu lernen und Vorhersagen zu treffen. In diesem Blogbeitrag werden wir anhand eines einfachen Python-Beispiels die Grundlagen des Machine Learnings erkläre

Unser Szenario: Lerndauer und Testergebnisse

Stellen wir uns vor, wir haben Daten von 25 Studenten gesammelt, die die Beziehung zwischen ihrer Lerndauer und den erreichten Punktzahlen in einem Test zeigen. Unser Ziel ist es, ein Modell zu erstellen, das die Testpunktzahl basierend auf der Lerndauer vorhersagen kann1.

Daten generieren

Zunächst generieren wir synthetische Daten für unser Beispiel. Wir verwenden Python mit den Bibliotheken NumPy und Pandas:

import numpy as np
import pandas as pd

# Zufällige Daten generieren
np.random.seed(42)  # Für Reproduzierbarkeit
lerndauer = np.random.uniform(1, 10, 25)  # Lerndauer zwischen 1 und 10 Stunden
punktzahl = 9.38 * lerndauer + 4.82 + np.random.normal(0, 5, 25)  # Lineare Beziehung mit etwas Rauschen

# DataFrame erstellen
data = pd.DataFrame({'Lerndauer': lerndauer, 'Punktzahl': punktzahl})
print(data.head())

Diese Daten repräsentieren unsere "Beobachtungen" von Studenten2.

Daten visualisieren

Bevor wir mit dem Machine Learning beginnen, visualisieren wir unsere Daten:

import matplotlib.pyplot as plt

plt.figure(figsize=(10, 6))
plt.scatter(data['Lerndauer'], data['Punktzahl'])
plt.xlabel('Lerndauer (Stunden)')
plt.ylabel('Punktzahl')
plt.title('Beziehung zwischen Lerndauer und Testergebnis')
plt.show()
Statistische Daten

Lineare Regression mit Scikit-learn

Nun wenden wir einen einfachen Machine Learning-Algorithmus an: die lineare Regression. Wir verwenden dafür die Scikit-learn Bibliothek:

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score

# Daten in Trainings- und Testsets aufteilen
X = data[['Lerndauer']]
y = data['Punktzahl']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Modell trainieren
model = LinearRegression()
model.fit(X_train, y_train)

# Vorhersagen machen
y_pred = model.predict(X_test)

# Modellperformance evaluieren
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)

print(f"Mean squared error: {mse:.2f}")
print(f"R-squared score: {r2:.2f}")

Ergebnisse visualisieren

Zum Schluss visualisieren wir unser Modell zusammen mit den Originaldaten:

plt.figure(figsize=(10, 6))
plt.scatter(data['Lerndauer'], data['Punktzahl'], color='blue', label='Originaldaten')
plt.plot(X, model.predict(X), color='red', label='Regressionslinie')
plt.xlabel('Lerndauer (Stunden)')
plt.ylabel('Punktzahl')
plt.title('Lineare Regression: Lerndauer vs. Testergebnis')
plt.legend()
plt.show()
Testergebnis

Fazit

In diesem einfachen Beispiel haben wir gesehen, wie man mit Python und Scikit-learn ein grundlegendes Machine Learning-Modell erstellen kann. Wir haben synthetische Daten generiert, sie visualisiert, ein lineares Regressionsmodell trainiert und seine Leistung bewertet.

Dieses Beispiel zeigt die grundlegende Funktionsweise von überwachtem Machine Learning: Wir haben ein Modell mit bekannten Daten (Lerndauer und zugehörige Punktzahl) trainiert, um Vorhersagen für neue, ungesehene Daten zu treffen.

In der Praxis würden wir natürlich mit realen Daten arbeiten und möglicherweise komplexere Modelle verwenden. Dennoch veranschaulicht dieses einfache Beispiel die Grundprinzipien des Machine Learnings und bietet einen guten Ausgangspunkt für weitere Experimente und Lernprozesse.