Kleinste Quadrate in Python

PythonPythonBeginner
Jetzt üben

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

Einführung

In diesem Projekt lernst du, wie du die Methode der kleinsten Quadrate (OLS) in Python implementierst. OLS ist eine grundlegende mathematische Optimierungstechnik, die in der Maschinellen Lernung, insbesondere bei linearen Regressionsproblemen, verwendet wird.

🎯 Aufgaben

In diesem Projekt wirst du lernen:

  • Wie du die OLS-Funktion implementierst, um die Steigung (w1) und den y-Achsenabschnitt (w0) einer linearen Gleichung basierend auf Stichprobendaten zu berechnen.
  • Wie du die OLS-Funktion mit Stichprobendaten testest und die Korrektheit der Ergebnisse verifizierst.

🏆 Errungenschaften

Nach Abschluss dieses Projekts wirst du in der Lage sein:

  • Die OLS-Formeln zur Berechnung der Steigung und des y-Achsenabschnitts einer linearen Gleichung abzuleiten.
  • Die OLS-Funktion in Python ohne Verwendung externer Bibliotheken zu implementieren.
  • Die OLS-Funktion mit Stichprobendaten zu testen und zu validieren.
  • Die Wichtigkeit der OLS-Methode in der Maschinellen Lernung und bei linearen Regressionsproblemen zu verstehen.

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python(("Python")) -.-> python/DataScienceandMachineLearningGroup(["Data Science and Machine Learning"]) python/BasicConceptsGroup -.-> python/variables_data_types("Variables and Data Types") python/DataStructuresGroup -.-> python/lists("Lists") python/FunctionsGroup -.-> python/function_definition("Function Definition") python/PythonStandardLibraryGroup -.-> python/math_random("Math and Random") python/DataScienceandMachineLearningGroup -.-> python/machine_learning("Machine Learning") subgraph Lab Skills python/variables_data_types -.-> lab-300247{{"Kleinste Quadrate in Python"}} python/lists -.-> lab-300247{{"Kleinste Quadrate in Python"}} python/function_definition -.-> lab-300247{{"Kleinste Quadrate in Python"}} python/math_random -.-> lab-300247{{"Kleinste Quadrate in Python"}} python/machine_learning -.-> lab-300247{{"Kleinste Quadrate in Python"}} end

Implementiere die Funktion der kleinsten Quadrate

In diesem Schritt implementierst du die Methode der kleinsten Quadrate (OLS) in Python. Folge den Schritten unten, um diesen Schritt abzuschließen:

  1. Öffne die Datei least_squares.py in deinem Texteditor.

  2. Implementiere die Funktion least_squares_function gemäß den angegebenen Spezifikationen:

    • Die Funktion sollte zwei Eingabeparameter akzeptieren: x (eine Liste von Stichprobewerten für x) und y (eine Liste von Stichprobewerten für y).
    • Die Funktion sollte die Steigung (w1) und den y-Achsenabschnitt (w0) der linearen Gleichung mithilfe der in der Challenge-Beschreibung angegebenen OLS-Formeln berechnen.
    • Die Funktion sollte die berechneten Werte für w0 und w1 auf zwei Dezimalstellen runden, bevor sie sie zurückgibt.
    • Die Funktion sollte die Werte für w0 und w1 in dieser Reihenfolge zurückgeben.

Hier ist die abgeschlossene Implementierung der Funktion least_squares_function:

def least_squares_function(x, y):
    """
    Parameter:
    x -- Liste von Werten für die Stichprobe von x
    y -- Liste von Werten für die Stichprobe von y

    Rückgabe:
    w0 -- Parameter der linearen Gleichung, auf zwei Dezimalstellen gerundet
    w1 -- Parameter der linearen Gleichung, auf zwei Dezimalstellen gerundet
    """

    n = len(x)

    ## Berechne die Summen, die für die Steigung (w1) und den y-Achsenabschnitt (w0) benötigt werden
    sum_x = sum(x)
    sum_y = sum(y)
    sum_xy = sum(x_i * y_i for x_i, y_i in zip(x, y))
    sum_x_squared = sum(x_i**2 for x_i in x)

    ## Berechne die Steigung (w1) und den y-Achsenabschnitt (w0) mithilfe der OLS-Formeln
    w1 = (n * sum_xy - sum_x * sum_y) / (n * sum_x_squared - sum_x**2)
    w0 = (sum_y - w1 * sum_x) / n

    ## Runde auf zwei Dezimalstellen
    w0 = round(w0, 2)
    w1 = round(w1, 2)

    return w0, w1
  1. Speichere die Datei least_squares.py.
✨ Lösung prüfen und üben

Teste die Funktion der kleinsten Quadrate

In diesem Schritt wirst du die Funktion least_squares_function, die du im vorherigen Schritt implementiert hast, testen.

  1. Am Ende der Datei findest du folgenden Code, um die Funktion least_squares_function zu testen:
## Beispielverwendung
if __name__ == "__main__":
    x_example = [1, 2, 3, 4]
    y_example = [4, 5, 6, 7]

    result = least_squares_function(x_example, y_example)
    print("w0:", result[0])
    print("w1:", result[1])
  1. Führe das Skript least_squares.py in deiner Konsole aus:
python3 least_squares.py

Du solltest die folgende Ausgabe sehen:

w0: 3.0
w1: 1.0

Diese Ausgabe bestätigt, dass die Funktion least_squares_function wie erwartet funktioniert.

Glückwunsch! Du hast die Methode der kleinsten Quadrate erfolgreich in Python implementiert. In den nächsten Schritten kannst du erkunden, wie du diese Funktion in einem realen Machine-Learning-Problem verwenden kannst.

✨ Lösung prüfen und üben

Zusammenfassung

Glückwunsch! Du hast dieses Projekt abgeschlossen. Du kannst in LabEx weitere Labs absolvieren, um deine Fähigkeiten zu verbessern.