Первая модель: от таблицы до предсказания

Первый fit и predict на своих данных

Содержание курса

predict для новых строк: схема признаков и результат

Модель обучена на X с колонками ['температура', 'влажность']. Чтобы получить прогноз для новых дней, нужно собрать DataFrame точно с теми же столбцами в том же порядке — без столбца прокатов.

X_new = pd.DataFrame({
    'температура': [20, 27],
    'влажность':   [65, 50]
})

predictions = model.predict(X_new)
print(predictions)

Вывод:

[227.40235474 313.54886937]

predict возвращает NumPy-массив длиной 2 — по одному числу на каждую строку X_new. Первый элемент, 227.4, — прогноз для дня с температурой 20 и влажностью 65; второй, 313.5, — для температуры 27 и влажности 50. Именно такой вывод должен появиться у вас при запуске кода на тех же четырёх обучающих точках.

Теперь о том, что ломает предсказание. Схема X_new должна в точности совпадать со схемой X при fit. Два типичных нарушения:

Лишний столбец — например, если случайно добавить прокатов в X_new. Актуальный scikit-learn увидит несоответствие числа признаков и бросит ValueError.

Перестановка столбцов — если X_new содержит ['влажность', 'температура'] вместо ['температура', 'влажность']. При передаче именованного DataFrame sklearn использует имена столбцов и в последних версиях выдаст предупреждение или ошибку. При передаче безымянного NumPy-массива sklearn может выдать предупреждение о том, что у входа нет имён признаков — но это предупреждение касается только отсутствия имён, а не порядка значений. Если число столбцов совпадает, перепутанный порядок пройдёт без дополнительного сигнала: модель подставит значение влажности туда, где ожидает температуру, и вернёт неверный прогноз.

Диагностика простая:

print(list(X.columns))      # ['температура', 'влажность']
print(list(X_new.columns))  # должно быть то же самое

Если списки совпадают — схема верна, и predict вернёт корректный результат.