hedtorresca commited on
Commit
1993bab
verified
1 Parent(s): 802bcbe

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +47 -0
app.py ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import numpy as np
3
+ import matplotlib.pyplot as plt
4
+
5
+ # Funci贸n para calcular el teorema de Bayes
6
+ def bayes(prior_A, prob_B_given_A, prob_B_given_notA):
7
+ # Calculamos P(B) usando la regla de la probabilidad total
8
+ prob_B = prob_B_given_A * prior_A + prob_B_given_notA * (1 - prior_A)
9
+ # Calculamos P(A|B) usando el teorema de Bayes
10
+ posterior_A_given_B = (prob_B_given_A * prior_A) / prob_B
11
+ return posterior_A_given_B, prob_B
12
+
13
+ # Funci贸n para crear el gr谩fico de barras
14
+ def plot_results(prior_A, prob_B_given_A, prob_B_given_notA, posterior_A_given_B):
15
+ # Crear un gr谩fico de barras para las probabilidades
16
+ labels = ['P(A)', 'P(B|A)', 'P(B|卢A)', 'P(A|B)']
17
+ values = [prior_A, prob_B_given_A, prob_B_given_notA, posterior_A_given_B]
18
+
19
+ fig, ax = plt.subplots()
20
+ ax.bar(labels, values, color=['skyblue', 'orange', 'lightgreen', 'pink'])
21
+ ax.set_ylabel('Probabilidad')
22
+ ax.set_title('Resultados del Teorema de Bayes')
23
+
24
+ return fig
25
+
26
+ # Funci贸n principal que se utilizar谩 en la aplicaci贸n de Gradio
27
+ def bayes_app(prior_A: float, prob_B_given_A: float, prob_B_given_notA: float):
28
+ posterior_A_given_B, prob_B = bayes(prior_A, prob_B_given_A, prob_B_given_notA)
29
+ fig = plot_results(prior_A, prob_B_given_A, prob_B_given_notA, posterior_A_given_B)
30
+
31
+ # Guardar la figura como una imagen y devolver la tabla de resultados
32
+ return fig, f"P(B): {prob_B:.4f}", f"P(A|B): {posterior_A_given_B:.4f}"
33
+
34
+ # Crear la interfaz de Gradio
35
+ inputs = [
36
+ gr.inputs.Slider(0, 1, step=0.01, label="P(A) (Prior de A)"),
37
+ gr.inputs.Slider(0, 1, step=0.01, label="P(B|A)"),
38
+ gr.inputs.Slider(0, 1, step=0.01, label="P(B|卢A)")
39
+ ]
40
+
41
+ outputs = [
42
+ gr.outputs.Plot(label="Gr谩fico de Resultados"),
43
+ gr.outputs.Textbox(label="P(B)"),
44
+ gr.outputs.Textbox(label="P(A|B)")
45
+ ]
46
+
47
+ gr.Interface(fn=bayes_app, inputs=inputs, outputs=outputs, title="Calculadora del Teorema de Bayes", description="Calcula P(A|B) usando el Teorema de Bayes con probabilidades ingresadas.").launch()