-
Notifications
You must be signed in to change notification settings - Fork 0
/
Home.py
64 lines (50 loc) · 2.45 KB
/
Home.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import streamlit as st
st.set_page_config(page_title="Home", page_icon=None, layout="centered", initial_sidebar_state="auto", menu_items=None)
st.title("Prueba de concepto")
st.write("Demo de posibles modelos predictivos relacionados a la fertilidad asistida")
# import streamlit as st
# import joblib
# import numpy as np
# import pandas as pd
# from sklearn.preprocessing import MinMaxScaler, LabelEncoder
# # Load the trained logistic regression model
# log_reg_model = joblib.load('model/logistic_regression_model_8_s_fa.pkl')
# # Load the scalers and encoders
# scaler = joblib.load('model/scaler_s_fa.pkl')
# label_encoders = joblib.load('model/label_encoders_s_fa.pkl')
# # Streamlit form
# st.title("Prueba de concepto")
# st.header("Modelo predictivo")
# st.write("Probabilidad de que al menos 8 folículos lleguen a Metafase II")
# with st.form("input_form"):
# age = st.number_input("Edad paciente", min_value=15, max_value=70, value=30)
# IMC = st.number_input("Indice de masa corporal", min_value=0.0, value=0.0)
# CFA = st.number_input("Conteo folicular antral", min_value=0.0, value=0.0)
# HAM = st.number_input("HAM", min_value=0.0, value=0.0)
# prev_child = st.checkbox("Tuvo hijos anteriormente?")
# smokes = st.selectbox("Fuma?", ["si", "no", "ex fumadora"])
# submit_button = st.form_submit_button(label="Predecir")
# if submit_button:
# # Prepare the input data
# input_data = pd.DataFrame({
# '9 Edad paciente': [age],
# 'IMC': [IMC],
# '25 CFA': [CFA],
# '26 HAM': [HAM],
# 'Hijos Previos': ['si' if prev_child else 'no'],
# 'Fuma': [smokes]
# })
# # Scale numeric columns
# numeric_cols = ['9 Edad paciente', 'IMC', '25 CFA', '26 HAM']
# input_data[numeric_cols] = scaler.transform(input_data[numeric_cols])
# # Encode non-numeric columns
# for col in ['Hijos Previos', 'Fuma']:
# input_data[col] = label_encoders[col].transform(input_data[col])
# input_data = input_data[['9 Edad paciente', 'IMC', '25 CFA', '26 HAM', 'Hijos Previos', 'Fuma']]
# # Predict probabilities
# prediction = log_reg_model.predict(input_data)
# probability = log_reg_model.predict_proba(input_data)
# # Display results
# st.write(f"Predicción: {'Positiva' if prediction[0] else 'Negativa'}")
# st.write(probability)
# st.write(f"Hay un {probability[0][1] * 100:.2f}% de probabilidad de que 8 o más folículos lleguen a Metafase II.")