J'ai un jeu de données déséquilibré contenant un problème de classification binaire. plis.Comment calculer la précision, le rappel et le score f1 d'un jeu de données déséquilibré pour la validation croisée du pli K avec 10 plis en python
kfold = model_selection.KFold(n_splits=10, random_state=42)
model=RandomForestClassifier(n_estimators=50)
J'ai obtenu les résultats des 10 plis
results = model_selection.cross_val_score(model,features,labels, cv=kfold)
print results
[ 0.60666667 0.60333333 0.52333333 0.73 0.75333333 0.72 0.7
0.73 0.83666667 0.88666667]
J'ai calculé la précision en prenant moyenne et l'écart-type des résultats
print("Accuracy: %.3f%% (%.3f%%)") % (results.mean()*100.0, results.std()*100.0)
Accuracy: 70.900% (10.345%)
J'ai calculé mes prédictions comme suit
predictions = cross_val_predict(model, features,labels ,cv=10)
Puisqu'il s'agit d'un jeu de données déséquilibré, je voudrais calculer la précision, le rappel et le score f1 de chaque pli et faire la moyenne des résultats. Comment calculer les valeurs en python?
Comment calculer l'erreur d'entraînement et de test pour chaque pli? – Jayashree
cross_val_score calcule les valeurs de métriques uniquement sur les données de validation. Mais vous pouvez créer deux itérateurs personnalisés. Le premier itérateur cédera à vous des indices de position d'objets de formation et au lieu de valider des index de position donne les mêmes indices de position d'objets de train de vos caractéristiques DataFrame. Le deuxième itérateur vous donnera des indices de position d'objets identiques à ceux du premier itérateur, mais à la place des indices de position valent les indices de position de vos objets DataFrame. –
Après cross_val_score avec le premier cv personnalisé, vous obtenez des valeurs métriques sur l'ensemble de train et après cross_val_score avec un second cv personnalisé, vous obtenez des valeurs de métriques sur l'ensemble de validation. –