Menu
CoddyTech

Ajuste por mínimos quadrados

Parte da seção Estatística para ML do Journey de Machine Learning da Coddy. Lição 36 de 64.

Ficar tentando adivinhar as retas poderia levar uma eternidade. np.polyfit(x, y, 1) encontra a melhor de uma só vez: a reta com a menor soma dos resíduos ao quadrado. Veja a profundidade da neve durante uma tempestade:

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))

Isso imprime 9.5 4.5: cerca de 9,5 cm a mais de neve por hora, e 4,5 cm na hora 0. Nenhuma outra linha tem um erro menor:

Profundidade da neve em função das horas, com cinco pontos e três linhas: duas estimativas tracejadas, com somas dos resíduos ao quadrado de 159 e 18, e a linha espessa de polyfit com 6.5

O 1 pede uma linha reta, e x vem primeiro. Isso é regressão linear, o primeiro modelo que você treina na seção 3.

challenge icon

Desafio

Médio

Um fabricante de drones quer saber qual medida prevê melhor o tempo de voo. drones.csv contém 15 voos: payload_g, wind_kmh e flight_min. O código inicial carrega o arquivo e define ssr(x, y, slope, intercept).

  1. Para cada coluna em columns, ajuste a reta que prevê flight_min a partir dela.
  2. Imprima a equação e o SSR conforme abaixo: inclinação com 3 casas decimais, intercepto e SSR com 2.
  3. Imprima a coluna com o menor SSR.

Para outro drone:

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

Experimente você mesmo

import numpy as np
import pandas as pd


# Retorna a soma dos quadrados dos resíduos da reta slope * x + intercept (lição 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"]

# Escreva seu código abaixo
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Estatística para ML

Pratique por conta própria: Compilador de Python online