Spaces:
Runtime error
Runtime error
marcossalinas
commited on
Commit
路
a3da7d0
1
Parent(s):
f51e1f8
Primer commit
Browse files- appMamamIA.py +141 -0
- lr_final.pkl +0 -0
appMamamIA.py
ADDED
|
@@ -0,0 +1,141 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from numpy import dtype
|
| 2 |
+
import streamlit as st
|
| 3 |
+
import pandas as pd
|
| 4 |
+
from sklearn.preprocessing import StandardScaler
|
| 5 |
+
import numpy as np
|
| 6 |
+
import joblib as jl
|
| 7 |
+
|
| 8 |
+
|
| 9 |
+
# VALORES POR DEFECTO QUE INDICAN CELULAS NO CANCEROSAS
|
| 10 |
+
# radius_mean 14.12
|
| 11 |
+
# texture_mean 19.28
|
| 12 |
+
# perimeter_mean 91.96
|
| 13 |
+
# area_mean 551,17
|
| 14 |
+
# compactness_mean 0.0092
|
| 15 |
+
# concavity_mean 0.061
|
| 16 |
+
# concave_points_mean 0.033
|
| 17 |
+
# area_se 24.5
|
| 18 |
+
# radius_worst 14.97
|
| 19 |
+
# texture_worst 25.41
|
| 20 |
+
# perimeter_worst 97.6
|
| 21 |
+
# area_worst 686.5
|
| 22 |
+
# smoothness_worst 0.1313
|
| 23 |
+
# compactness_worst 0.20
|
| 24 |
+
# concavity_worst 0.22
|
| 25 |
+
# concave points_worst 0.09
|
| 26 |
+
|
| 27 |
+
|
| 28 |
+
col=['radius_mean', 'texture_mean', 'perimeter_mean',
|
| 29 |
+
'area_mean', 'compactness_mean', 'concavity_mean',
|
| 30 |
+
'concave points_mean', 'area_se', 'radius_worst', 'texture_worst',
|
| 31 |
+
'perimeter_worst', 'area_worst', 'smoothness_worst',
|
| 32 |
+
'compactness_worst', 'concavity_worst', 'concave points_worst']
|
| 33 |
+
|
| 34 |
+
|
| 35 |
+
modnames=['mlp_final.pkl','svm_final.pkl','lr_final.pkl']
|
| 36 |
+
|
| 37 |
+
#@st.cache
|
| 38 |
+
def getScaler():
|
| 39 |
+
# Cargo el dataset para poder normalizar los valores recogidos en el formulario
|
| 40 |
+
print ("cargando dataset")
|
| 41 |
+
data=pd.read_csv('https://raw.githubusercontent.com/gitmecalvon/mamamIA/main/resources/data/cleaned/train_web.csv',sep=';')
|
| 42 |
+
print("dataset cargado")
|
| 43 |
+
scaler = StandardScaler()
|
| 44 |
+
scaler.fit(data)
|
| 45 |
+
return scaler
|
| 46 |
+
|
| 47 |
+
|
| 48 |
+
# cargandolos para poder usarlos desde un sidebar si da tiempo
|
| 49 |
+
def cargaModelos (indice):
|
| 50 |
+
print('Preparando el guardado de Modelos ' )
|
| 51 |
+
modelo=jl.load(modnames[indice])
|
| 52 |
+
return modelo
|
| 53 |
+
|
| 54 |
+
def interpreta (prediccion):
|
| 55 |
+
respuesta ="Los datos introducidos pronostican que son c茅lulas de tipo "
|
| 56 |
+
if prediccion ==1:
|
| 57 |
+
respuesta= respuesta + "Maligno"
|
| 58 |
+
else:
|
| 59 |
+
respuesta= respuesta + "BENIGNO"
|
| 60 |
+
return respuesta
|
| 61 |
+
|
| 62 |
+
|
| 63 |
+
def contruyeFormulario():
|
| 64 |
+
|
| 65 |
+
# st.set_page_config(layout="wide")
|
| 66 |
+
|
| 67 |
+
st.title("Mama mIA")
|
| 68 |
+
st.markdown('<style>body{background-color: Black;}</style>',unsafe_allow_html=True)
|
| 69 |
+
html_temp = """ <div style ="background-color:Pink;padding:13px">
|
| 70 |
+
<h1 style ="color:black;text-align:center;">Algoritmo de ayuda a la predicci贸n diagn贸stica del C谩ncer de mama</h1>
|
| 71 |
+
</div>"""
|
| 72 |
+
st.markdown(html_temp, unsafe_allow_html = True)
|
| 73 |
+
|
| 74 |
+
st.subheader("Por favor introduzca las medidas de la muestra")
|
| 75 |
+
form = st.form(key="formulario")
|
| 76 |
+
# col1, col2 = form.columns(2) # intento de dos columnas sin recurrir a html
|
| 77 |
+
# with col1:
|
| 78 |
+
radius_mean = form.number_input( label="Radio Promedio", min_value=0.00000, max_value=20.0,value=13.54, step=0.0001,format="%4f")
|
| 79 |
+
texture_mean = form.number_input(label="Textura Promedio", min_value=0.00000, max_value=36.0,value=14.36, step=0.0001,format="%4f")
|
| 80 |
+
perimeter_mean = form.number_input(label="Per铆mertro Promedio", min_value=0.00000, max_value=150.0,value=87.46, step=0.0001,format="%4f")
|
| 81 |
+
area_mean = form.number_input(label="脕rea Promedio", min_value=0.00000, max_value=1600.0,value=566.3, step=0.0001,format="%4f")
|
| 82 |
+
compactness_mean = form.number_input(label="Promedio de Compactabilidad", min_value=0.00000, max_value=1.0,value=0.08129, step=0.0001,format="%5f")
|
| 83 |
+
concavity_mean = form.number_input(label="Promedio de Concavidad", min_value=0.00000, max_value=1.0,value=0.06664, step=0.0001,format="%5f")
|
| 84 |
+
concave_points_mean = form.number_input(label="Puntos C贸ncavos promedio", min_value=0.00000, max_value=1.0,value=0.04781, step=0.0001,format="%4f")
|
| 85 |
+
area_se = form.number_input(label="Area Error Estandar", min_value=0.00000, max_value=150.0,value=23.56, step=0.0001,format="%4f")
|
| 86 |
+
# with col2:
|
| 87 |
+
radius_worst = form.number_input(label="Radio worst ", min_value=0.00000, max_value=30.0,value=15.11, step=0.0001,format="%4f")
|
| 88 |
+
texture_worst= form.number_input(label="Textura worsk", min_value=0.00000, max_value=70.0,value=19.26, step=0.0001,format="%4f")
|
| 89 |
+
perimeter_worst = form.number_input(label="Perimetro worst", min_value=0.00000, max_value=99.70,value=0.0092, step=0.0001,format="%4f")
|
| 90 |
+
area_worst = form.number_input(label="Area ", min_value=0.00000, max_value=800.0,value=711.2, step=0.0001,format="%4f")
|
| 91 |
+
smoothness_worst = form.number_input(label="Suavidad worst", min_value=0.00000, max_value=1.0,value=0.144, step=0.0001,format="%4f")
|
| 92 |
+
compactness_worst = form.number_input(label="Compactabilidad worst", min_value=0.00000, max_value=2.0,value=0.1773, step=0.0001,format="%4f")
|
| 93 |
+
concavity_worst = form.number_input(label="Concavidad worst", min_value=0.00000, max_value=2.0,value=0.2390, step=0.0001,format="%4f")
|
| 94 |
+
concavepoints_worst = form.number_input(label="Puntos c贸ncavos worst", min_value=0.00000, max_value=2.0,value=0.1288, step=0.0001,format="%4f")
|
| 95 |
+
|
| 96 |
+
submit = form.form_submit_button(label="Predicci贸n")
|
| 97 |
+
|
| 98 |
+
if submit:
|
| 99 |
+
# Escalamos los datos del formulario
|
| 100 |
+
scaler=getScaler()
|
| 101 |
+
nbnormaliz=scaler.transform ([[radius_mean, texture_mean, perimeter_mean ,area_mean , compactness_mean , concavity_mean ,
|
| 102 |
+
concave_points_mean , area_se , radius_worst , texture_worst ,perimeter_worst , area_worst , smoothness_worst ,
|
| 103 |
+
compactness_worst , concavity_worst , concavepoints_worst ]])
|
| 104 |
+
|
| 105 |
+
# Recuperamos el modelo
|
| 106 |
+
print ("cargando modelo")
|
| 107 |
+
print (modnames[2])
|
| 108 |
+
algoritmo=cargaModelos(2)
|
| 109 |
+
|
| 110 |
+
# Realizamos la prediccion
|
| 111 |
+
|
| 112 |
+
print ("Preparando la prediccion...")
|
| 113 |
+
prediccion=algoritmo.predict (nbnormaliz)
|
| 114 |
+
print (prediccion)
|
| 115 |
+
st.write ("")
|
| 116 |
+
st.write (interpreta (prediccion))
|
| 117 |
+
|
| 118 |
+
|
| 119 |
+
def main():
|
| 120 |
+
|
| 121 |
+
contruyeFormulario()
|
| 122 |
+
|
| 123 |
+
if __name__ == '__main__':
|
| 124 |
+
main()
|
| 125 |
+
|
| 126 |
+
|
| 127 |
+
|
| 128 |
+
|
| 129 |
+
|
| 130 |
+
|
| 131 |
+
|
| 132 |
+
|
| 133 |
+
|
| 134 |
+
|
| 135 |
+
|
| 136 |
+
|
| 137 |
+
|
| 138 |
+
|
| 139 |
+
|
| 140 |
+
|
| 141 |
+
|
lr_final.pkl
ADDED
|
Binary file (1.53 kB). View file
|
|
|