Aprendizaje supervisado con scikit-learn
George Boorman
Core Curriculum Manager, DataCamp
Medir el rendimiento del modelo con precisión:
Fracción de muestras clasificadas correctamente
No siempre es una métrica útil
En una clasificación para predecir transacciones bancarias fraudulentas
Se podría construir un clasificador que predijera que NINGUNA de las transacciones son fraudulentas
Y obtendría un ¡99% de precisión!
Pero sería desastroso en cuanto a predecir las transacciones que sí son fraudulentas
Fracasa en su propósito original
Desequilibrio de clases: frecuencia desigual de las clases
Es necesaria otra forma de evaluar el rendimiento
from sklearn.metrics import classification_report, confusion_matrix
knn = KNeighborsClassifier(n_neighbors=7)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4, random_state=42)
knn.fit(X_train, y_train)
y_pred = knn.predict(X_test)
print(confusion_matrix(y_test, y_pred))
[[1106 11]
[ 183 34]]
print(classification_report(y_test, y_pred))
precision recall f1-score support
0 0.86 0.99 0.92 1117
1 0.76 0.16 0.26 217
accuracy 0.85 1334
macro avg 0.81 0.57 0.59 1334
weighted avg 0.84 0.85 0.81 1334
Aprendizaje supervisado con scikit-learn