Если вы читаете виньетку cross_val_score :
оценка: строка, вызываемая, список / кортеж, dict или None, по умолчанию: нет [....] Если Нет, метод оценки оценщика используется.
Для LinearRegression()
это R ^ 2 прогноза. Но R ^ 2 не имеет смысла, когда n = 1. Попробуйте что-то вроде среднеквадратичной ошибки, ниже я использовал 'neg_mean_squared_error'
, который является отрицательным значением MSE, доступно из sklearn.metrics.SCORERS.keys()
import pandas as pd
from sklearn import model_selection
from sklearn.model_selection import KFold
from sklearn.metrics import mean_squared_error
from sklearn.linear_model import LinearRegression
auto = pd.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/auto-mpg/auto-mpg.data",
delimiter=r"\s+",header=None,
names=["mpg","cylinders","displacement","horsepower","weight",
"acceleration","model year","origin","car name"],
na_values=['?'])
lr = LinearRegression()
X = np.array(auto['horsepower']).reshape(-1,1)
y = np.array(auto['mpg']).reshape(-1,1)
model_selection.cross_val_score(lr,X,y,cv=len(X),scoring='neg_mean_squared_error')