Menu
CoddyTech

Dopasowanie metodą najmniejszych kwadratów

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

Próby zgadywania prostych mogłyby trwać w nieskończoność. np.polyfit(x, y, 1) od razu znajduje najlepszą: prostą z najmniejszą sumą kwadratów reszt. Oto głębokość śniegu podczas burzy:

hours = np.array([1, 2, 3, 5, 6])
depth = np.array([14, 22, 35, 52, 61])
slope, intercept = np.polyfit(hours, depth, 1)
print(np.round(slope, 2), np.round(intercept, 2))

To wypisuje 9.5 4.5: około 9.5 cm więcej śniegu na godzinę oraz 4.5 cm w godzinie 0. Żadna inna linia nie ma mniejszego błędu:

Głębokość śniegu w zależności od liczby godzin jako pięć punktów, z trzema liniami: dwie przerywane hipotezy z sumami kwadratów reszt wynoszącymi 159 i 18 oraz gruba linia polyfit z wartością 6.5

1 oznacza prostą linię, a x występuje jako pierwsze. To regresja liniowa, pierwszy model, który trenujesz w sekcji 3.

challenge icon

Wyzwanie

Średni

Producent dronów chce wiedzieć, który pomiar najlepiej przewiduje czas lotu. Plik drones.csv zawiera dane z 15 lotów: payload_g, wind_kmh i flight_min. Kod początkowy wczytuje go i definiuje ssr(x, y, slope, intercept).

  1. Dla każdej kolumny w columns dopasuj prostą przewidującą na jej podstawie flight_min.
  2. Wypisz jej równanie i SSR jak poniżej: nachylenie z dokładnością do 3 miejsc po przecinku, punkt przecięcia z osią i SSR z dokładnością do 2.
  3. Wypisz kolumnę z mniejszym SSR.

Dla innego drona:

payload_g: flight_min = -0.001 * payload_g + 21.55, SSR 164.94
wind_kmh: flight_min = -0.481 * wind_kmh + 28.13, SSR 9.1
Better predictor: wind_kmh

Spróbuj swoich sił

import numpy as np
import pandas as pd


# Zwraca sumę kwadratów reszt dla prostej slope * x + intercept (lekcja 35)
def ssr(x, y, slope, intercept):
    return ((y - (slope * x + intercept)) ** 2).sum()


drones = pd.read_csv("drones.csv")
columns = ["payload_g", "wind_kmh"]

# 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