#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. вы знаете, что я мог бы сделать?