with train_test_split stratifiedkfold sklearn scikit learn kfold example cross_val_score cross accuracies python regression scikit-learn cross-validation

python - train_test_split - validación cruzada de scikit-learn, valores negativos con error cuadrático medio



train_test_split with kfold (1)

Cuando uso el siguiente código con la matriz de datos X de tamaño (952,144) y el vector de salida y de tamaño (952), la métrica mean_squared_error devuelve valores negativos, lo cual es inesperado. ¿Tiene alguna idea?

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'')

Todos los valores en las scores son entonces negativos.


Tratando de cerrar esto, así que estoy proporcionando la respuesta que David y larsmans han descrito elocuentemente en la sección de comentarios:

Sí, se supone que esto suceda. El MSE real es simplemente la versión positiva del número que está obteniendo.

La API de puntuación unificada siempre maximiza la puntuación, por lo que las puntuaciones que deben minimizarse se anulan para que la API de puntuación unificada funcione correctamente. Por lo tanto, el puntaje que se devuelve se anula cuando es un puntaje que debe minimizarse y se deja positivo si es un puntaje que debe maximizarse.

Esto también se describe en sklearn GridSearchCV con Pipeline .