Gerador de Árvore de Decisão (ASCII)
A partir de uma lista hierárquica indentada (2 espaços = 1 nível), gera árvore de decisão em ASCII tipo if/then.
Árvores de decisão em machine learning e negócio
Uma árvore de decisão é uma estrutura hierárquica onde cada nó interno testa um atributo, cada ramo representa um resultado do teste e cada folha atribui uma classe (classificação) ou um valor numérico (regressão). É um dos modelos mais intuitivos de aprendizado supervisionado porque o caminho da raiz até a folha lê-se como uma sequência de regras if/else que um humano consegue auditar. Fora do ML, a mesma estrutura visualiza regras de negócio, guias de troubleshooting e avaliações de risco.
Três famílias de algoritmos dominam a literatura: ID3 (Iterative Dichotomiser 3, Quinlan 1986) usa Information Gain baseado em entropia de Shannon e só lida com atributos categóricos. C4.5 (Quinlan 1993) estende o ID3 com suporte a contínuos, valores ausentes e post-pruning. CART (Breiman et al. 1984) — algoritmo por trás do scikit-learn — usa impureza de Gini, suporta regressão e produz árvores estritamente binárias. CHAID usa testes qui-quadrado e é comum em analytics de marketing.
Métricas de impureza
Splits são escolhidos para maximizar a redução de impureza do nó. Entropia = −Σ p log₂ p (Shannon, em bits). Impureza de Gini = 1 − Σ p² (probabilidade de classificar errado um rótulo sorteado). Information Gain = entropia do pai menos entropia ponderada dos filhos. Gini gain é a quantidade análoga. Em regressão, o CART minimiza MSE ou MAE dentro de cada folha.
Overfitting, pruning e regularização
Sem restrições, uma árvore de profundidade ilimitada decora o conjunto de treino — acurácia perfeita no treino, péssima generalização. Contramedidas: max_depth (limita a profundidade), min_samples_split (não divide nó menor que k), min_samples_leaf (recusa folhas com menos de k amostras), max_features (considera apenas subset de atributos em cada split). Pruning vem em dois sabores: pré-pruning interrompe o crescimento cedo; post-pruning cresce a árvore inteira e depois colapsa subárvores — o cost-complexity pruning do CART ajusta um parâmetro α por validação cruzada.
Ensembles baseados em árvores
- Random Forest (Breiman 2001) — N árvores independentes treinadas com bagging e subsampling aleatório de atributos, previsões agregadas por média ou voto
- Gradient Boosting — árvores treinadas sequencialmente, cada uma corrigindo os resíduos da anterior; XGBoost, LightGBM e CatBoost são as implementações modernas, fortemente otimizadas
- Extra Trees — como Random Forest mas com randomização extra na escolha do split
Para dados tabulares, árvores com gradient boosting continuam state-of-the-art em 2026 — vencem consistentemente redes neurais profundas no Kaggle e em produção em workloads de credit risk, churn e ranking.
Visualização e uso em negócio
Em Python, o scikit-learn exporta árvores via tree.plot_tree(model) ou para Graphviz via export_graphviz. Fora do ML, árvores de decisão funcionam como fluxogramas para regras de negócio — critérios de elegibilidade, scripts de atendimento, troubleshooting técnico. Uma técnica próxima mas distinta é a matriz de decisão, uma tabela ponderada de critérios usada quando alternativas precisam ser ranqueadas em vez de percorridas sequencialmente.
Perguntas frequentes
Redes neurais tornaram árvores obsoletas? Não. Para dados tabulares, gradient-boosted trees (XGBoost, LightGBM, CatBoost) costumam vencer redes profundas em acurácia, tempo de treino e interpretabilidade. Redes neurais dominam dados não-estruturados (visão, NLP, áudio); árvores dominam workloads tabulares. As duas famílias são complementares, não concorrentes.
Árvores de decisão são realmente interpretáveis? Uma árvore pequena (profundidade ≤ 5) é um dos modelos mais interpretáveis em ML — cada previsão é um caminho de regras legíveis. Uma árvore profunda (30+) não é mais fácil de ler que um modelo black-box; nesse caso use SHAP ou LIME para explicações por previsão.
Minha árvore está profunda demais — como simplificar? Aplique pré-pruning (baixar max_depth, subir min_samples_leaf) ou post-pruning via cost-complexity (ccp_alpha no scikit-learn). Ajuste o parâmetro por validação cruzada em conjunto held-out.
Por que árvores únicas são consideradas instáveis? Pequenas mudanças no conjunto de treino podem produzir um split completamente diferente na raiz, em cascata. É por isso que o Random Forest faz média de várias árvores bootstrapped — variância despenca enquanto o bias permanece igual.
Ferramentas Relacionadas
Gerador de Wireframe ASCII
Gera wireframes ASCII com header, sidebar, content e footer. Útil para sketches rápidos em READMEs e issues.
Gerador de Topologia de Rede (ASCII)
Desenha uma topologia simples de rede em ASCII (estrela, anel, malha completa, barramento) a partir de N nós.
Gerador de Código de Tomada de Decisão (Mock)
Gera códigos fictícios de "Tomada de Decisão" no formato ISTMT-AAAA-NNNN, útil para mockups de sistemas de governança e fluxos aprovação.