Spaces:
Build error
Build error
Alexis Galvis
commited on
Commit
·
1e07e50
1
Parent(s):
d790594
fix
Browse files- app.py +7 -5
- requirements.txt +0 -0
- utils/calculate_probability_prediction.py +2 -3
app.py
CHANGED
|
@@ -30,7 +30,7 @@ st.sidebar.header("Ingrese los valores del préstamo")
|
|
| 30 |
|
| 31 |
# Nuevas variables de entrada con descripciones
|
| 32 |
annual_inc = st.sidebar.number_input(
|
| 33 |
-
"Ingreso Anual (USD)", min_value=
|
| 34 |
help="(float) Ingreso anual en dólares antes de impuestos."
|
| 35 |
)
|
| 36 |
emp_length = st.sidebar.selectbox(
|
|
@@ -46,7 +46,7 @@ purpose = st.sidebar.selectbox(
|
|
| 46 |
help="(categoría) Razón principal del préstamo."
|
| 47 |
)
|
| 48 |
zip_code = st.sidebar.number_input(
|
| 49 |
-
"Código Postal", min_value=
|
| 50 |
help="(int) Código postal de residencia del solicitante."
|
| 51 |
)
|
| 52 |
open_acc = st.sidebar.number_input(
|
|
@@ -54,7 +54,7 @@ open_acc = st.sidebar.number_input(
|
|
| 54 |
help="(int) Número total de cuentas de crédito abiertas."
|
| 55 |
)
|
| 56 |
total_monthly_debt = st.sidebar.number_input(
|
| 57 |
-
"Pagos Mensuales de Deuda (USD)", min_value=0
|
| 58 |
help="(float) Total de pagos mensuales de deuda (préstamos, tarjetas, hipotecas)."
|
| 59 |
)
|
| 60 |
|
|
@@ -77,10 +77,12 @@ if st.sidebar.button("Predecir"):
|
|
| 77 |
|
| 78 |
# Preprocesar y predecir
|
| 79 |
data_processed = preprocessor.transform(df)
|
| 80 |
-
predictions
|
|
|
|
| 81 |
y_scores = joblib.load(os.path.join('data', 'output', 'loan_scores.pkl'))
|
| 82 |
credit_score = probability_to_score_v3(predictions[0])
|
| 83 |
-
|
|
|
|
| 84 |
# Mostrar resultado
|
| 85 |
color = credit_score_range_classification(credit_score)
|
| 86 |
st.markdown(
|
|
|
|
| 30 |
|
| 31 |
# Nuevas variables de entrada con descripciones
|
| 32 |
annual_inc = st.sidebar.number_input(
|
| 33 |
+
"Ingreso Anual (USD)", min_value=6000, value=75000,
|
| 34 |
help="(float) Ingreso anual en dólares antes de impuestos."
|
| 35 |
)
|
| 36 |
emp_length = st.sidebar.selectbox(
|
|
|
|
| 46 |
help="(categoría) Razón principal del préstamo."
|
| 47 |
)
|
| 48 |
zip_code = st.sidebar.number_input(
|
| 49 |
+
"Código Postal", min_value=0, max_value=1000, step=1, value=0,
|
| 50 |
help="(int) Código postal de residencia del solicitante."
|
| 51 |
)
|
| 52 |
open_acc = st.sidebar.number_input(
|
|
|
|
| 54 |
help="(int) Número total de cuentas de crédito abiertas."
|
| 55 |
)
|
| 56 |
total_monthly_debt = st.sidebar.number_input(
|
| 57 |
+
"Pagos Mensuales de Deuda (USD)", min_value=0, value=600,
|
| 58 |
help="(float) Total de pagos mensuales de deuda (préstamos, tarjetas, hipotecas)."
|
| 59 |
)
|
| 60 |
|
|
|
|
| 77 |
|
| 78 |
# Preprocesar y predecir
|
| 79 |
data_processed = preprocessor.transform(df)
|
| 80 |
+
predictions= model.predict(data_processed)
|
| 81 |
+
print(f"Predicción: {predictions}")
|
| 82 |
y_scores = joblib.load(os.path.join('data', 'output', 'loan_scores.pkl'))
|
| 83 |
credit_score = probability_to_score_v3(predictions[0])
|
| 84 |
+
print(f"Puntaje de Crédito: {credit_score}")
|
| 85 |
+
|
| 86 |
# Mostrar resultado
|
| 87 |
color = credit_score_range_classification(credit_score)
|
| 88 |
st.markdown(
|
requirements.txt
CHANGED
|
Binary files a/requirements.txt and b/requirements.txt differ
|
|
|
utils/calculate_probability_prediction.py
CHANGED
|
@@ -1,8 +1,7 @@
|
|
| 1 |
import numpy as np
|
| 2 |
|
| 3 |
-
|
| 4 |
def probability_to_score_v3(prob, base_score=300, max_score=850, threshold=0.326,
|
| 5 |
-
|
| 6 |
"""
|
| 7 |
Convierte probabilidades en puntajes de crédito con expansión no lineal
|
| 8 |
para distribuir mejor en los extremos.
|
|
@@ -45,4 +44,4 @@ def probability_to_score_v3(prob, base_score=300, max_score=850, threshold=0.326
|
|
| 45 |
# Asegurar que el score esté dentro del rango permitido
|
| 46 |
score = np.clip(score, base_score, max_score)
|
| 47 |
|
| 48 |
-
return score
|
|
|
|
| 1 |
import numpy as np
|
| 2 |
|
|
|
|
| 3 |
def probability_to_score_v3(prob, base_score=300, max_score=850, threshold=0.326,
|
| 4 |
+
expansion_factor_low=3, expansion_factor_high=0.7):
|
| 5 |
"""
|
| 6 |
Convierte probabilidades en puntajes de crédito con expansión no lineal
|
| 7 |
para distribuir mejor en los extremos.
|
|
|
|
| 44 |
# Asegurar que el score esté dentro del rango permitido
|
| 45 |
score = np.clip(score, base_score, max_score)
|
| 46 |
|
| 47 |
+
return float(score)
|