Árvore de decisão em Sklearn

Árvore de decisão em Sklearn
As árvores de decisão são modelos hierárquicos no aprendizado de máquina que podem ser aplicados a problemas de classificação e regressão. Eles comparam recursivamente os recursos dos dados de entrada e finalmente prevêem a saída no nó foliar. Discutiremos sobre as árvores de decisão e sua implementação na Biblioteca Sklearn.

O que é um algoritmo de árvore de decisão?

Os modelos de classificação e regressão são construídos usando uma técnica de árvore de decisão. Ele mapeia os vetores de valores para os rótulos e representa o classificador como uma árvore de decisão. Essa árvore pode ser comparada às declarações if-then-else aninhadas em que a condição é sempre um teste direto dos valores no vetor. E as filiais então e mais ou menos são mais declarações if-then-Otherward ou fornecem um rótulo de categorização. Uma árvore de decisão aprende com os dados, encontra os recursos mais adequados para diferenciar a saída e verifica recursivamente os dados de entrada fornecidos para prever o rótulo. Uma árvore de decisão pode ser assim, por exemplo, se o vetor de entrada for (a, b, c):

Se A> 10
Então se b < 20
Em seguida, retorne "1"
Caso contrário, se um < 15
Em seguida, retorne "0"
Mais retornar "1"
Caso contrário, se c 5
Em seguida, retorne "1"
Outra retorna "0"
Mais retornar "1"

Observe que as outras árvores de decisão têm essa característica além deste. Consequentemente, o problema não é apenas localizar essa árvore de decisão, mas também identificar a mais adequada. O fato de a entrada ser uma amostra de uma coleção considerável do mundo real e que a árvore de decisão é construída para identificar os vetores neste conjunto mais extenso determina com precisão o que "adequado" significa neste caso. Portanto, a definição de "adequada" depende de (1) as propriedades deste conjunto mais amplo (por exemplo, a probabilidade de cada vetor) e (2) o impacto financeiro da classificação incorreta em cada instância específica.

Terminologias relacionadas à árvore de decisão

Nó raiz: O nó raiz da árvore de decisão é onde tudo começa. Todo o conjunto de dados está representado, que é dividido em dois ou mais conjuntos homogêneos.

Nó da folha: Os nós da folha são os últimos nós de saída da árvore. Depois disso, a árvore não pode ser mais dividida.

Dividindo: A divisão do nó de decisão/nó raiz em sub-nó de acordo com as condições especificadas é conhecida como divisão.

Filial: Um galho ou subárvore é uma árvore criada a partir de um nó de uma árvore -mãe.

Podando: A poda é o procedimento de remover os galhos indesejáveis ​​da árvore.

Nós de pais e filhos: O nó raiz da árvore é referido como o nó pai, enquanto os nós que se originam são chamados de nós filhos.

Implementando árvores de decisão em Sklearn

Importando as bibliotecas:

de Sklearn.Os conjuntos de dados importam make_classification
de Sklearn.Decisão de importação de árvores TreeClassifier
de Sklearn.Model_Selection Import cross_val_score

Criando o conjunto de dados:

X, y = make_classification (random_state = 42)
Print ('Dados do trem é', x)
print ('Dados de teste é', y)

Saída:

Os dados do trem são [-2.02514259 0.0291022 -0.47494531… -0.33450124 0.86575519
-1.20029641]
[1.61371127 0.65992405 -0.15005559… 1.37570681 0.70117274
-0.2975635]
[0.16645221 0.95057302 1.42050425… 1.18901653 -0.55547712
-0.63738713]
..
[-0.03955515 -1.60499282 0.22213377… -0.30917212 -0.46227529
-0.43449623]
[1.08589557 1.2031659 -0.6095122… -0.3052247 -1.31183623
-1.06511366]
[-0.00607091 1.30857636 -0.17495976… 0.99204235 0.32169781
-0.66809045]]
Os dados de teste são [0 0 1 1 0 0 0 1 0 1 1 0 0 0 1 1 0 0 1 1 0 0 0 1 1 0 1 0 0 0 0 0 0 1 0
0 1 1 1 0 1 0 0 1 1 0 0 1 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 0 0 1 0 1 0 1 0
1 1 1 0 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 1 0 1 1 0 0]

Criando o modelo:

Model = DecisionTreeClassifier (Random_state = 0)
cross_val_score (modelo, x, y, cv = 10)

Saída:

Array ([0.9, 1. , 0.8, 1. , 1. , 0.9, 0.9, 1. , 0.9, 1. ]))

Conclusão

Discutimos os modelos de árvores de decisão em Sklearn que criam uma estrutura semelhante a uma árvore para classificar ou prever os rótulos de saída. Eles dividem os nós para reduzir a profundidade da árvore. Também vimos os vários termos relacionados às árvores de decisão, como nó foliar, nós pais, poda, etc. Então, mais tarde discutimos a implementação do Sklearn.