web-dev-qa-db-fra.com

validation croisée scikit-learn, valeurs négatives avec erreur quadratique moyenne

Lorsque j'utilise le code suivant avec matrice de données X de taille (952 144) et vecteur de sortie y de taille (952), mean_squared_error métrique renvoie des valeurs négatives, ce qui est inattendu. Avez-vous une idée?

from sklearn.svm import SVR
from sklearn import cross_validation as CV

reg = SVR(C=1., epsilon=0.1, kernel='rbf')
scores = CV.cross_val_score(reg, X, y, cv=10, scoring='mean_squared_error')

toutes les valeurs dans scores sont alors négatives.

36
ahmethungari

En essayant de terminer cela, je fournis donc la réponse que David et Larsmans ont décrite avec éloquence dans la section des commentaires:

Oui, cela est censé se produire. Le MSE réel est simplement la version positive du nombre que vous obtenez.

L'API de notation unifiée maximise toujours le score, de sorte que les scores qui doivent être minimisés sont annulés pour que l'API de notation unifiée fonctionne correctement. Le score renvoyé est donc annulé lorsqu'il s'agit d'un score à minimiser et laissé positif s'il s'agit d'un score à maximiser.

Ceci est également décrit dans sklearn GridSearchCV with Pipeline .

46
AN6U5