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_scoreem cada um) e mostra a nota de cada fold; Usar põe o escolhido no pipeline. - Busca em grade roda um
GridSearchCVem 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
splitmarca 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.