No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Aprovecha el precio especial.

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

15 Días
1 Hrs
52 Min
37 Seg

Problemas a resolver: performance de modelo

5/8
Recursos

Aportes 3

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Lo mejor que pude optimizar el modelo fue con los siguientes parametros:

logreg_model = LogisticRegression(penalty='l1', solver='liblinear', random_state=42, C=0.01)

Me dio las siguientes métricas:

Accuracy: 0.8105
Precision: 0.7692307692307693
Recall: 0.05089058524173028
ROC AUC: 0.5235784600135223

Yo creo que la regresión logística no es el modelo más eficiente en este caso en específico.

Recomiendo hacer un OneHot Encoding y un MinMax Scaling.

# Importamos las librerías necesarias 

from sklearn.preprocessing import OneHotEncoder
from sklearn.compose import make_column_transformer
from sklearn.preprocessing import MinMaxScaler

# Copiamos el dataset original
data_df=data.copy()

# Separamos la variable de respuesta de los datos que tenemos disponibles
y = data_df.pop(data_df.columns[-1])

# Realizamos edl OneHotEncoder sobre las variables categóricas

categorical_columns = data_df.select_dtypes(object).columns

categorical_transformer = make_column_transformer(
    (OneHotEncoder(), categorical_columns),
    remainder="passthrough"
)

transformed_df = (
    pd.DataFrame(
        categorical_transformer.fit_transform(data_df),
        columns = categorical_transformer.get_feature_names_out(),
        index = data_df.index
    )
    .rename_columns(
        function = lambda x: x.removeprefix("ordinalencoder__")
    )
    .rename_columns(
        function = lambda x: x.removeprefix("onehotencoder__")
    )
    .rename_columns(
        function = lambda x: x.removeprefix("remainder__")
    )
)

# Realizamos el MinMaxScaler para normalizar los datos

scaler=MinMaxScaler()
df_scaled=scaler.fit_transform(transformed_df)
df_scaled=pd.DataFrame(df_scaled,columns=transformed_df.columns)
df_scaled.head()

Una vez resuelto aquello, implementé una red neuronal sobre el modelo original.
Usé esta arquitectura:

Y los resultados fueron los siguientes:
‘accuracy’: 0.858,
‘precision’: 0.6981818181818182,
‘recall’: 0.48854961832061067,
‘f1score’: 0.5748502994011976.

Creo que podría encontrarse una mejor arquitectura y/o enriquecer más los datos. Cualquier comentario se agradece.

Hice un poco de trampa y ocupe autosklearn para tener un clasificador base y poder seguir mejorandolo o con mas datos porque estan desbalanceados o cambiarlo por una arquitectura de red neuronal. Ahora obtuve los siguientes metricas con mi ensamble de metodos:![](https://static.platzi.com/media/user_upload/image-631df017-e3eb-4626-a60e-3218a3f4d474.jpg)