Calculadora de ganho de informação

Esta calculadora online calcula o ganho de informação, a mudança em entropia da informação de um estado anterior a um estado que toma mais informação como dada

A calculadora online abaixo analisa um conjunto de exemplos de treino, então computa o ganho de informação para cada atributo/característica. Se você não tem certeza do que ela se trata ou quiser ver as fórmulas, leia a explicação abaixo da calculadora.

Nota: Os exemplos de treino devem ser inseridos como lista csv, separados por ponto e vírgula. A primeira linha é considerada a linha de etiqueta, primeiro as etiquetas dos atributos/características e então a etiqueta de classe. Todas as outras linhas são exemplos. Os dados padrão nessa calculadora é o famoso exemplo de dados para a árvore de decisão de "Jogar tênis"

PLANETCALC, Calculadora de ganho de informação

Calculadora de ganho de informação

Dígitos após o ponto decimal: 3
O arquivo é muito grande; pode ocorrer lentidão do navegador durante o carregamento e a criação.

Ganho de informação e árvores de decisão

O ganho de informação é uma métrica que é particularmente útil ao construir árvores de decisão. Uma árvore de decisão é uma estrutura estilo fluxograma em que cada nó interno representa um "teste" em um atributo (ex.: se uma moeda vira em cara ou coroa), cada ramo representa o resultado do teste e cada nó de folha representa uma etiqueta de classe (decisão tomada após computar todos os atributos). Os caminhos da raiz à folha representam as regras de classificação.1

Vamos observar os dados padrão da calculadora.

Os atributos a serem analisados são:

  • Aspecto: Ensolarado/Nublado/Chuvoso
  • Umidade: Alta/Normal
  • Vento: Verdadeiro/Falso
  • Temperatura: Quente/Leve/Frio

A etiqueta de classe é:

  • Jogar: Sim/Não

Logo, ao analisar os atributos um por um, o algoritmo deve efetivamente responder à pergunta: "Devemos jogar tênis?" Portanto, para executar o menor número de etapas possíveis, precisamos escolher o melhor atributo de decisão para cada etapa. Aquela que nos fornece maior informação.

Como medir a informação que cada atributo pode nos fornecer? Um dos meios é medir a redução em entropia, e isso é exatamente o que a métrica de ganho de informação faz.

Vamos voltar ao exemplo. No treino, nós estipulamos 5 exemplos rotulados como "Não" e 9 exemplos rotulados como "Sim". De acordo com a famosa fórmula da [[alink:2476|Entropia de Shannon], a entropia atual é de

H=-\frac{5}{14} \log_2\frac{5}{14} - \frac{9}{14} \log_2\frac{9}{14} = 0.94

Agora, vamos imaginar que queremos classificar um exemplo. Decidimos testar o atributo "Vento" primeiro. Tecnicamente, estamos executado uma divisão no atributo "Vento".

Se o valor do atributo "Vento" é "Verdadeiro", nós ficamos com 6 exemplos. Três deles têm "Sim" na etiqueta "Jogar" e três deles têm "Não" na etiqueta "Jogar".
A sua entropia é de

H=-\frac{3}{6} \log_2\frac{3}{6} - \frac{3}{6} \log_2\frac{3}{6} = 1

Então, se o nosso exemplo de teste tem "Verdadeiro" no atributo "Vento", permanecemos com mais incerteza do que antes.

Agora, se o valor do atributo "Vento" é "Falso", nos restam 8 exemplos. Seis deles têm "Sim" na etiqueta "Jogar" e dois deles têm "Não" na etiqueta "Jogar".
A sua entropia é de

H=-\frac{6}{8} \log_2\frac{6}{8} - \frac{2}{8} \log_2\frac{2}{8} = 0.81

Isso é, claramente, melhor que nossos 0.94 bits iniciais de entropia (se tivermos a sorte de obter "Falso" no nosso exemplo de teste).

Para estimar a redução de entropia no geral, precisamos calcular a média usando a probabilidade de obter os valores de atributo "Verdadeiro" e "Falso". Temos 6 exemplos com valor "Verdadeiro" do atributo "Vento" e 8 exemplos com valor "Falso" do atributo "Vento". Então, a entropia média depois de dividir seria de

H_{Windy}=\frac{6}{14} H_{Windy=True} + \frac{8}{14} H_{Windy=False} = 0.429+0.463=0.892

Logo, nossa entropia inicial é 0.94, e a entropia média após dividir no atributo "Vento" é de 0.892. Portanto, o ganho de informação como redução em entropia é de

IG=H-H_{Windy}=0.048

A fórmula geral para o ganho de informação para o atributo a é

IG(T,a)=\mathrm {H} (T)-\mathrm {H} (T|a),

onde
T - um conjunto de exemplos de treino, cada um no formato (\textbf{x},y) = (x_1, x_2, x_3, ..., x_k, y) onde x_a\in vals(a) é o valor do atributo ou característica do exemplo a^{\text{th}} e y é a etiqueta de classe correspondente,
\mathrm {H} (T|a) - a entropia de T condicionada em a (Entropia condicional)

A fórmula da entropia condicional é

{\displaystyle \mathrm {H} (T|a)=\sum _{v\in vals(a)}{{\frac {|S_{a}{(v)}|}{|T|}}\cdot \mathrm {H} \left(S_{a}{\left(v\right)}\right)}.}

onde
S_{a}{(v)} - o conjunto dos exemplos de treino de T como para qual atributo a é igual a v

Utilizando essa abordagem, podemos encontrar o ganho de informação para cada um dos atributos e descobrir que o atributo "Aspecto" nos concede o maior ganho de informação, 0.247 bits. Agora, podemos concluir que a primeira divisão no atributo "Vento" foi uma ideia bem ruim, e os dados exemplos de treino sugerem que nós devemos testar o atributo "Aspecto" primeiro.

Por último: você pode estar pensando que precisamos da árvore de decisão caso precisarmos apenas fornecer a decisão para cada combinação de atributos. Claro que você pode, mas até para este pequeno exemplo, o número total de combinações é de 3*2*2*3=36. Por outro lado, nós usamos apenas um subconjunto de combinações (14 exemplos) para treinar nosso algoritmo (ao construir a árvore de decisão) e agora ele pode classificar todas as demais combinações sem nossa ajuda. Esse é o objetivo do aprendizado automático.

URL copiado para a área de transferência
PLANETCALC, Calculadora de ganho de informação

Comentários