Algoritmo, modelo, treinamento e previsão

25 min
Bloco 1 — O vocabulário fundamental
Objetivo
definir rigorosamente o algoritmo de aprendizado e o modelo, estabelecer a distinção estrita entre os dois, caracterizar o treinamento como procedimento de seleção em um espaço de hipóteses e a predição como avaliação de uma função, e identificar o que é efetivamente versionado, serializado e implantado em produção.
Duração estimada
35 minutos
Pré-requisitos
capítulos 001 a 007
Quizzes associados
008.1-quiz-algorithme-apprentissage.md a 008.6-quiz-cycle-complet.md

1. O algoritmo de aprendizado

1.1 O problema do vocabulário

Os quatro enunciados a seguir são frequentemente encontrados em relatórios de projeto. Três estão incorretos.

EnunciadoStatusMotivo
« Treinamos um Random Forest com 40 000 observações. »AceitávelElipse admitida: treinar com o algoritmo Random Forest
« O algoritmo prevê uma probabilidade de cancelamento de 0,72. »IncorretoUm algoritmo não prevê; o modelo produz a predição
« Implantamos um XGBoost em produção. »IncorretoO que é implantado é um modelo oriundo do XGBoost, não a biblioteca
« O algoritmo aprendeu que a antiguidade reduz o risco. »IncorretoO algoritmo executa um procedimento; a informação aprendida reside nos parâmetros do modelo

A diferença não é puramente lexical: o que é versionado, o que é reprodutível, o que deve ser reexecutado quando os dados evoluem e o que é transmitido à operação não são os mesmos objetos conforme se fale do algoritmo ou do modelo (ponto 3).

1.2 Definições

DEFINIÇÃO — Algoritmo, no sentido geral

Definição rigorosa. Sequência finita e não ambígua de operações elementares que permite, a partir de entradas pertencentes a um domínio especificado, produzir uma saída em um número finito de etapas. A caracterização clássica retém cinco propriedades (Knuth, The Art of Computer Programming, 1968): finitude, definição não ambígua de cada etapa, entradas especificadas, saídas especificadas, efetividade das operações.

Tradução em linguagem corrente. Um método escrito de uma vez por todas, descrevendo o que deve ser feito e em que ordem, independentemente dos valores sobre os quais será executado.

Ponto de atenção. Um algoritmo é uma descrição de procedimento: não tem estado, não contém nenhum conhecimento sobre um domínio particular e não muda quando os dados mudam.

DEFINIÇÃO — Algoritmo de aprendizado (learning algorithm, learner)

Definição rigorosa. Caso particular do anterior: procedimento que, aplicado a um conjunto de dados D = {(x₁, y₁), …, (xₙ, yₙ)} e a uma configuração de hiperparâmetros λ, seleciona um elemento ĥ de um espaço de hipóteses H segundo um critério explícito avaliado sobre D. Formalmente, A : (D, λ) ⟼ ĥ ∈ H.

Tradução em linguagem corrente. O método que, a partir de uma tabela de exemplos já rotulados, fabrica a regra de decisão. Ele descreve como buscar, não o que será encontrado. Três elementos devem ser nomeados para que ele seja especificado: o espaço de hipóteses percorrido (ponto 1.3), o critério avaliado sobre os dados, e a estratégia de busca (ponto 4.2).

Ponto de atenção. O algoritmo é idêntico para todos os projetos que o empregam: RandomForestClassifier é o mesmo para todos os usuários de uma versão dada do scikit-learn. O que difere de um projeto para outro é o modelo produzido, jamais o algoritmo.

1.3 O espaço de hipóteses e o viés indutivo

DEFINIÇÃO — Espaço de hipóteses (hypothesis space, H)

Definição rigorosa. Conjunto H de todas as funções candidatas h : X → Y que o algoritmo é estruturalmente capaz de produzir, X designando o espaço das variáveis explicativas e Y o da variável-alvo. H é determinado conjuntamente pela família de funções escolhida e pelos hiperparâmetros que restringem sua forma: fixar max_depth=3 não modifica o algoritmo, mas restringe H às árvores de profundidade no máximo 3.

Tradução em linguagem corrente. O conjunto de todas as regras que o método tem o direito de fabricar: ele jamais produzirá uma regra ausente desse conjunto, qualquer que seja a quantidade de dados fornecida. Para uma regressão linear com duas variáveis, H é o conjunto das funções h(x) = β₀ + β₁x₁ + β₂x₂, de cardinalidade infinita mas parametrizado por três reais; nenhum conjunto de dados permitirá produzir nele uma função em escada ou periódica.

Ponto de atenção. Um modelo com baixo desempenho o é por duas razões distintas: a função correta não pertence a H (erro de aproximação, ligado à escolha do algoritmo), ou ela pertence a H sem ter sido encontrada (erro de estimação, ligado aos dados e à otimização) — capítulo 032.

DEFINIÇÃO — Viés indutivo (inductive bias)

Definição rigorosa (Mitchell, 1980). Conjunto das hipóteses suplementares, não dedutíveis dos dados de treinamento, que um algoritmo mobiliza para preferir certas generalizações a outras entre aquelas compatíveis com os dados observados. Manifesta-se sob duas formas: a restrição do espaço de hipóteses e a preferência dentro de H, por exemplo pela hipótese mais simples a desempenho igual.

Tradução em linguagem corrente. Um conjunto de exemplos jamais determina uma única regra: uma infinidade de regras passa pelos mesmos pontos. O viés indutivo é o conjunto das preferências integradas ao método, que decidem entre essas regras.

Resultado associado (Wolpert, 1996 — No Free Lunch). Em média sobre o conjunto de todos os problemas possíveis, nenhum algoritmo é superior a outro: seu desempenho em um problema dado provém da adequação entre seu viés indutivo e a estrutura real do fenômeno. Escolher um algoritmo equivale portanto a apostar nessa estrutura (capítulo 049).

Ponto de atenção. Um aprendizado sem viés indutivo é impossível: um algoritmo desprovido de toda preferência não poderia afirmar nada sobre uma observação ausente do conjunto de treinamento.

1.4 As principais famílias de algoritmos

AlgoritmoEspaço de hipóteses HForma de uma hipóteseViés indutivo principal
Regressão linearFunções afins de XSoma ponderada das variáveisLinearidade e aditividade dos efeitos
Regressão logísticaLogísticas de funções afinsSigmoide de uma combinação linearFronteira de decisão linear
Árvore de decisão (CART)Partições de X por cortes ortogonais aos eixosSequência de testes de limiar, constante por folhaCortes paralelos aos eixos, preferência por árvores curtas
k vizinhos mais próximosFunções constantes por vizinhançaVoto ou média localContinuidade local: duas observações próximas têm alvos próximos
Naive BayesDistribuições condicionais fatoradasProduto de verossimilhanças por variávelIndependência condicional das variáveis dada a classe
Perceptron multicamadasComposições de aplicações afins e de não linearidadesGrafo de cálculo em camadasComposicionalidade e regularidade das funções representáveis

Leitura: cada linha descreve uma aposta diferente sobre a estrutura do fenômeno. Um efeito de limiar marcado será mal atendido por uma regressão linear e bem atendido por uma árvore; um fenômeno aditivo e suave, o inverso.


2. O modelo como artefato parametrizado

2.1 Definição

DEFINIÇÃO — Modelo (model, modelo treinado, fitted model)

Definição rigorosa. Elemento ĥ ∈ H selecionado pelo algoritmo A ao final de sua execução sobre um conjunto de dados D com hiperparâmetros λ. O modelo é inteiramente especificado por dois componentes: uma estrutura — a forma funcional, fixada por A e λ — e um conjunto de valores de parâmetros ajustado a partir de D.

Definição operacional. Artefato de software que implementa uma função determinística das variáveis explicativas para o espaço de saída, cujo comportamento depende integralmente do conjunto de dados sobre o qual foi ajustado, e que pode ser serializado, versionado, transportado e avaliado independentemente do procedimento que o produziu.

Tradução em linguagem corrente. O resultado do treinamento: uma regra de decisão congelada, em memória ou em arquivo, que responde a uma pergunta precisa para uma observação dada.

Ponto de atenção. O modelo não é o arquivo: este não é senão um suporte de serialização, do mesmo modo que uma partitura não é a música. Um mesmo modelo se exporta em joblib, em ONNX ou em PMML sem mudar de natureza.

2.2 Estrutura e parâmetros

Família de modelosEstrutura fixada pelo algoritmo e λParâmetros ajustados sobre os dadosOrdem de grandeza
Regressão linear com p variáveisUma equação afimp coeficientes e uma constantep + 1
Regressão logística com p variáveisUma equação afim composta com uma logísticap coeficientes e uma constantep + 1
Árvore de decisãoUma árvore binária de profundidade limitadaVariável e limiar de cada nó, valor de cada folha10¹ a 10³
Floresta aleatória de 200 árvores200 árvores agregadas por voto ou médiaTodos os parâmetros das 200 árvores10⁴ a 10⁷
k vizinhos mais próximosUma métrica e um inteiro kNenhum no sentido estrito: o conjunto de treinamento é memorizadon × p valores armazenados
Perceptron multicamadasNúmero de camadas, larguras, ativaçõesPesos e vieses de todas as conexões10³ a 10¹¹

Ponto de atenção — os k vizinhos mais próximos. Esse algoritmo não produz parâmetros no sentido usual: ele conserva as observações de treinamento e adia todo cálculo para o momento da predição (modelo preguiçoso, lazy learner). A definição do modelo como artefato permanece válida: a estrutura é a regra de voto sobre os k vizinhos, o conteúdo ajustado é o conjunto memorizado (capítulo 040).

A fronteira entre o que é regulado pelo humano e o que é aprendido é objeto do capítulo 009; o princípio aqui é que os hiperparâmetros definem H e que os parâmetros designam o elemento retido em H.

2.3 Leitura de um modelo em Python

No scikit-learn, os atributos cujo nome termina por um caractere de sublinhado só existem após o treinamento: sua presença é o critério operacional que distingue um algoritmo instanciado de um modelo.

python
from sklearn.linear_model import LinearRegression

def appris(objet):
    return [a for a in dir(objet) if a.endswith("_") and not a.startswith("_")]

estimateur = LinearRegression()
print("Avant fit — hyperparamètres  :", estimateur.get_params())
print("Avant fit — attributs appris :", appris(estimateur))
estimateur.fit(X, y)
print("Après fit — attributs appris :", appris(estimateur))
Avant fit — hyperparamètres  : {'copy_X': True, 'fit_intercept': True,
                                'n_jobs': None, 'positive': False, 'tol': 1e-06}
Avant fit — attributs appris : []
Après fit — attributs appris : ['coef_', 'feature_names_in_', 'intercept_',
                                'n_features_in_', 'rank_', 'singular_']

Interpretação: antes da chamada, o objeto materializa o algoritmo e o espaço de hipóteses, com seus hiperparâmetros preenchidos e seu conhecimento nulo. Depois, coef_ e intercept_ carregam a informação induzida dos dados, e n_features_in_ assim como feature_names_in_ registram o esquema de entrada esperado (ponto 5.2). O mesmo objeto desempenha sucessivamente dois papéis: o scikit-learn chama estimator o objeto tanto antes como depois do fit.


3. A distinção e suas consequências em produção

3.1 Tabela de distinção

CritérioAlgoritmo de aprendizadoModelo
NaturezaUm procedimentoUm artefato
Momento de existênciaAntes de qualquer dadoApós o treinamento
Dependência dos dadosNulaTotal
ConteúdoInstruçõesUma estrutura e valores de parâmetros
Determinado porUma escolha de projeto humanaOs dados de treinamento
Suporte materialCódigo, uma biblioteca instaladaUm objeto em memória, um arquivo serializado
UnicidadeUm algoritmo, numerosos modelosUm modelo para um treinamento datado
O que é versionadoUma dependência de software (scikit-learn==1.8.0)Um entregável identificado (modele_attrition_v3.joblib)
O que é implantadoNão, salvo para retreinarSim
EnvelhecimentoPor obsolescência da bibliotecaPor deriva da distribuição dos dados (capítulo 082)

3.2 A analogia da receita e do bolo

ANALOGIA — A receita e o bolo

Uma receita é um texto: ela não se come, não vence, permanece idêntica qualquer que seja o número de vezes em que é executada e se fotocopia sem perda. O bolo é um objeto: resulta da execução da receita sobre ingredientes precisos, em um forno regulado de certa maneira, em um dia dado. Dois bolos oriundos da mesma receita diferem se os ingredientes diferem; o bolo se transporta, se data, vence.

Elemento culinárioCorrespondente em aprendizado supervisionadoJustificativa
A receita escritaO algoritmo de aprendizadoProcedimento reprodutível, independente de qualquer execução
Os ingredientesO conjunto de dados de treinamentoMatéria-prima consumida pelo procedimento
A regulagem do forno e o tempo de cozimentoOs hiperparâmetrosFixados antes da execução, por um humano, não deduzidos da matéria
O ato de assarO treinamentoExecução do procedimento sobre a matéria-prima
O bolo obtidoO modeloResultado único, datado, dependente integralmente dos ingredientes
Uma fatia servida a um convidadoUma prediçãoUso do resultado sobre um caso particular
Enviar a receita a um convidado com fomeImplantar o algoritmo em vez do modeloO convidado deveria comprar os ingredientes e assar ele mesmo
O bolo embalado e entregueO modelo serializado e implantadoO que é efetivamente transmitido ao consumidor
Refazer uma fornada com ingredientes frescosO retreinamentoMesma receita, nova matéria, novo resultado

Limites da analogia. O bolo é um objeto passivo, enquanto o modelo é uma função de entrada para saída (ponto 5.2); uma fatia consumida não está mais disponível, enquanto um modelo produz um número ilimitado de predições sem se esgotar; enfim o bolo vence por alteração física, enquanto o arquivo de um modelo não se degrada — é a distribuição dos dados de produção que se afasta da do treinamento (capítulo 082).

3.3 Um mesmo algoritmo, dois conjuntos de dados, dois modelos

O código a seguir aplica um algoritmo único a dois conjuntos de dados que descrevem o mesmo fenômeno — o preço de um imóvel segundo sua área, seu número de cômodos e sua idade — em dois mercados imobiliários distintos.

Cada conjunto comporta 800 transações descritas por três variáveis explicativas.

python
import pandas as pd
from sklearn.linear_model import LinearRegression

VARIABLES = ["surface_m2", "nb_pieces", "age_bien"]
lyon, nantes = pd.read_csv("marche_lyon.csv"), pd.read_csv("marche_nantes.csv")
X_lyon,   y_lyon   = lyon[VARIABLES],   lyon["prix"]
X_nantes, y_nantes = nantes[VARIABLES], nantes["prix"]

modele_lyon   = LinearRegression().fit(X_lyon,   y_lyon)
modele_nantes = LinearRegression().fit(X_nantes, y_nantes)
print("Même classe d'algorithme :", type(modele_lyon) is type(modele_nantes))

for nom, m in [("LYON", modele_lyon), ("NANTES", modele_nantes)]:
    print(f"{nom:7s} constante = {m.intercept_:>10,.1f} | " +
          " | ".join(f"{v} = {c:,.1f}" for v, c in zip(X_lyon.columns, m.coef_)))

bien = pd.DataFrame([{"surface_m2": 85, "nb_pieces": 4, "age_bien": 12}])
print("Prédiction Lyon   :", round(float(modele_lyon.predict(bien)[0]), 1))
print("Prédiction Nantes :", round(float(modele_nantes.predict(bien)[0]), 1))
Même classe d'algorithme : True
LYON    constante =   43,617.1 | surface_m2 = 3,201.6 | nb_pieces = 8,090.7 | age_bien = -878.3
NANTES  constante =   30,521.4 | surface_m2 = 1,904.5 | nb_pieces = 4,658.9 | age_bien = -1,473.9
Prédiction Lyon   : 337575.3
Prédiction Nantes : 193349.8

Interpretação. Uma única classe de algoritmo foi instanciada, sem modificar nenhum hiperparâmetro. Os dois objetos compartilham o mesmo tipo e a mesma estrutura — uma equação afim com três variáveis — e diferem unicamente pelos valores de seus quatro parâmetros, oriundos integralmente dos dados. A diferença é de natureza de negócio: o modelo de Lyon valoriza o metro quadrado em cerca de 3 200 unidades monetárias, o de Nantes em cerca de 1 900, e o desconto ligado à idade é quase 1,7 vezes mais forte no segundo mercado. Interrogados sobre o mesmo imóvel, eles respondem 337 575 e 193 350: nenhum se engana, eles codificam dois mercados diferentes.

Consequência direta: « usamos uma regressão linear » não identifica um sistema de predição, mas nomeia o viés indutivo escolhido. O sistema é identificado pelo par (modelo, conjunto de treinamento), datado.

3.4 O que é efetivamente implantado

O modelo no sentido estrito — estrutura e parâmetros do estimador final — não basta para produzir uma predição em produção. Uma observação bruta deve sofrer exatamente as mesmas transformações que os dados de treinamento: imputação com os mesmos valores de substituição, codificação com as mesmas modalidades de referência, escalonamento com as mesmas médias e desvios-padrão. Essas transformações comportam elas próprias parâmetros ajustados sobre o treinamento: elas fazem parte do que é aprendido e devem ser serializadas com o estimador.

DEFINIÇÃO — Serialização de um modelo

Definição rigorosa. Conversão do estado completo de um objeto em memória — estrutura e valores de parâmetros — em uma sequência de bytes persistente, permitindo sua reconstituição ulterior em um processo distinto com um comportamento funcionalmente idêntico.

Tradução em linguagem corrente. Gravar o modelo em um arquivo de maneira a poder recarregá-lo mais tarde, em outro lugar, sem ter que retreiná-lo. Os formatos usuais são joblib e pickle (ecossistema Python, dependentes das versões), ONNX (interoperável entre linguagens e motores de execução), PMML (padrão XML, famílias de modelos limitadas) e os formatos nativos de biblioteca, tal como Booster.save_model para XGBoost e LightGBM.

Ponto de atenção. Um arquivo joblib ou pickle reconstrói objetos Python arbitrários na leitura: carregá-lo sem dominar sua proveniência equivale a executar código não verificado. Além disso, a desserialização sob uma versão de biblioteca diferente não é garantida: a versão deve ser registrada nos metadados e verificada no carregamento.

python
import os, joblib, sklearn, numpy as np
from sklearn.compose import ColumnTransformer
from sklearn.ensemble import RandomForestClassifier
from sklearn.impute import SimpleImputer
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import OneHotEncoder, StandardScaler

num = ["anciennete_mois", "facture_mensuelle", "nb_appels_support"]
cat = ["type_forfait"]

pipeline = Pipeline([
    ("preparation", ColumnTransformer([
        ("num", Pipeline([("imputation", SimpleImputer(strategy="median")),
                          ("mise_a_echelle", StandardScaler())]), num),
        ("cat", OneHotEncoder(handle_unknown="ignore"), cat)])),
    ("modele", RandomForestClassifier(n_estimators=200, max_depth=8,
                                      random_state=42))]).fit(df, y)

artefact = {"pipeline": pipeline, "version_sklearn": sklearn.__version__,
            "colonnes_attendues": num + cat, "seuil_decision": 0.42,
            "date_entrainement": "2026-08-22"}
joblib.dump(artefact, "modele_attrition_v3.joblib", compress=3)
print("Taille :", round(os.path.getsize("modele_attrition_v3.joblib")/1024, 1), "Ko")

recharge   = joblib.load("modele_attrition_v3.joblib")
p_memoire  = pipeline.predict_proba(df.head(5))[:, 1]
p_recharge = recharge["pipeline"].predict_proba(df.head(5))[:, 1]
print("Probabilités rechargées :", np.round(p_recharge, 4))
print("Identité stricte :", np.array_equal(p_memoire, p_recharge))
print("Version et seuil :", recharge["version_sklearn"], recharge["seuil_decision"])
Taille : 1242.5 Ko
Probabilités rechargées : [0.0678 0.0711 0.0735 0.2408 0.0108]
Identité stricte : True
Version et seuil : 1.8.0 0.42

Interpretação. O arquivo pesa 1,2 MB enquanto o conjunto de treinamento comporta apenas alguns milhares de linhas: esse volume é o das 200 árvores, isto é, dos parâmetros aprendidos, e depende da estrutura escolhida, não do volume de dados. O recarregamento restitui probabilidades estritamente idênticas: um modelo é determinístico, e toda variação observada em produção sem retreinamento sinaliza uma diferença nas entradas ou no ambiente de execução, jamais no modelo. Enfim, o artefato não se reduz ao pipeline: o limiar de decisão (capítulo 062) é uma decisão de negócio exterior aos parâmetros, e a versão de biblioteca assim como a lista ordenada das colunas condicionam a validade do carregamento.


4. O treinamento como procedimento de seleção

4.1 Definição

DEFINIÇÃO — Treinamento (training, aprendizado, ajuste, fit)

Definição rigorosa. Execução do algoritmo A sobre um conjunto de dados D com hiperparâmetros λ, consistindo em selecionar em H a hipótese ĥ que otimiza um critério explícito avaliado sobre D, eventualmente acompanhado de um termo de regularização:

ĥ = argmin sobre h ∈ H de [ (1/n) · Σᵢ L(h(xᵢ), yᵢ) + Ω(h) ]

onde L designa a função de custo e Ω um termo que penaliza a complexidade da hipótese. Esse quadro é o da minimização do risco empírico (Vapnik). A quantidade minimizada é medida sobre a amostra de treinamento, não sobre a população: essa diferença é a origem do sobreajuste (capítulo 031).

Tradução em linguagem corrente. A fase de estudo: o algoritmo percorre os exemplos corrigidos, ajusta seus parâmetros para errar o menos possível sobre esses exemplos, e para quando o critério não melhora mais significativamente.

O que o treinamento não faz. Ele não modifica os hiperparâmetros, que permanecem tais como fornecidos; ele não acumula as chamadas sucessivas, um segundo fit sobrescrevendo integralmente o estado anterior salvo recurso a partial_fit ou warm_start; ele não avalia o modelo produzido, a avaliação exigindo dados não vistos.

Ponto de atenção. O critério otimizado durante o treinamento (a função de custo) e o critério de avaliação de negócio (a métrica) são distintos e coincidem raramente (capítulo 030).

4.2 Os três componentes de um procedimento de treinamento

Modificar um desses três componentes produz um modelo diferente, a conjunto de dados constante.

4.3 Formas de busca e reprodutibilidade

AlgoritmoEstratégia de busca em HDeterminismo a dados constantes
Regressão linear (mínimos quadrados)Solução analítica ou decomposição matricialSim
Regressão logísticaOtimização numérica convexa iterativaSim, a solver e tolerância fixados
Árvore de decisãoBusca gulosa, corte ótimo local por nóSim se nenhum sorteio aleatório de variáveis
Floresta aleatóriaÁrvores construídas sobre amostras e subespaços sorteados ao acasoNão, salvo semente fixada
Gradient boostingAdição sequencial de aprendizes que corrigem os resíduosNão, salvo semente fixada
k vizinhos mais próximosNenhuma busca: memorização do conjunto de treinamentoSim
Perceptron multicamadasDescida de gradiente estocástica por retropropagaçãoNão, salvo semente fixada e execução determinística imposta

Ponto de atenção: para os algoritmos marcados « Não », dois treinamentos sucessivos sobre o mesmo conjunto com os mesmos hiperparâmetros produzem dois modelos diferentes. A fixação de uma semente (random_state) condiciona a reprodutibilidade do entregável e deve figurar nos metadados.


5. A predição e a inferência

5.1 Definição

DEFINIÇÃO — Predição (prediction, scoring)

Definição rigorosa. Avaliação da função ĥ em um ponto x do espaço das variáveis explicativas, produzindo um valor ŷ = ĥ(x) do espaço de saída. A observação x não pertence necessariamente ao conjunto de treinamento; o interesse operacional reside precisamente no caso em que ela não pertence a ele.

Tradução em linguagem corrente. Dar uma resposta para um caso novo, aplicando a regra aprendida. A convenção distingue y, valor real observado, e ŷ, valor produzido pelo modelo; sua diferença é o resíduo (capítulo 066).

Ponto de atenção. O termo não comporta nenhuma conotação temporal. Um modelo que diagnostica uma patologia sobre dados presentes produz uma predição no sentido técnico, embora nenhum futuro esteja em jogo.

5.2 O modelo como função de entrada para saída

Três propriedades caracterizam essa função. Determinismo: duas chamadas com a mesma entrada produzem a mesma saída, o modelo não comportando nenhum elemento aleatório na predição mesmo quando seu treinamento comportava. Ausência de estado: uma predição não modifica o modelo, e a adaptação a dados novos exige um retreinamento, operação distinta. Fechamento sobre seu esquema de entrada: o modelo só aceita entradas conformes ao esquema registrado no treinamento — mesmas variáveis, mesma ordem, mesmos tipos, mesmas modalidades categóricas conhecidas, e transformações aplicadas com os parâmetros aprendidos no treinamento, não recalculados (capítulo 028).

Ponto de atenção: o modo de falha mais custoso não é o erro de execução, que é visível, mas a predição produzida sem erro a partir de uma entrada mal transformada. Um pipeline único serializado, em vez de uma sequência de etapas reproduzidas manualmente em produção, elimina essa classe de falha por construção (capítulos 076 a 079).

5.3 As formas de saída

ChamadaSaída produzidaFormaDisponibilidade
predict(X)Classe predita ou valor numéricoVetor de comprimento nTodos os estimadores supervisionados
predict_proba(X)Probabilidades estimadas por classeMatriz n × K, linhas de soma 1Classificadores com saída probabilística
decision_function(X)Score não limitado, não calibradoVetor de comprimento nModelos de margem, SVM e modelos lineares
transform(X)Representação transformada das entradasMatriz n × p′Transformadores, não estimadores finais

Ponto de atenção: predict aplica por padrão um limiar de 0,5 sobre a probabilidade estimada. Esse limiar é uma convenção de implementação, não um ótimo; sua revisão é uma alavanca importante (capítulos 062 e 029).

5.4 Inferência no sentido do Machine Learning e no sentido estatístico

DEFINIÇÃO — Inferência: duas acepções distintas

Acepção 1 — inferência no sentido do Machine Learning (inference, serving). Operação que consiste em avaliar um modelo treinado sobre dados novos para produzir predições. Sinônimo de predição, o termo se opõe ao treinamento e domina o vocabulário da engenharia de produção: inference server, inference latency, batch inference.

Acepção 2 — inferência no sentido estatístico (statistical inference). Abordagem que consiste em estimar as características de uma população a partir de uma amostra e em quantificar a incerteza associada: estimação pontual, intervalo de confiança, teste de hipótese, significância. Tradição de Fisher, Neyman e Pearson.

Origem da ambiguidade. As duas comunidades empregam a mesma palavra para operações cujos objetos se opõem: uma observação individual de um lado, um parâmetro de população do outro. A distinção é desenvolvida por Breiman (2001, Statistical Modeling: The Two Cultures) e Shmueli (2010, To Explain or to Predict?).

Ponto de atenção. Um modelo muito eficiente em predição não fornece nenhuma garantia inferencial: um coeficiente elevado não estabelece nem a significância do efeito, nem sua direção causal (capítulo 016).

CritérioInferência no sentido MLInferência no sentido estatístico
Objeto visadoUma observação individualUm parâmetro de população
Pergunta feitaQual valor para este caso preciso?Qual é o valor de θ na população, e com qual incerteza?
Saída produzidaUma predição ŷUma estimativa, um intervalo de confiança, uma decisão de teste
Critério de qualidadeErro de generalização sobre dados não vistosPropriedades do estimador: viés, convergência, cobertura
Hipóteses mobilizadasObservações i.i.d., estabilidade da distribuiçãoModelo gerador especificado, condições de regularidade
Contexto de empregoEngenharia, produção, MLOpsEstatística, epidemiologia, econometria

Recomendação de formulação: empregar « produzir uma predição » ou « servir o modelo » para a primeira acepção, e nomear explicitamente « inferência estatística » a segunda.

6. O ciclo completo, do conjunto de dados ao modelo serializado

EtapaEntrada consumidaArtefato produzidoCapítulo
EnquadramentoUma pergunta de negócioTarefa T e métrica P explicitadas012
Constituição do conjunto de dadosFontes operacionaisConjunto de dados rotulado X, y005 a 007
SeparaçãoConjunto completoSubconjuntos de treinamento, validação, teste026, 027
Preparação ajustadaXtrainX_{\mathrm{train}}Transformadores ajustados022, 023
Escolha do algoritmoNatureza do problema e restriçõesEspaço H e viés indutivo retidos049
Seleção dos hiperparâmetrosTreinamento e validaçãoConfiguração λ retida034, 035
Treinamento finalXtrainX_{\mathrm{train}}, ytrainy_{\mathrm{train}}Modelo ĥ029
AvaliaçãoXtestX_{\mathrm{test}}, ytesty_{\mathrm{test}}Medidas de desempenho em generalização052 a 075
SerializaçãoPipeline completo e metadadosArquivo de artefato versionado081
ServiçoObservações de produçãoPredições081
MonitoramentoFluxo de produçãoAlertas de deriva, decisão de retreinamento082

Leitura do ciclo. Dois laços de natureza diferente aparecem. O laço curto, entre seleção dos hiperparâmetros e treinamento, explora vários espaços de hipóteses durante o desenvolvimento. O laço longo, do monitoramento para o conjunto de dados, é acionado pela degradação do desempenho em produção: ele reexecuta o mesmo algoritmo sobre dados atualizados para produzir um novo modelo, versionado distintamente. Retreinar não consiste portanto jamais em modificar o algoritmo, mas em produzir um novo artefato.


7. Erros de raciocínio frequentes

ERRO — Dizer « implantamos um Random Forest »

O que é implantado é um artefato — estrutura e valores de parâmetros — oriundo da execução do algoritmo Random Forest sobre um conjunto de dados determinado, em uma data determinada. O algoritmo reside na biblioteca instalada.

Formulação correta: « Implantamos o modelo attrition_v3, obtido por treinamento de uma floresta aleatória sobre os dados de janeiro a junho. »

ERRO — Atribuir o aprendizado ao algoritmo

O algoritmo executa um procedimento de busca e não conserva nada ao final de sua execução; o conhecimento induzido reside nos parâmetros do modelo produzido.

Formulação correta: « O algoritmo selecionou, no espaço de hipóteses, um modelo cujos coeficientes indicam uma associação negativa entre antiguidade e cancelamento. »

ERRO — Confundir retreinar e reprogramar

Retreinar consiste em reexecutar o mesmo algoritmo, com os mesmos hiperparâmetros, sobre dados atualizados: nenhuma linha de código é modificada. A confusão leva a subestimar o custo real do ciclo de manutenção.

Formulação correta: « O retreinamento mensal produz uma nova versão do modelo sem modificação do código de treinamento. »

ERRO — Serializar o estimador sem seu pipeline de preparação

As transformações de preparação comportam parâmetros aprendidos sobre os dados de treinamento: medianas de imputação, modalidades de codificação, médias e desvios-padrão. Um estimador serializado sozinho, alimentado por transformações reimplementadas manualmente, produz predições falsas sem erro visível.

Formulação correta: « O artefato serializado é o pipeline completo, do dado bruto à predição, acompanhado de seus metadados. »

ERRO — Empregar « inferência » sem precisar a acepção

O termo designa, segundo a comunidade, a produção de uma predição sobre uma observação ou a estimação de um parâmetro de população acompanhada de uma medida de incerteza: nem o mesmo objeto, nem os mesmos critérios de validade.

Formulação correta: « O servidor de inferência produz predições. As conclusões relativas à população pertenceriam a uma inferência estatística, que esse dispositivo não fornece. »


8. Síntese

OS DOIS OBJETOS
    ALGORITMO DE APRENDIZADO — um procedimento.  A : (D, λ) → ĥ ∈ H
        Existe antes dos dados, não contém nenhum conhecimento,
        versionado como uma dependência de software.
    MODELO — um artefato.  Estrutura fixada por A e λ,
        parâmetros ajustados sobre D. Só existe após o treinamento,
        depende integralmente de D, versionado como um entregável datado.

OS TRÊS COMPONENTES DE UM ALGORITMO DE APRENDIZADO
    1. Um espaço de hipóteses H    quais regras são candidatas
    2. Um critério de otimização   como medir sua qualidade sobre D
    3. Uma estratégia de busca     como percorrer H

VIÉS INDUTIVO (Mitchell, 1980)
    As preferências não deduzidas dos dados que permitem escolher
    uma generalização entre as compatíveis com D. Sem viés,
    nenhuma generalização é possível. No Free Lunch (Wolpert, 1996):
    nenhum viés é universalmente superior; escolher um algoritmo
    é apostar na forma do fenômeno.

AS DUAS OPERAÇÕES
    TREINAMENTO    D, λ → ĥ         seleção em H
    PREDIÇÃO       x    → ŷ = ĥ(x)  avaliação de uma função

O MODELO COMO FUNÇÃO
    ENTRADA (variáveis) → [ MODELO ] → SAÍDA (predição)
    determinístico · sem estado · fechado sobre seu esquema de entrada

ANALOGIA CULINÁRIA
    receita → algoritmo           ingredientes → conjunto de treinamento
    forno   → hiperparâmetros     assar        → treinamento
    bolo    → modelo              fatia servida → predição
    bolo embalado e entregue      → artefato serializado implantado

DOIS SENTIDOS DA PALAVRA INFERÊNCIA
    Sentido ML           produzir uma predição para uma observação
    Sentido estatístico  estimar um parâmetro de população com
                         quantificação da incerteza

O QUE É EFETIVAMENTE IMPLANTADO
    Não o estimador sozinho, mas o pipeline completo (imputação,
    codificação, escalonamento, estimador) e seus metadados:
    versão de biblioteca, esquema de entrada, limiar de decisão,
    semente aleatória, data, perímetro de validade.

O TESTE DE VOCABULÁRIO
    « O procedimento » substitui o termo → o algoritmo.
    « O arquivo treinado » substitui      → o modelo.

Enunciado de síntese

O algoritmo de aprendizado é um procedimento que, a partir de um conjunto de dados e de hiperparâmetros, seleciona em um espaço de hipóteses a regra que otimiza um critério; o modelo é essa regra uma vez selecionada, artefato composto de uma estrutura e de parâmetros ajustados, dependente integralmente dos dados que o produziram; o treinamento é a operação de seleção, a predição é a avaliação da função obtida sobre uma observação nova, e o que é versionado, serializado e implantado em produção não é jamais o algoritmo, mas o modelo acompanhado de seu pipeline de preparação e de seus metadados.


Quizzes associados

  • 008.1-quiz-algorithme-apprentissage.md
  • 008.2-quiz-modele-artefact.md
  • 008.3-quiz-distinction-production.md
  • 008.4-quiz-entrainement.md
  • 008.5-quiz-prediction-inference.md
  • 008.6-quiz-cycle-complet.md

Capítulo seguinte: 009-parametres-hyperparametres.md