Alexis Galvis commited on
Commit
1e07e50
·
1 Parent(s): d790594
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=0.0, value=36000.0,
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=10000, max_value=99999, step=1, value=90210,
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.0, value=600.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 = model.predict(data_processed).ravel()
 
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
- expansion_factor_low=3, expansion_factor_high=0.7):
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)