Menu
CoddyTech

Prevendo números

Parte da seção Aprendizado supervisionado do Journey de Machine Learning da Coddy. Lição 11 de 58.

Os modelos deste capítulo fazem previsões numéricas. Ao final dele, um gráfico dos erros de um modelo revelará o que ele não percebeu:

Um gráfico dos erros de um modelo em relação à temperatura: os pontos formam um arco de -280 até +140 e voltam a descer, em torno de uma linha tracejada em 0, identificada com: o modelo não percebeu uma curva

Comece com uma linha que você conhece. LinearRegression aprende essa linha a partir de uma tabela X, com uma linha por amostra e uma coluna por característica:

from sklearn.linear_model import LinearRegression

area = np.array([60, 75, 90, 110, 130, 150])  # casas, em m²
price = np.array([215, 248, 290, 335, 385, 428])  # mil dólares
X = area.reshape(-1, 1)  # 6 linhas, 1 coluna
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))

Isso imprime a mesma linha duas vezes:

[2.39] 71.59
[ 2.39 71.59]

Seis casas como pontos, preço em relação à área, com a linha espessa laranja de LinearRegression e a linha tracejada preta de np.polyfit exatamente sobrepostas: preço = 2.39 * área + 71.59

coef_ contém uma inclinação por característica: cada m² adicional acrescenta 2,39 mil dólares. intercept_ é o início da reta, em 0 m². Então, model.predict([[100]]) estima o preço de 100 m² em cerca de 310,85 mil.

challenge icon

Desafio

Médio

Uma gráfica nunca divulgou seus preços, mas você tem 10 trabalhos anteriores: pages e price em dólares. O programa lê o número de páginas de um novo trabalho.

  1. Ajuste uma LinearRegression usando as páginas, como uma tabela de uma coluna.
  2. Imprima o preço por página (3 casas decimais) e a taxa de configuração, o intercepto (2 casas decimais).
  3. Imprima o preço previsto do novo trabalho (2 casas decimais).

Para outra gráfica e 120:

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

Experimente você mesmo

import numpy as np
from sklearn.linear_model import LinearRegression

# 10 trabalhos de impressão anteriores: páginas impressas e o valor pago, em dólares
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())

# 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 Aprendizado supervisionado

Pratique por conta própria: Compilador de Python online