# Exercício Prático 2 - Função Sigmoide e Classificação Probabilística
import math

def calcular_probabilidade_sigmoide(z):
    """Aplica a função sigmoide a um valor real z."""
    return 1.0 / (1.0 + math.exp(-z))

# Valores de z obtidos da combinação linear (z = beta_0 + beta_1*X1 + ...)
valores_z = [-3.5, -1.0, 0.0, 1.2, 4.0]
limiar_decisao = 0.5

print("=== CONVERSÃO SIGMOIDE E CLASSIFICAÇÃO BINÁRIA ===")
print(f"{'Valor z':<10} | {'Probabilidade (p)':<20} | {'Classe Prevista'}")
print("-" * 50)

for z in valores_z:
    p = calcular_probabilidade_sigmoide(z)
    # Aplicação do limiar condicional
    classe_prevista = 1 if p >= limiar_decisao else 0
    print(f"{z:<10.1f} | {p:<20.4f} ({p*100:.2f}%) | {classe_prevista}")