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