Menu
CoddyTech

Ajustar e prever

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

Todo modelo do scikit-learn funciona com duas chamadas. fit estuda as linhas de treinamento com seus rótulos; predict rotula linhas que o modelo nunca viu:

Um diagrama: seis animais de estimação, X_train com peso e comprimento das orelhas ao lado de y_train, três gatos e três cachorros, passam por fit e chegam a um modelo. Dois novos animais de estimação, X_new, passam por predict, usando o modelo, e saem como gato e cachorro

O modelo da primeira lição desta jornada é k-vizinhos mais próximos: ele classifica uma linha como as linhas de treinamento mais próximas dela. Animais de estimação por peso (kg) e comprimento da orelha (cm):

from sklearn.neighbors import KNeighborsClassifier

X_train = np.array([[4, 6], [5, 7], [3, 5], [30, 10], [25, 12], [35, 11]])
y_train = np.array(["cat", "cat", "cat", "dog", "dog", "dog"])
model = KNeighborsClassifier()
model.fit(X_train, y_train)
print(model.predict([[6, 6], [28, 11]]))

Isso imprime ['cat' 'dog']. Novas linhas são inseridas como uma tabela, uma linha por animal de estimação.

Criar, ajustar, prever: todos os modelos desta seção seguem estas três etapas.

challenge icon

Desafio

Fácil

O aplicativo de um clube de observação de aves identifica as aves pela envergadura e pelo peso. O código inicial divide o birds.csv do clube e lê as aves de hoje à noite na tabela spotted.

  1. Crie um modelo de k-vizinhos mais próximos e ajuste-o usando as aves de treinamento.
  2. Preveja todas as aves avistadas em uma única chamada.
  3. Imprima uma linha por ave, como abaixo.

Para três aves em outra caminhada:

Bird 1: sparrow
Bird 2: blackbird
Bird 3: robin

Experimente você mesmo

import pandas as pd
from sklearn.model_selection import train_test_split

# Uma linha para cada ave que o clube identificou: envergadura em cm, peso em gramas
birds = pd.read_csv("birds.csv")
X = birds[["wingspan_cm", "weight_g"]]
y = birds["species"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)

# Passeio desta noite: quantas aves, depois a envergadura e o peso de cada uma
count = int(input())
spans = []
weights = []
for i in range(count):
    spans.append(float(input()))
    weights.append(float(input()))
spotted = pd.DataFrame({"wingspan_cm": spans, "weight_g": weights})

# 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