Classificando Flores Íris
Você já imaginou ensinar um computador a identificar diferentes tipos de flores? Na Aprendizagem de Máquina, essa tarefa torna-se possível através de modelos que reconhecem padrões nos dados. As Árvores de Decisão destacam-se como uma das técnicas mais amigáveis para iniciantes. Elas funcionam de maneira similar a um jogo de perguntas e respostas. Para demonstrar esse conceito, utilizaremos o clássico conjunto load_iris. Este dataset reúne medidas de três espécies de flores Íris. Sua popularidade no ensino deve-se à combinação equilibrada de simplicidade e desafio. Portanto, ele representa uma escolha ideal para nossos primeiros passos na área.
O Funcionamento das Árvores de Decisão
Uma Árvore de Decisão assemelha-se a um fluxograma de perguntas organizadas hierarquicamente. O processo inicia-se no topo, chamado de nó raiz, com uma questão sobre alguma característica da flor. Por exemplo, podemos perguntar sobre o comprimento da pétala. A resposta determina qual caminho seguir pelos galhos da estrutura. Cada novo nó apresenta outra pergunta, refinando gradualmente a classificação. Esse ciclo repete-se até alcançarmos uma folha, que representa a decisão final sobre a espécie. O computador constrói essa estrutura automaticamente durante o treinamento. Consequentemente, o modelo resultante revela-se facilmente interpretável por humanos. Além disso, sua lógica pode ser explicada até mesmo para não especialistas.
Explorando o Conjunto de Dados load_iris
O dataset load_iris foi introduzido pelo estatístico Ronald Fisher em 1936. Ele contém 150 amostras distribuídas igualmente entre três espécies de Íris. Cada amostra inclui quatro medidas em centímetros: comprimento e largura da sépala, além de comprimento e largura da pétala. O objetivo principal consiste em classificar a espécie com base nessas características físicas. A espécie Setosa diferencia-se facilmente das demais pelo comprimento reduzido de suas pétalas. As espécies Versicolor e Virginica, entretanto, apresentam medidas parcialmente sobrepostas. Dessa forma, o dataset permite demonstrar tanto classificações simples quanto situações mais complexas. Por essa razão, ele permanece relevante após décadas de uso acadêmico.
O Processo de Construção da Árvore
Durante o treinamento, o computador precisa determinar a melhor sequência de perguntas possível. Ele utiliza critérios matemáticos como o Índice Gini para orientar suas escolhas. Este índice mede a pureza dos grupos formados após cada divisão dos dados. Inicialmente, todas as amostras encontram-se misturadas em um único conjunto. O algoritmo testa diferentes perguntas e avalia como elas separam os elementos. A pergunta vencedora será aquela que criar os grupos mais homogêneos. Após essa primeira divisão bem-sucedida, o processo repete-se recursivamente em cada novo galho. Consequentemente, a árvore vai crescendo até que um critério de parada seja finalmente atingido.
Visualizando a Estrutura Aprendida
Após o treinamento concluído, podemos visualizar a árvore resultante de forma clara e intuitiva. Uma árvore típica começaria perguntando sobre o comprimento da pétala. Valores menores ou iguais a 2,45 centímetros levariam diretamente à classificação Setosa. Valores maiores exigiriam uma segunda pergunta, provavelmente sobre a largura da pétala. Se a largura for menor ou igual a 1,75 centímetros, a flor seria classificada como Versicolor. Caso contrário, ela seria identificada como Virginica. Qualquer pessoa consegue acompanhar esse raciocínio lógico sem dificuldade. Portanto, a transparência do modelo torna-se uma de suas maiores vantagens práticas.
Aplicações Práticas e Cuidados Necessários
Depois de construída, a árvore pode classificar novas flores nunca antes vistas. O modelo recebe as medidas da flor desconhecida e percorre automaticamente o caminho de perguntas estabelecido. Ao final desse percurso, obtemos a classificação prevista para aquela amostra. A precisão do modelo deve ser avaliada com um conjunto de testes separado. Árvores excessivamente profundas, entretanto, podem sofrer de overfitting. Nesse problema, o modelo decora os exemplos de treinamento mas falha em generalizar. Quando bem construídas, porém, essas árvores encontram aplicações valiosas em diagnósticos médicos e análises financeiras. Por isso, dominar essa técnica revela-se fundamental para qualquer cientista de dados iniciante.
Obtendo conjunto de dados load_iris
|
1 2 3 4 5 6 7 8 9 10 |
import sklearn from sklearn.datasets import load_iris from sklearn.tree import DecisionTreeClassifier iris = load_iris() X = iris.data[:,2:] # comprimento e largura da pétala y = iris.target tree_clf = DecisionTreeClassifier(max_depth=1) tree_clf.fit(X, y) |
Visualisando os dados
|
1 2 3 4 5 6 7 8 9 10 |
print("Dados de comprimento e largura da pétala:") print("-" * 50) print(f"{'Comprimento':<12} {'Largura':<12} {'Classe':<12}") print("-" * 50) for i in range(10): # Mostrar apenas 10 primeiras linhas comprimento = X[i, 0] largura = X[i, 1] classe = iris.target_names[y[i]] print(f"{comprimento:<12} {largura:<12} {classe:<12}") |
Exportando arvore de decisão treinado para iris_tree.dot
|
1 2 3 4 5 6 7 8 9 10 11 12 |
from sklearn.tree import export_graphviz export_graphviz( tree_clf, out_file="iris_tree.dot", # Salva no diretório atual feature_names=iris.feature_names[2:], # 'petal length' e 'petal width' class_names=iris.target_names, # 'setosa', 'versicolor', 'virginica' rounded=True, filled=True ) print("Arquivo 'iris_tree.dot' criado com sucesso!") |
Visualizando a Árvore de Decisão
|
1 2 3 4 5 |
import graphviz with open("iris_tree.dot") as f: dot_graph = f.read() graphviz.Source(dot_graph) |
Como funcionam?
-
Estrutura: Funcionam como um fluxograma, onde cada ramificação representa uma decisão baseada em regras construídas sobre as variáveis do problema.
-
Regras (Thresholds): As decisões são baseadas em limiares (thresholds). Exemplo: para uma variável X, a regra pode ser
X < 10,69. Se a condição for satisfeita, segue-se um caminho; caso contrário, segue-se o outro. -
Treinamento: Durante o treinamento, o algoritmo percorre os dados para determinar a ordem das variáveis e os valores dos limiares que melhor dividem os dados, criando a estrutura da árvore.
Validação do Modelo
-
Método: Após o treinamento (com profundidade máxima definida, por exemplo), o modelo é validado com um conjunto de teste, percorrendo a árvore até chegar a uma predição.
-
Métricas e o parâmetro average: Para avaliar a qualidade em problemas multiclasse, usa-se o parâmetro
averageno cálculo das métricas (como precisão e recall), com as seguintes opções:-
Micro: Todas as observações contribuem igualmente para a métrica.
-
Macro: A métrica é a média das métricas de cada classe.
-
Weighted: Dá peso maior para as classes mais frequentes no dataset.
-
Samples: Calcula métricas para cada observação e tira a média (recomendado apenas para tarefas multiclasse).
-