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 .