Обнаружены входные переменные с несогласованным количеством выборок: [354, 152] при печати оценок R2

#python #numpy #scikit-learn

#python #numpy #scikit-learn

Вопрос:

Я пытаюсь обучить модель, а затем распечатать ее оценку R ^ 2 для обучающих и тестовых наборов, но когда я хочу распечатать оценку R2, я получаю сообщение об ошибке: найдены входные переменные с несогласованным количеством выборок: [354, 152] . Мой код следующий:

 X = np.transpose(np.matrix(dataset.RM))
y = np.transpose(np.matrix(dataset.MEDV))
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.3, random_state=21) 
linear_reg = LinearRegression(normalize=True, n_jobs=-1)

model = linear_reg.fit(X_train,y_train)
print(r2_score(X_train, X_test))
print(r2_score(y_train, y_test))

  

Я также попытался напечатать размеры обучающих и тестовых наборов, и я получаю для них эти выходные данные:

 print(X_train.shape)  -> (354, 1)
print(X_test.shape)   -> (152, 1)
print(y_train.shape)  -> (354, 1)
print(y_test.shape)   -> (152, 1)
  

Что я делаю не так и как я могу распечатать свои результаты R2?

Ответ №1:

Это должно быть

 model = linear_reg.fit(X_train,y_train)
print(r2_score(y_train, model.transform(X_train)))
print(r2_score(y_test, model.transform(X_test)))
  

для печати r^2 оценки train и test данных.

Если у вас model есть объект sklearn, которого нет transform , вы можете использовать predict

Комментарии:

1. Это говорит мне об этом, когда я использую предоставленный вами код: LinearRegression’ объект не имеет атрибута ‘transform’

2. вы знаете, что я мог бы сделать?