Pular para conteúdo

Simulador de pipelines de ML

Carregando o simulador… (ele precisa de JavaScript)

Referência

Seus próprios dados: arquivos e links

No bloco Dados, aperte Seus dados…. Há dois caminhos.

Carregar um arquivo do seu computador

Clique em Escolher arquivo… ou arraste o arquivo para o quadro tracejado.

  • Formatos: CSV, TSV ou TXT com qualquer separador (o separador é detectado; um arquivo separado por ;, como o Excel brasileiro exporta, é lido com vírgula decimal), também compactado (.gz), Excel (.xlsx), Parquet ou JSON.
  • A primeira linha deve ter os nomes das colunas.
  • Tamanho: até 100 MB; acima de uns 20 MB fica lento. Para conjuntos grandes, use Linhas usadas (uma amostra) enquanto experimenta.
  • Privacidade: o arquivo é lido dentro do seu navegador e não é enviado a nenhum servidor. Ele fica na memória enquanto a página estiver aberta; se você recarregar a página, escolha-o de novo.

Carregar por link

Cole o endereço no campo de link e aperte Carregar link. O navegador só consegue ler um arquivo de outro site se esse site permitir (a regra se chama CORS), então nem todo link funciona.

Origem Funciona? O que colar
GitHub ✓ O link da página do arquivo (…/blob/…) ou o link raw; o simulador converte sozinho
Gist ✓ O link raw
Google Drive ✓ Compartilhe como Qualquer pessoa com o link e cole o link do arquivo (…/file/d/…/view)
Google Planilhas ✓ Compartilhe como Qualquer pessoa com o link e cole o link da planilha; a aba aberta é exportada como CSV
Hugging Face ✓ O link …/resolve/… (ou …/blob/…, que é convertido)
Kaggle ✗ Exige login: baixe o arquivo e escolha-o do computador
Dropbox, OneDrive, UCI e muitos sites de universidades ✗ Não permitem a leitura por outra página: baixe e escolha do computador

Um link que devolve uma página web em vez do arquivo (a página de visualização do Drive, por exemplo) é recusado com uma mensagem explicando o que fazer. O código exportado lê os dados pelo mesmo link.

Depois de carregar, o simulador mostra cada coluna com o tipo (número ou categoria), quantos valores faltam e quantos valores distintos há. Escolha a coluna alvo, a tarefa (classificação ou regressão) e, numa classificação binária, a classe positiva. Desmarque as colunas que não devem entrar (identificadores, texto livre) e clique no tipo de uma coluna numérica para tratá-la como categoria (como Pclass no Titanic).

Como o pipeline é montado

O simulador monta sempre o mesmo esqueleto de scikit-learn, que é o das aulas de pré-processamento e pipelines:

prep = ColumnTransformer([
    ("num", Pipeline([("impute", ...), ("transform", ...), ("scale", ...)]), num_cols),
    ("cat", Pipeline([("impute", SimpleImputer(strategy="most_frequent")), ("encode", ...)]), cat_cols),
])
pipe = Pipeline([("prep", prep), ("reduce", ...), ("model", ...)])
  • Ajustar por coluna (no nó Preparação) deixa uma coluna sair da sua faixa, com imputação, transformação e escala próprias (ou outra codificação, se for categórica). Colunas com as mesmas escolhas viram um ramo próprio do ColumnTransformer, como ("num_log1p", Pipeline([...]), num_log1p_cols) no código exportado.
  • A aba Explorar mostra as linhas de treino (X_train) antes de qualquer modelo: o alvo, cada coluna (histograma por classe, assimetria, outliers, faltantes), a associação entre colunas e sugestões com botões que mudam o pipeline. Cada par de colunas é medido do jeito que os tipos permitem: r de Pearson para número × número, razão de correlação η para categoria × número e V de Cramér (com correção de viés) para categoria × categoria; clicar numa célula desenha o par como dispersão, uma caixa por categoria ou a composição de cada categoria. O teste fica de fora também aqui; o que você decidir olhando os dados não espiou o teste.
  • A divisão treino/teste vem primeiro (train_test_split, estratificada numa classificação). Tudo é ajustado só nas linhas de treino: a média do imputador, a escala, o PCA (análise de componentes principais), a seleção de atributos e o modelo.
  • A validação cruzada roda nas linhas de treino; o conjunto de teste fica guardado e é avaliado uma vez. A tabela de métricas mostra as três colunas lado a lado: treino muito acima da validação é sobreajuste.
  • A importância por permutação embaralha uma coluna original de cada vez nas linhas de teste e mede quanto a métrica principal cai.
  • A opção Ajustar o pré-processamento em TODAS as linhas existe para você ver o vazamento acontecer: com ela ligada, o pré-processamento olha o teste antes da avaliação e os números ficam otimistas.
  • Comparar modelos passa vários modelos pela mesma preparação e pelos mesmos folds (cross_val_score em cada um) e mostra a nota de cada fold; Usar põe o escolhido no pipeline.
  • Busca em grade roda um GridSearchCV em um ou dois hiperparâmetros (até 100 combinações): com um, desenha a curva de validação; com dois, um mapa de calor. A melhor combinação é avaliada no teste uma única vez; Aplicar ao pipeline copia os valores para o modelo.
  • O botão Código entrega em Python o que está na aba aberta: a última execução, a comparação ou a busca em grade.
  • Baixar os dados preparados (no bloco Preparação) e Baixar os dados reduzidos (no bloco Redução) salvam um .csv com todas as linhas como o modelo as recebe: as etapas são ajustadas nas linhas de treino, a coluna split marca treino e teste e a última coluna é o alvo.
  • A aba Mapa 2D desenha as linhas de treino em duas dimensões com t-SNE (scikit-learn), UMAP (umap-js, porque o umap-learn precisa do numba, que o Pyodide não tem) ou os dois primeiros componentes do PCA, depois da Preparação ou também da Redução, com a cor do alvo. É só para ver: nada dali entra no pipeline. Acima de 50 colunas, o t-SNE e o UMAP recebem antes 50 componentes principais.
  • O navegador roda o scikit-learn 1.8. O Colab pode ter outra versão, então as últimas casas decimais podem diferir.
Cenários
Cenário O que ensina Aula
k-NN sem escala Distâncias dominadas pela coluna de maior escala k vizinhos mais próximos (k-NN)
A armadilha da acurácia 98% de acurácia que não encontra os casos raros; peso das classes e limiar ROC e desbalanceamento
A árvore que decora Treino × validação, profundidade e poda Árvores de decisão
Titanic do zero Faltantes, categorias, identificadores que explodem o one-hot Pré-processamento
Vazamento: aprendendo com ruído Seleção de atributos fora da validação cruzada Validação cruzada
Um polinômio flexível demais Grau, regularização e curva de validação Seleção de modelos
Precificando imóveis Imputação, categorias e um modelo não linear Regressão linear
64 pixels, 20 números PCA antes do k-NN Redução de dimensionalidade
Entortando a fronteira Fronteira linear × kernel, vizinhos e atributos polinomiais Máquinas de vetores de suporte (SVM)

Seu pipeline fica salvo neste navegador para cada cenário; ↺ Restaurar traz o original de volta.

O que o simulador é (e o que não é)

É um laboratório para treinar o raciocínio de um projeto de aprendizado de máquina: que etapa resolve que problema, como ler treino × validação × teste e como comparar alternativas de forma justa. Ele cobre o caminho tabular das aulas (com o scikit-learn, o XGBoost e o LightGBM), não texto, imagens grandes ou aprendizado profundo. O processamento é o do seu computador: conjuntos grandes e modelos pesados (SVM com dezenas de milhares de linhas, florestas com centenas de árvores em validação cruzada) podem levar minutos; o botão ■ Parar reinicia o Python.