Compartilhamento de tecnologia

Introdução ao algoritmo de árvore de decisão, princípios e implementação de caso

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

O algoritmo de árvore de decisão é um algoritmo de aprendizado de máquina muito popular que pode ser usado para tarefas de classificação e regressão. A seguir está uma introdução detalhada ao algoritmo de árvore de decisão, incluindo princípios e implementações de caso, bem como o código Python correspondente.

Introdução ao algoritmo de árvore de decisão

conceito básico

Uma árvore de decisão é uma estrutura de árvore usada para classificação ou regressão de dados. Consiste em nós e arestas, onde cada nó interno representa um teste de um recurso, cada ramo representa o resultado do teste e cada nó folha representa uma categoria ou valor de regressão.

Processo de construção

O processo de construção da árvore de decisão geralmente inclui as seguintes etapas:

  1. Escolha os melhores recursos: selecione os melhores recursos para dividir o conjunto de dados de acordo com um determinado critério (como ganho de informação, índice de Gini, etc.).
  2. Criar nó: divida o conjunto de dados usando os melhores recursos e crie novos nós para cada filial.
  3. Construir subárvores recursivamente: O processo de seleção dos melhores recursos e divisão do conjunto de dados é repetido para cada nó filho até que uma condição de parada seja atendida (como a pureza do nó atingindo um determinado nível ou a profundidade da árvore atingindo um valor predefinido).
  4. Construir nós folha: os nós folha são criados quando a divisão não é mais necessária, normalmente o rótulo da classe majoritária para árvores de classificação ou a média de todos os pontos de dados no subconjunto para árvores de regressão.
critério de divisão
  • ganho de informação: Mede a redução da incerteza na classificação de um conjunto de dados por um recurso.
  • Índice de Gini: Mede a pureza do conjunto de dados. Quanto menor o índice de Gini, maior será a pureza do conjunto de dados.
  • Erro quadrático médio mínimo (MSE): Critério de divisão para árvores de regressão.

Implementação de caso

A seguir está um caso de classificação de árvore de decisão implementado usando Python e a biblioteca scikit-learn. Usaremos o famoso conjunto de dados Iris, que contém características e categorias de três flores de íris (Setosa, Versicolor, Virginica).

1. Preparação de dados
  1. from sklearn.datasets import load_iris
  2. from sklearn.model_selection import train_test_split
  3. # 加载数据集
  4. iris = load_iris()
  5. X, y = iris.data, iris.target
  6. # 拆分数据集为训练集和测试集
  7. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
Treine um modelo de árvore de decisão
  1. from sklearn.tree import DecisionTreeClassifier
  2. # 初始化决策树分类器
  3. clf = DecisionTreeClassifier()
  4. # 训练模型
  5. clf.fit(X_train, y_train)
Modelo de avaliação
  1. from sklearn.metrics import accuracy_score
  2. # 预测测试集
  3. y_pred = clf.predict(X_test)
  4. # 计算准确率
  5. accuracy = accuracy_score(y_test, y_pred)
  6. print(f"Accuracy: {accuracy:.2f}")
Árvore de decisão visual
  1. import matplotlib.pyplot as plt
  2. from sklearn.tree import plot_tree
  3. # 可视化决策树
  4. plt.figure(figsize=(12, 12))
  5. plot_tree(clf, filled=True, feature_names=iris.feature_names, class_names=iris.target_names)
  6. plt.show()

Resumir:

O código acima mostra como usar a biblioteca scikit-learn para carregar o conjunto de dados Iris, treinar um classificador de árvore de decisão, avaliar o desempenho do modelo e visualizar a árvore de decisão. Através deste caso, você pode ver como funciona uma árvore de decisão e como utilizá-la em aplicações práticas.

Espero que todos gostem. Se gostarem, dêem um like e salvem.