Ошибка при вычислении mean_absolute_error

При вычислении MAE вылезла ошибка:

Found input variables with inconsistent numbers of samples: [276, 355]

Хотя за 5 минут до этого всё хорошо считалось, не понимаю что пошло не так:

X = student_data.iloc[:, :-1].values
y= student_data['Grade'].values
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.1, random_state=100)

df_clf = tree.DecisionTreeClassifier(max_leaf_nodes=25, random_state=0)
df_clf.fit(X_train, y_train)

pred_trainy = df_clf.predict(X_train)
pred_testy = df_clf.predict(X_test)
print('mean_absolute_error train: %.2f, test: %.2f' %
      (mean_absolute_error(train_y, pred_trainy),
       mean_absolute_error(test_y, pred_testy)))

Ответы (2 шт):

Автор решения: MaxU

Обычно данная ошибка возникает в том случае когда не совпадают размерности векторов переданных в mean_absolute_error().

Воспроизведение ошибки:

In [339]: mean_absolute_error(np.random.rand(10), np.random.rand(11))
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
...
ValueError: Found input variables with inconsistent numbers of samples: [10, 11]

Проверьте размерности векторов и убедитесь, что они имеют одинаковую длину.

→ Ссылка
Автор решения: CrazyElf
X_train, X_test, y_train, y_test = train_test_split(...
                 ^^^^^^^  ^^^^^^
...
      (mean_absolute_error(train_y, pred_trainy),
                           ^^^^^^^
       mean_absolute_error(test_y, pred_testy)))
                           ^^^^^^

Посмотрите внимательно на названия переменных, которые я подчеркнул. Видимо, одни из них (по которым вы считаете MAE) остались у вас от других экспериментов и имеют другие размеры. Замените в подсчёте MAE переменные на y_train и y_test и всё починится.

→ Ссылка