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

Признаки, цель и строки данных

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

Что такое признаки X и целевая переменная y

Признаки X — то, что известно об объекте в момент прогноза. Цель y — величина или класс, которые модель должна предсказать. В задаче цены квартиры площадь, комнаты и этаж могут быть признаками, а цена — целью.

Цель выбирает постановка задачи, а не положение столбца в таблице. Для регрессии цены y числовая; в другой задаче классификации целью может быть метка категории. Поле с ответом не должно одновременно оставаться среди признаков.

Ниже соберём таблицу квартир с нуля, отделим цену от признаков и проверим, что строки X и y по-прежнему относятся к одним объектам.

Прежде чем модель увидит хоть одно число, нужно понять, с чем вообще работаешь: сколько наблюдений, какие столбцы и где среди них спрятан ответ, который предстоит предсказывать.

Структура таблицы: строки, столбцы и типы перед разделением

Представь, что тебе передали DataFrame df с неизвестным содержимым. Первый вопрос — сколько строк и столбцов, а второй — что в каждом столбце лежит.

import pandas as pd

data = {
    'площадь': [38, 55, 70, 90, 45],
    'комнаты': [1, 2, 3, 4, 2],
    'этаж':    [3, 7, 1, 12, 5],
    'цена':    [4200, 6100, 7800, 11500, 5300],
}
df = pd.DataFrame(data)

print(df.shape)          # (5, 4)
print(list(df.columns))  # ['площадь', 'комнаты', 'этаж', 'цена']
print(df.dtypes)

Вывод df.dtypes выглядит так:

площадь    int64
комнаты    int64
этаж       int64
цена       int64
dtype: object

df.shape возвращает кортеж (строки, столбцы). Первое число — это количество наблюдений: здесь 5 квартир. Каждая строка — ровно один объект; именно это число потом должно совпасть у X и y после разделения.

list(df.columns) показывает имена всех столбцов в том порядке, в котором они стоят. Это важно: если имя столбца написано с опечаткой или в другом регистре, попытка обратиться к нему упадёт с KeyError.

df.dtypes раскрывает тип каждого столбца. Здесь всё int64 — числа. Если целевой столбец показывает тип object, это повод заглянуть в его значения: pandas присваивает object при смешанном содержимом или нечисловых элементах. Например, если в столбце с ценой встретилось 'н/д' или пустая строка, dtype станет object, и такой столбец потребует очистки или преобразования перед подачей в модель регрессии.

По этому выводу видно, что столбцы бывают двух ролей: одни описывают свойства объекта, другой — то, что нужно предсказать. Какой именно столбец станет целевым, определяет условие задачи, а не структура данных: если стоит задача прогнозировать цену квартиры по её характеристикам, то цена — это y, а площадь, комнаты и этаж — кандидаты в X, потому что они будут известны в момент прогноза. Числовой тип целевого столбца обязателен, но сам по себе не подсказывает роль: среди числовых столбцов целевым будет ровно один, и его выбирает постановщик задачи.

Начать заново?

Помощник начнёт новый диалог по этой задаче. Текущая переписка останется в истории до конца срока хранения.

О переписке

Можно приложить до трёх фото PNG, JPEG или WebP по 5 МБ.

Переписка и фото хранятся 90 дней после последнего принятого сообщения. Преподаватель получит доступ к диалогу, когда вы попросите его помочь.

Проверка решения остаётся отдельным действием.