Menu
CoddyTech

Coloque o Modelo em Produção

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

Os pinguins de teste esperaram durante todo o projeto. Ajuste o pipeline otimizado com as linhas de treinamento e, em seguida, avalie-o uma única vez com os pinguins de teste: o número honesto.

Então veja onde ele falha. O modelo de uma clínica classifica os pacientes como saudáveis, resfriados ou com gripe; as linhas representam a verdade, e as colunas, suas previsões:

Uma matriz de confusão 3 por 3 do modelo de uma clínica' com 60 pacientes de teste, saudáveis, resfriados e com gripe: a diagonal contém 20, 14 e 17 respostas corretas, e 5 resfriados foram classificados como gripe

Um novo pinguim é uma tabela de uma linha com as colunas de treinamento. predict dá o nome da classe, e predict_proba(new).max() indica o grau de certeza: a proporção da classe vencedora; no k-NN, dos vizinhos que concordam.

challenge icon

Desafio

Médio

A linha de chegada. model é seu pipeline ajustado; o código inicial lê um novo pinguim em new_penguin.

  1. Ajuste o modelo com as linhas de treinamento. Imprima sua acurácia de teste (3 casas decimais) e quantos pinguins de teste ele classificou corretamente.
  2. Desenhe a matriz de confusão das previsões de teste em ax e mostre-a.
  3. Identifique o novo pinguim e indique o grau de confiança do modelo, em porcentagem.

Para uma colônia em outra estação:

Test accuracy: 0.960 (72 of 75 penguins)
New penguin: Gentoo (86% sure)

e sua matriz:

Uma matriz de confusão intitulada Test Penguins para outra estação: 29 Adelie, 16 Chinstrap e 27 Gentoo identificados corretamente, 1 Adelie classificado como Chinstrap e 2 Chinstrap classificados como Adelie

Então, Coddy apresenta o seu resultado. A estrela de Meet the Penguins mediu 47.2, 18.0, 194 e 3650, em Dream, female. Execute seu programa com ela: quem é ela?

Experimente você mesmo

import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import make_pipeline
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import StandardScaler, OneHotEncoder
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import ConfusionMatrixDisplay

# A colônia de Conheça os Pinguins, suas características e seu rótulo
penguins = pd.read_csv("penguins.csv")
numbers = ["bill_length_mm", "bill_depth_mm", "flipper_length_mm", "body_mass_g"]
text = ["island", "sex"]
X = penguins[numbers + text]
y = penguins["species"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, stratify=y, random_state=0)

# De Prepare os Dados: os dois caminhos
number_steps = make_pipeline(SimpleImputer(strategy="median"), StandardScaler())
text_steps = make_pipeline(SimpleImputer(strategy="constant", fill_value="unknown"), OneHotEncoder())
prep = ColumnTransformer([("numbers", number_steps, numbers), ("words", text_steps, text)])

# De Escolha um Modelo e Ajuste o Vencedor: k-NN com k = 7
model = make_pipeline(prep, KNeighborsClassifier(n_neighbors=7))

# Um novo pinguim observado em campo, em uma tabela de uma linha com as mesmas colunas
new_penguin = pd.DataFrame({
    "bill_length_mm": [float(input())],
    "bill_depth_mm": [float(input())],
    "flipper_length_mm": [float(input())],
    "body_mass_g": [float(input())],
    "island": [input()],
    "sex": [input()],
})

fig, ax = plt.subplots()
ax.set_title("Test Penguins")

# 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