Menu
CoddyTech

Zahlen vorhersagen

Teil des Abschnitts Überwachtes Lernen der Machine Learning-Journey von Coddy. Lektion 11 von 58.

Die Modelle in diesem Kapitel sagen Zahlen voraus. Am Ende zeigt ein Diagramm der Fehler eines Modells, was es übersehen hat:

Ein Diagramm der Fehler eines Modells in Abhängigkeit von der Temperatur: Die Punkte steigen bogenförmig von -280 auf +140 und wieder zurück, um eine gestrichelte Linie bei 0 herum, beschriftet mit: Das Modell hat eine Kurve übersehen

Beginne mit einer Geraden, die du kennst. LinearRegression lernt sie aus einer Tabelle X, mit einer Zeile pro Stichprobe und einer Spalte pro Merkmal:

from sklearn.linear_model import LinearRegression

area = np.array([60, 75, 90, 110, 130, 150])  # Häuser, in m²
price = np.array([215, 248, 290, 335, 385, 428])  # Tausend Dollar
X = area.reshape(-1, 1)  # 6 Zeilen, 1 Spalte
model = LinearRegression()
model.fit(X, price)
print(np.round(model.coef_, 2), np.round(model.intercept_, 2))
print(np.round(np.polyfit(area, price, 1), 2))

Dies gibt dieselbe Zeile zweimal aus:

[2.39] 71.59
[ 2.39 71.59]

Sechs Häuser als Punkte, Preis in Abhängigkeit von der Fläche, mit der dicken orangefarbenen LinearRegression-Linie und der gestrichelten schwarzen np.polyfit-Linie, die genau übereinanderliegen: price = 2.39 * area + 71.59

coef_ enthält eine Steigung pro Merkmal: Jeder zusätzliche m² erhöht den Preis um 2.39 Tausend Dollar. intercept_ ist der Startpunkt der Linie bei 0 m². Dann setzt model.predict([[100]]) den Preis für 100 m² auf etwa 310.85 Tausend.

challenge icon

Aufgabe

Mittel

Eine Druckerei hat ihre Preise nie veröffentlicht, aber du hast 10 frühere Aufträge: pages und price in Dollar. Das Programm liest die Seitenzahl eines neuen Auftrags ein.

  1. Trainiere eine LinearRegression mit den Seitenzahlen als einspaltiger Tabelle.
  2. Gib den Preis pro Seite (3 Dezimalstellen) und die Einrichtungsgebühr, den Achsenabschnitt (2 Dezimalstellen), aus.
  3. Gib den vorhergesagten Preis des neuen Auftrags aus (2 Dezimalstellen).

Für eine andere Druckerei und 120:

Per page: 0.095 dollars
Setup fee: 4.1 dollars
120 pages: 15.5 dollars

Probier es selbst

import numpy as np
from sklearn.linear_model import LinearRegression

# 10 frühere Druckaufträge: gedruckte Seiten und der bezahlte Preis in Dollar
pages = np.array([40, 75, 120, 160, 210, 260, 300, 380, 450, 520])
price = np.array([7.38, 12.6, 17.65, 20.69, 26.63, 32.18, 37.76, 46.4, 55.17, 60.89])
new_pages = int(input())

# Schreibe deinen Code unten
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Überwachtes Lernen

Übe selbstständig: Online-Python-Compiler