CORAZZA.DEV

Estação #07

Capa de Entropia e Ganho de Informação

Entropia e Ganho de Informação

Marcos Corazza | 02 julho 2026
#data-science#fundamentos#entropia

Na Estação 7, mergulhamos na Teoria da Informação de Claude Shannon para desvendar o conceito abstrato da Entropia. Muito além da termodinâmica, a entropia na Ciência de Dados é a medida matemática da incerteza e da "surpresa" contida em uma variável. Entenda como o logaritmo traduz previsibilidade em bits e descubra o motor invisível dos algoritmos de Machine Learning: desde o Ganho de Informação nas Árvores de Decisão até a Entropia Cruzada em Redes Neurais. Aprenda a quantificar o caos.

RESUMO
Palavras:~2.430
Leitura:12 min
Linha01 Fundamentos
Progresso:38.9% [■■■■------]

Até o momento, organizamos nosso mundo de dados em estruturas rígidas. Vimos como tabelas, matrizes e árvores armazenam e conectam a informação. Mas isso nos leva a uma pergunta filosófica e matemática muito mais profunda: o que exatamente é a informação? E, mais importante para um Cientista de Dados, como podemos medir a quantidade de informação útil contida em uma coluna de uma tabela?

A palavra "Entropia" frequentemente evoca memórias das aulas de física do ensino médio, onde era descrita como a medida da desordem de um sistema termodinâmico ou a razão pela qual uma xícara de café quente esfria inevitavelmente. No entanto, em 1948, um matemático genial chamado Claude Shannon publicou um artigo que fundaria a era digital moderna. Ele roubou o termo da física e o aplicou às telecomunicações, criando a Entropia da Informação.

Na Ciência de Dados, a Entropia de Shannon não é sobre calor ou moléculas; é sobre incerteza, previsibilidade e surpresa. Ela é o alicerce absoluto de como os algoritmos de Machine Learning "decidem" quais variáveis são mais importantes na hora de fazer uma predição.

Nesta parada densa e fascinante, vamos aprender a quantificar o caos. Vamos entender como transformar a intuição humana sobre a incerteza em uma equação matemática implacável, e como essa equação guia os modelos preditivos mais poderosos do mundo.

1. A Intuição da Surpresa: O que é Informação?

Para entender a entropia, precisamos primeiro inverter nossa intuição sobre o que constitui a "informação". Na Teoria da Informação, a informação está diretamente ligada à resolução da incerteza. Quanto mais surpreso você fica ao descobrir o resultado de um evento, mais informação esse evento carrega.

Vamos usar um exemplo clássico para cristalizar isso. Imagine que eu tenha duas moedas.

A Moeda Viciada (A Certeza Absoluta): A primeira moeda é uma moeda falsa que tem "Cara" impressa em ambos os lados. Se eu jogar essa moeda para o alto e esconder o resultado com a mão, quão incerto você está sobre o que saiu? Nenhuma incerteza. Você sabe com 100% de certeza que é "Cara". Quando eu levanto a mão e mostro a "Cara", você não aprendeu nada novo. Você não ficou surpreso. Portanto, esse evento transmitiu zero informação. Em termos matemáticos, a entropia dessa moeda é zero. Um conjunto de dados onde todos os valores são idênticos é inútil para o Machine Learning, pois não possui entropia; não há padrão para ser aprendido além da constante.

A Moeda Justa (A Incerteza Máxima): A segunda moeda é uma moeda justa e perfeitamente balanceada (50% de chance de Cara, 50% de Coroa). Quando eu a jogo para o alto, você está no estado máximo de incerteza que um sistema de dois resultados permite. Você não faz a menor ideia do que vai sair. Quando eu levanto a mão e revelo "Coroa", a sua incerteza é subitamente resolvida. Você foi "surpreso". Esse ato de resolver uma dúvida de 50/50 transmite exatamente uma unidade fundamental de informação. Shannon chamou essa unidade de Bit (Binary Digit). A entropia desta moeda é exatamente 1.

A Entropia, portanto, mede a imprevisibilidade média de um conjunto de dados.

  • Se você está tentando prever se vai nevar no Deserto do Saara amanhã, a entropia é quase zero (é quase certo que não vai).

  • Se você está tentando prever os seis números sorteados na loteria, a entropia é colossal.

2. A Matemática do Caos: A Fórmula de Shannon

A genialidade de Claude Shannon foi encontrar uma equação universal que conseguisse calcular essa incerteza para qualquer distribuição de probabilidade, não apenas para moedas jogadas para o alto.

Se temos uma variável XX com nn possíveis estados distintos (ex: as 6 faces de um dado, ou as 3 categorias de uma coluna "Grau de Escolaridade"), e cada estado tem uma probabilidade de ocorrer denotada por P(xi)P(x_i), a Entropia de Shannon, denotada por H(X)H(X), é calculada pela seguinte fórmula:H(X)=i=1nP(xi)log2P(xi)H(X) = - \sum_{i=1}^{n} P(x_i) \log_2 P(x_i)Não deixe o símbolo de somatório (\sum) ou o logaritmo o intimidarem. Vamos traduzir essa equação passo a passo:

  1. A Probabilidade P(xi)P(x_i): Pegamos a probabilidade de um evento específico acontecer. Por exemplo, a chance de sair o número 4 em um dado justo é de 1/61/6.
  2. A Surpresa log2P(xi)\log_2 P(x_i): O logaritmo na base 2 é o coração da teoria da informação. Ele responde à pergunta: "Quantas vezes eu preciso dividir esse espaço de probabilidade pela metade para chegar a esse evento?". Como a probabilidade é sempre um número entre 0 e 1, o logaritmo de uma fração resulta em um número negativo.
  3. A Multiplicação: Multiplicamos a probabilidade do evento ocorrer pelo tamanho da surpresa que ele gera. Isso nos dá a "surpresa ponderada" daquele evento específico.
  4. O Somatório \sum: Somamos essas surpresas ponderadas para todos os eventos possíveis no nosso sistema (todas as faces do dado).
  5. O Sinal Negativo (-) no início: Como os logaritmos das frações geram números negativos, e nós queremos que nossa métrica de Entropia seja um número positivo (você não pode ter "menos três bits de surpresa"), colocamos um sinal negativo na frente da fórmula inteira para inverter o resultado final.

Por que usar Logaritmos?

Você pode se perguntar por que os matemáticos complicam as coisas com logaritmos em vez de apenas multiplicar probabilidades diretas.

Se você jogar duas moedas justas e quiser saber a probabilidade de ambas darem Cara, você multiplica as probabilidades (0.5×0.5=0.250.5 \times 0.5 = 0.25). Mas os humanos e os computadores acham muito mais fácil somar do que multiplicar. O logaritmo tem uma propriedade mágica: o logaritmo de uma multiplicação é igual à soma dos logaritmos (log(a×b)=log(a)+log(b)\log(a \times b) = \log(a) + \log(b)).

O logaritmo converte o mundo multiplicativo das probabilidades no mundo aditivo da informação. Jogar uma moeda te dá 1 bit de entropia. Jogar duas moedas não te dá 0.5×0.50.5 \times 0.5 de entropia; a mágica do logaritmo faz com que a entropia seja 1+1=21 + 1 = 2 bits. A informação se acumula linearmente.

3. A Entropia como Motor do Machine Learning

Agora que desmistificamos a matemática, como isso se aplica a uma tabela cheia de clientes, compras e inadimplências? Por que um Cientista de Dados se importa com os bits de surpresa de Claude Shannon?

A Entropia é a bússola que guia os algoritmos quando eles estão perdidos em um mar de dados tabulares (que vimos na Estação 6). Ela atua em duas frentes principais no Machine Learning.

3.1. Árvores de Decisão e o "Ganho de Informação"

Lembra-se das Árvores Binárias da Estação 2? No Machine Learning, usamos Árvores de Decisão para classificar dados.

Imagine que você é o gerente de um banco e tem uma tabela com 1.000 clientes. Desses, 500 pagaram seus empréstimos e 500 deram calote (inadimplência). Sua coluna "Alvo" (pagou/calote) está perfeitamente dividida em 50/50. Se aplicarmos a fórmula de Shannon a essa coluna, a entropia será exatamente de 1 bit (incerteza máxima). O objetivo de um modelo preditivo é destruir essa entropia, separando os bons pagadores dos maus pagadores até chegar a uma incerteza de zero.

Para fazer isso, o algoritmo precisa fazer perguntas aos dados tabulares (as Features). Ele deve perguntar: "O salário é maior que R$ 5.000?", ou "A idade é menor que 25 anos?". Como a Árvore de Decisão sabe qual é a melhor pergunta a se fazer primeiro (para ser o nó Raiz da árvore)?

Ela usa o Ganho de Informação (Information Gain), que é simplesmente a Entropia Original subtraída da Entropia após a divisão.

  1. O algoritmo simula dividir a tabela usando a coluna "Idade". Se a divisão resultar em dois grupos misturados onde a proporção ainda é próxima de 50/50 (ex: os jovens dão tanto calote quanto os idosos), a entropia dos novos grupos continua alta. O Ganho de Informação foi quase zero. A idade é uma coluna inútil para essa previsão.

  2. Então, o algoritmo tenta dividir usando a coluna "Tem Restrição no Serasa?". Ao fazer essa divisão, ele descobre que no grupo "Sim", 95% deram calote. No grupo "Não", 90% pagaram certinho. A entropia desses novos grupos desabou para perto de 0. O Ganho de Informação foi gigantesco!

A Árvore de Decisão escolherá, matematicamente, a variável "Tem Restrição no Serasa?" como a primeira e mais importante ramificação do seu modelo, tudo isso guiado pela equação que Shannon criou em 1948. (Nota: Muitos algoritmos modernos usam uma variação da Entropia chamada Impureza de Gini, que é ligeiramente mais rápida de calcular para o processador por não usar logaritmos, mas o princípio conceitual da redução do caos é rigorosamente o mesmo).

3.2. A Entropia Cruzada (Cross-Entropy Loss) em Redes Neurais

Ao treinar modelos complexos como Redes Neurais ou Regressões Logísticas para tarefas de classificação (por exemplo, olhar para uma foto e classificar se é um cachorro ou um gato), o modelo não apenas cospe uma resposta seca; ele cospe uma distribuição de probabilidade. Ele dirá: "Tenho 90% de certeza que é um cachorro, e 10% de chance de ser um gato".

Para o algoritmo "aprender" e ajustar seus pesos internos, ele precisa de uma métrica rígida que o puna por seus erros. Essa métrica de punição é chamada de Função de Custo (Loss Function). O padrão absoluto da indústria para classificação é a Entropia Cruzada (Cross-Entropy).

Enquanto a Entropia de Shannon mede a incerteza intrínseca de uma distribuição, a Entropia Cruzada mede a discrepância e a diferença de surpresa entre duas distribuições: a previsão que o seu modelo fez e a realidade (o rótulo verdadeiro do dado).

  • Se a foto é de fato um cachorro (verdade = 100%), e seu modelo previu cachorro com 99% de certeza, a Entropia Cruzada entre essas duas realidades é ínfima. O modelo não é punido.

  • Se a foto é de um cachorro, e seu modelo previu com 90% de confiança que era um gato, a Entropia Cruzada explode para um valor altíssimo. O algoritmo sofreu uma "surpresa" colossal quando a verdade lhe foi revelada. Esse número gigante é jogado de volta no algoritmo (via um processo chamado Backpropagation) obrigando o modelo a ajustar drasticamente seus tensores e matrizes (Estação 1) para nunca mais cometer um erro tão crasso.

4. Resumo e Próximos Passos

A Entropia é o tradutor universal que converte previsibilidade em números.

  • Ela atinge seu valor máximo quando somos incapazes de prever o resultado (incerteza de 50/50 em um cenário binário).

  • Ela cai para zero quando há certeza absoluta sobre o mundo.

  • Ela direciona as Árvores de Decisão através do Ganho de Informação, obrigando o modelo a escolher as perguntas que mais reduzem o caos.

  • Ela pune as Redes Neurais através da Entropia Cruzada sempre que elas demonstram alta confiança em uma previsão completamente errada.

Com a bagagem teórica da Entropia, finalizamos as fundações abstratas da Ciência de Dados. Agora que entendemos como organizar os dados tabulares (Estação 6) e como medir o caos dentro deles (Estação 7), precisamos de uma ferramenta prática, ágil e robusta para realizar essas operações na velocidade do pensamento.

Na Estação 8, abandonaremos a abstração e mergulharemos de cabeça na engenharia de software prática com os Data Frames e Series no ecossistema Python. A verdadeira manipulação de dados começa lá.

Mas antes, vamos provar a matemática de Shannon escrevendo nosso próprio calculador de caos em Python.

Mão na Massa: Calculando Entropia e Ganho de Informação em Python

Neste bloco prático, vamos usar a biblioteca científica scipy para calcular a entropia de diferentes "moedas". Depois, vamos implementar a lógica bruta do Ganho de Informação que roda nos bastidores de uma Árvore de Decisão.

import numpy as np from scipy.stats import entropy import pandas as pd print("--- 1. CALCULANDO A ENTROPIA DE SHANNON ---") # A função entropy do scipy exige as probabilidades dos eventos, e definimos a base do logaritmo (2 para bits) # Cenário A: Moeda Viciada (100% de chance de Cara, 0% de Coroa) probabilidades_viciada = [1.0, 0.0] # Adicionamos uma pequena constante para evitar o erro matemático de log(0) internamente, # mas o Scipy lida com isso se passarmos a probabilidade exata de 0. entropia_viciada = entropy(probabilidades_viciada, base=2) print(f"Entropia da Moeda Viciada (Certeza Absoluta): {entropia_viciada} bits") # Cenário B: Moeda Justa (50% Cara, 50% Coroa) probabilidades_justa = [0.5, 0.5] entropia_justa = entropy(probabilidades_justa, base=2) print(f"Entropia da Moeda Justa (Incerteza Máxima): {entropia_justa} bits") # Cenário C: Dado de 6 Lados (1/6 para cada face) prob_dado = [1/6] * 6 entropia_dado = entropy(prob_dado, base=2) print(f"Entropia de um Dado Justo: {entropia_dado:.2f} bits\n") print("--- 2. SIMULANDO O GANHO DE INFORMAÇÃO NUMA ÁRVORE DE DECISÃO ---") # Vamos simular um mini-banco de dados de 10 clientes e se eles deram calote (1) ou pagaram (0) dados_banco = pd.DataFrame({ 'salario_alto': ['Sim', 'Sim', 'Sim', 'Sim', 'Sim', 'Não', 'Não', 'Não', 'Não', 'Não'], 'calote': [0, 0, 0, 0, 1, 1, 1, 1, 1, 0] # 80% dos salários altos pagaram. 80% dos baixos deram calote. }) # Função manual para calcular entropia de uma lista (coluna) def calcular_entropia_coluna(coluna): # Conta a frequência de cada valor (0 ou 1) e divide pelo total para achar a probabilidade probabilidades = coluna.value_counts(normalize=True).values return entropy(probabilidades, base=2) # 1. Entropia Original (Antes de fazer qualquer pergunta) # Temos 5 calotes (1) e 5 pagamentos (0). entropia_raiz = calcular_entropia_coluna(dados_banco['calote']) print(f"Entropia do dataset inteiro (Raiz): {entropia_raiz:.2f} bits") # 2. O algoritmo decide dividir pela pergunta: "salario_alto == Sim" ? # Pegamos o grupo SIM grupo_sim = dados_banco[dados_banco['salario_alto'] == 'Sim']['calote'] entropia_sim = calcular_entropia_coluna(grupo_sim) # Pegamos o grupo NÃO grupo_nao = dados_banco[dados_banco['salario_alto'] == 'Não']['calote'] entropia_nao = calcular_entropia_coluna(grupo_nao) # 3. Calculamos a Entropia Ponderada Pós-Divisão # (Tamanho do grupo SIM / Total) * Entropia SIM + (Tamanho do grupo NÃO / Total) * Entropia NÃO peso_sim = len(grupo_sim) / len(dados_banco) peso_nao = len(grupo_nao) / len(dados_banco) entropia_pos_divisao = (peso_sim * entropia_sim) + (peso_nao * entropia_nao) print(f"Entropia média APÓS dividir pelo Salário: {entropia_pos_divisao:.4f} bits") # 4. O Veredito Matemático (Ganho de Informação) ganho_informacao = entropia_raiz - entropia_pos_divisao print(f"\nGanho de Informação alcançado com essa pergunta: {ganho_informacao:.4f} bits") print("Como o ganho foi alto (mais próximo de 1), a variável 'salario_alto' é um excelente previsor!")