Ошибка при вычислении 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 и всё починится.