Menu
CoddyTech

Rysowanie dopasowanej prostej

Część sekcji Statystyka w uczeniu maszynowym ścieżki Machine Learning w Coddy. Lekcja 37 z 64.

Dwie liczby opisują dopasowanie; tylko wykres pokazuje, czy odpowiada ono danym. W kuchni zmierzono czas sześciu zagotowań wody w czajniku. Narysuj linię na tej samej osi ax co wykres punktowy:

liters = np.array([0.5, 0.8, 1.0, 1.2, 1.5, 1.7])
minutes = np.array([1.6, 2.4, 2.7, 3.3, 3.9, 4.5])
slope, intercept = np.polyfit(liters, minutes, 1)
xs = np.linspace(liters.min(), liters.max(), 50)
fig, ax = plt.subplots()
ax.scatter(liters, minutes, label="Boils")
ax.plot(xs, slope * xs + intercept, color="C1", label="Fit")
ax.legend()
plt.show()

xs biegnie od najmniejszego x do największego, więc linia zaczyna się i kończy tam, gdzie dane:

Sześć zagotowań wody w czajniku przedstawionych jako punkty: czas gotowania w minutach w zależności od ilości wody w litrach, wzrastający od 1.6 do 4.5 minuty, z pomarańczową dopasowaną linią biegnącą przez punkty od 0.5 do 1.7 litra

Narysowanie predykcji modelu na wykresie z jego danymi to najszybszy sposób, by sprawdzić, czy nauczył się czegoś sensownego. Linia, która mija punkty, oznacza, że dopasowanie jest nieprawidłowe.

challenge icon

Wyzwanie

Średni

Zarządca budynku zmierzył czas 12 przejazdów windą: liczbę pokonanych floors i czas w seconds. Kod startowy przygotowuje wykres z tytułem i opisanymi osiami.

  1. Dopasuj prostą przewidującą seconds na podstawie floors.
  2. Przedstaw przejazdy jako wykres punktowy z etykietą Rides, a prostą z etykietą Fit, od najmniejszej do największej liczby pięter.
  3. Dodaj legendę i wyświetl wykres.

Program niczego nie wypisuje; Coddy opisuje twój wykres. Wykres z innego budynku wygląda tak:

Wykres zatytułowany Elevator Rides: osiem punktów rosnących od 14 sekund przy 2 piętrach do 51 sekund przy 20 piętrach, dopasowana prosta od piętra pierwszego punktu do piętra ostatniego oraz legenda z etykietami Rides i Fit

Spróbuj swoich sił

import numpy as np
import matplotlib.pyplot as plt

floors = np.array([3, 7, 1, 12, 5, 9, 15, 2, 10, 6, 13, 8])
seconds = np.array([15.3, 27.0, 12.4, 36.0, 19.5, 28.8, 44.9, 12.7, 33.2, 19.4, 41.7, 27.0])
# Nie zmieniaj poniższych wierszy
fig, ax = plt.subplots()
ax.set_title("Elevator Rides")
ax.set_xlabel("Floors")
ax.set_ylabel("Seconds")

# Napisz swój kod poniżej
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Statystyka w uczeniu maszynowym

Poćwicz samodzielnie: Kompilator Python online