W3docs

Erste Schritte

Python für Machine Learning einrichten, den ML-Workflow verstehen und das erste Modell mit scikit-learn, NumPy und pandas ausführen.

Erste Schritte mit Python Machine Learning

Dieses Kapitel führt in Machine Learning mit Python ein. Sie erfahren, was Machine Learning ist, warum Python die dominierende Sprache dafür ist, wie Sie eine funktionierende Umgebung einrichten und wie der vollständige ML-Workflow aufgebaut ist — von Rohdaten bis hin zu einem trainierten, evaluierten Modell.

Am Ende werden Sie ein vollständiges Klassifikationsbeispiel mit den drei Kernbibliotheken ausgeführt haben: NumPy, pandas und scikit-learn.

Was ist Machine Learning?

Machine Learning (ML) ist ein Teilgebiet der künstlichen Intelligenz, bei dem ein Programm Muster aus Daten erlernt, anstatt handgeschriebenen Regeln zu folgen. Sie stellen Beispiele (Daten) bereit, legen fest, was Sie vorhersagen oder entdecken möchten, und ein ML-Algorithmus ermittelt die Zuordnung.

Es gibt drei übergeordnete Kategorien:

KategorieWas sie tutTypisches Beispiel
Überwachtes LernenLernt aus beschrifteten Beispielen (Eingabe → bekannte Ausgabe)Spam-Erkennung, Hauspreisvorhersage
Unüberwachtes LernenFindet verborgene Strukturen in nicht beschrifteten DatenKundensegmentierung, Anomalieerkennung
Bestärkendes LernenEin Agent lernt durch Versuch und Irrtum mit BelohnungenSpielende KI, Robotik

Diese Reihe konzentriert sich auf überwachtes Lernen, da es in der Praxis die am häufigsten verwendete Kategorie ist.

Warum Python für Machine Learning?

Python ist aus mehreren Gründen zur Standardsprache für ML geworden:

  • Lesbare Syntax — Algorithmen lassen sich schnell ohne Boilerplate prototypisieren.
  • Reiches Ökosystem — scikit-learn, TensorFlow, PyTorch und Keras verfügen alle über erstklassige Python-APIs.
  • Datenwerkzeuge — NumPy und pandas machen die Datenaufbereitung unkompliziert.
  • Community — die größte ML-Community, was bedeutet: reichlich Tutorials, Stack-Overflow-Antworten und vortrainierte Modelle.

Einrichten Ihrer Umgebung

Python installieren

Laden Sie Python 3.10 oder neuer von python.org herunter. Überprüfen Sie die Installation:

python3 --version

Sie sollten eine Ausgabe wie Python 3.10.15 (oder neuer) sehen.

Eine virtuelle Umgebung erstellen

Eine virtuelle Umgebung isoliert die Pakete Ihres Projekts von der systemweiten Python-Installation. Dies verhindert Versionskonflikte zwischen Projekten.

python3 -m venv ml-env

Aktivieren Sie sie:

# macOS / Linux
source ml-env/bin/activate

# Windows (Command Prompt)
ml-env\Scripts\activate.bat

Ihre Eingabeaufforderung zeigt nun (ml-env) an, um zu bestätigen, dass die Umgebung aktiv ist.

Die Kernbibliotheken installieren

Installieren Sie bei aktiver virtueller Umgebung die drei Bibliotheken, die Sie in dieser Reihe verwenden werden:

pip install numpy pandas scikit-learn

Speichern Sie die genauen Versionen für die Reproduzierbarkeit:

pip freeze > requirements.txt

Jeder, der Ihr Projekt klont, kann Ihre Umgebung mit pip install -r requirements.txt reproduzieren.

Der Machine-Learning-Workflow

Jedes überwachte ML-Projekt folgt derselben fünfstufigen Pipeline:

Raw data → Clean & prepare → Split → Train model → Evaluate

Das Verständnis dieser Pipeline ist wichtiger als das Auswendiglernen eines einzelnen Algorithmus. Die folgenden Abschnitte gehen jeden Schritt mit Code durch.

Schritt 1 — Ihre Daten mit NumPy und pandas verstehen

Bevor Sie irgendetwas trainieren, müssen Sie wissen, wie Ihre Daten aussehen. NumPy bietet schnelle Array-Arithmetik; pandas fügt beschriftete Tabellen (DataFrames) hinzu, die die Erkundung erleichtern.

NumPy: ein numerisches Array untersuchen

import numpy as np

data = np.array([2.1, 3.4, 1.8, 5.0, 2.7])
print('Mean:', data.mean())   # 3.0
print('Std: ', round(data.std(), 4))  # 1.1402
print('Max: ', data.max())    # 5.0

pandas: einen kleinen Datensatz aufbauen

import pandas as pd

df = pd.DataFrame({
    'age':    [25, 30, 22, 35, 28],
    'income': [40000, 55000, 32000, 70000, 48000],
    'bought': [0,     1,     0,     1,     0],
})

print(df.shape)             # (5, 3)
print(df['income'].mean())  # 49000.0
print(df.isnull().sum())    # 0 missing values in each column

df.shape zeigt Ihnen die Anzahl der Zeilen und Spalten. isnull().sum() zählt fehlende Werte pro Spalte — prüfen Sie das immer vor der Modellierung.

Schritt 2 — Daten bereinigen und vorbereiten

Reale Datensätze haben fast immer fehlende Werte, inkonsistente Formate oder Merkmale auf sehr unterschiedlichen Skalen. Sie müssen diese Probleme vor dem Training beheben.

Fehlende Werte behandeln

Ersetzen Sie fehlende Zahlen durch den Median der Spalte (robust gegenüber Ausreißern) oder den Mittelwert:

import pandas as pd

df = pd.DataFrame({
    'age':    [25, None, 22, 35, 28],
    'income': [40000, 55000, None, 70000, 48000],
})

df['age']    = df['age'].fillna(df['age'].median())
df['income'] = df['income'].fillna(df['income'].mean())

print(df.isnull().sum())
# age       0
# income    0

Merkmale skalieren

Viele Algorithmen (k-nächste Nachbarn, SVMs, neuronale Netze) reagieren empfindlich auf die Merkmalsska­la. Eine Spalte mit Werten im Tausenderbereich wird eine Spalte mit einstelligen Werten dominieren, sofern Sie sie nicht normalisieren. StandardScaler subtrahiert den Mittelwert und dividiert durch die Standardabweichung, sodass jedes Merkmal den Mittelwert 0 und die Standardabweichung 1 hat:

from sklearn.preprocessing import StandardScaler
import numpy as np

X = np.array([[1.0, 200.0], [2.0, 400.0], [3.0, 300.0]])
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
print(X_scaled.round(2))
# [[-1.22 -1.22]
#  [ 0.    1.22]
#  [ 1.22  0.  ]]

Weitere Details finden Sie unter Feature Scaling.

Schritt 3 — In Trainings- und Testmengen aufteilen

Evaluieren Sie ein Modell niemals mit den Daten, auf denen es trainiert wurde — das wäre so, als würden Sie Ihre eigene Prüfung mit dem Lösungsblatt vor sich korrigieren. Teilen Sie die Daten auf, sodass das Modell auf einem Teil trainiert und auf einem zurückgehaltenen Teil evaluiert wird, den es noch nie gesehen hat.

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)

test_size=0.2 reserviert 20 % der Daten für Tests. random_state=42 macht die Aufteilung reproduzierbar. Weitere Strategien wie stratifiziertes Aufteilen und Kreuzvalidierung finden Sie im Kapitel Train/Test Split.

Schritt 4 — Ein Modell trainieren

Mit bereinigten, aufgeteilten Daten können Sie Ihr erstes Modell trainieren. Das folgende Beispiel verwendet den Iris-Datensatz — ein klassisches Benchmark mit 150 Proben, 4 numerischen Merkmalen und 3 zu klassifizierenden Blumenarten.

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score

# 1. Load
iris = load_iris()

# 2. Split
X_train, X_test, y_train, y_test = train_test_split(
    iris.data, iris.target, test_size=0.2, random_state=42
)

# 3. Train
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)

# 4. Predict & evaluate
predictions = model.predict(X_test)
print(f'Test samples: {len(X_test)}')   # 30
print(f'Accuracy: {accuracy_score(y_test, predictions):.2f}')  # 1.00

Ein RandomForestClassifier trainiert viele Entscheidungsbäume auf zufälligen Teilmengen der Daten und kombiniert deren Stimmen. Er behandelt nichtlineare Beziehungen gut und ist eine starke Ausgangsbasis für Klassifikationsaufgaben. n_estimators=100 gibt die Anzahl der Bäume an.

Schritt 5 — Das Modell evaluieren

Genauigkeit (der Anteil korrekter Vorhersagen) ist leicht verständlich, kann aber irreführend sein, wenn eine Klasse viel seltener ist als die anderen. scikit-learn bietet eine vollständige Metrik-Suite:

MetrikWas sie misst
AccuracyGesamtanteil korrekter Vorhersagen
PrecisionVon vorhergesagten Positiven: wie viele waren wirklich positiv
RecallVon tatsächlichen Positiven: wie viele haben wir korrekt vorhergesagt
F1 scoreHarmonisches Mittel aus Precision und Recall

Einen tieferen Einblick in die Evaluation bietet das Kapitel Confusion Matrix.

Den richtigen Algorithmus wählen

Verschiedene Probleme erfordern verschiedene Algorithmen. Hier ist eine kurze Orientierungshilfe:

ProblemtypZuerst ausprobieren
KlassifikationRandomForestClassifier, LogisticRegression
RegressionLinearRegression, RandomForestRegressor
ClusteringKMeans
DimensionsreduktionPCA

Die meisten dieser Algorithmen werden Sie im weiteren Verlauf dieser Reihe kennenlernen. Gute Einstiegspunkte sind K-Nearest Neighbors, Decision Tree und Linear Regression.

Häufige Anfängerfehler

  • Data Leakage — wenn der Skalierer auf dem gesamten Datensatz (vor der Aufteilung) angepasst wird, fließen Testset-Statistiken in das Training ein. Passen Sie Transformer immer nur auf dem Trainingsset an und wenden Sie sie dann auf das Testset an.
  • Overfitting — ein Modell, das Trainingsdaten auswendig lernt, schneidet bei neuen Daten schlecht ab. Verwenden Sie Cross-Validation, um dies frühzeitig zu erkennen.
  • Klassenungleichgewicht ignorieren — wenn 95 % Ihrer Labels „negativ" sind, erreicht ein Modell, das immer „negativ" vorhersagt, 95 % Genauigkeit, ist aber nutzlos. Prüfen Sie die Klassenverteilung, bevor Sie eine Metrik wählen.
  • Erkundung überspringen — schauen Sie sich Ihre Daten immer an, bevor Sie modellieren. Prüfen Sie Wertebereiche, Verteilungen und die Anzahl fehlender Werte.

Fazit

Sie haben nun eine funktionierende Python-ML-Umgebung und verstehen die vollständige Pipeline des überwachten Lernens: Daten laden, bereinigen, aufteilen, ein Modell trainieren und auf zurückgehaltenen Daten evaluieren. Die folgenden Kapitel gehen tiefer in jeden Schritt ein — beginnend mit der Datenvorbereitung, über einzelne Algorithmen bis hin zu fortgeschrittenen Themen wie Kreuzvalidierung und Hyperparameter-Tuning.

Was this page helpful?