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

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

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

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

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

Представь, что тебе передали 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, потому что они будут известны в момент прогноза. Числовой тип целевого столбца обязателен, но сам по себе не подсказывает роль: среди числовых столбцов целевым будет ровно один, и его выбирает постановщик задачи.