-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Hola @carlos-villa-restrepo , por aquí las issues!
LO QUE HAS HECHO MUY BIEN
-
Eliminación de duplicados correcta:
df = df.drop_duplicates()- Bien aplicado. -
Verificación de nulos:
df.isnull().sum(). -
Visualización de la variable objetivo: Gráfico de distribución de quality.
-
Discretización con pd.cut: Muy bien usar
pd.cut()para crear las 3 categorías. Es una alternativa válida al lambda. -
Análisis de correlaciones muy completo: El heatmap Y las observaciones detalladas de cada variable. Excelente análisis.
-
Escalado correcto: StandardScaler aplicado correctamente a train y test, usando
fit_transformen train ytransformen test. ¡Perfecto! -
Uso de SMOTE: Intentaste balancear las clases - esto demuestra pensamiento avanzado.
-
Visualización 3D con Plotly: Muy buen extra para visualizar las clases.
-
Hiperparametrización: RandomizedSearchCV con múltiples parámetros.
-
Conclusión honesta sobre SMOTE: Reconociste que SMOTE no funcionó bien para este caso y explicaste por qué. Esto demuestra análisis crítico.
ERRORES Y PUNTOS A MEJORAR
1. NO hiciste la gráfica de accuracy vs k
El enunciado pedía específicamente:
"Crea un bucle para probar diferentes valores de k. Grafica accuracy vs k"
No hay ninguna gráfica de este tipo. Deberías haber hecho:
k_values = range(1, 21)
accuracies = []
for k in k_values:
model = KNeighborsClassifier(n_neighbors=k)
model.fit(X_train_scaled, y_train)
accuracies.append(accuracy_score(y_test, model.predict(X_test_scaled)))
plt.plot(k_values, accuracies, marker='o')
plt.xlabel('k')
plt.ylabel('Accuracy')
plt.show()2. NO usaste confusion_matrix
El enunciado pedía:
"Evalúa el rendimiento usando: accuracy_score, confusion_matrix, classification_report"
Importaste classification_report pero nunca lo usaste. Tampoco usaste confusion_matrix.
3. NO creaste la función predict_wine_quality
El enunciado pedía:
"Crea una función que reciba valores numéricos y prediga la calidad"
4. NO guardaste el modelo
No hay código con pickle para guardar el modelo final.
Buen trabajo, Carlos. Tu análisis es profundo y la experimentación con SMOTE demuestra curiosidad. La conclusión sobre por qué SMOTE no funcionó es excelente. Sin embargo, te faltaron varios requisitos del enunciado: la gráfica de k, las métricas adicionales, la función de predicción y guardar el modelo.