Sobes.tech
Назад к вопросам
Middle — Senior
10

Как классифицировать возраст по бинам с шагом 5 лет?

Компании, где спрашивали
OZONOZON

Ответ от нейросети

sobes.tech AI

Что хотят услышать интервьюеры:

Нужно преобразовать непрерывный возраст в дискретные интервалы шириной 5 лет, чтобы использовать его как категориальный признак или метку класса. Обычно это делается через разбиение на бины с понятными границами: 0–4, 5–9, 10–14 и так далее. Важно учитывать, что границы должны быть согласованы с бизнес-задачей и не создавать неоднозначностей.

Определение:

Бининг возраста с шагом 5 лет — это способ группировать значения возраста в интервалы фиксированной ширины. Вместо точного числа, например 27 лет, объект относят к группе 25–29 лет или к бину с номером, соответствующим этому интервалу. Такой подход уменьшает детализацию, упрощает анализ и часто помогает модели работать стабильнее.

Пример использования:

Допустим, есть список возрастов: 3, 7, 12, 18, 24, 31, 46. Их можно разбить на интервалы по 5 лет: 0–4, 5–9, 10–14, 15–19, 20–24, 30–34, 45–49.

import pandas as pd

ages = pd.Series([3, 7, 12, 18, 24, 31, 46])

bins = list(range(0, 101, 5))  # 0, 5, 10, ..., 100
labels = [f"{b}-{b+4}" for b in bins[:-1]]

age_groups = pd.cut(ages, bins=bins, right=False, labels=labels, include_lowest=True)

print(age_groups)

Пояснение кода:

  1. Создаётся серия с возрастами.
  2. Задаются границы бинов с шагом 5 лет: 0, 5, 10, 15 и так далее.
  3. Формируются человекочитаемые метки для интервалов: 0-4, 5-9, 10-14 и т. д.
  4. pd.cut() распределяет каждое значение возраста в соответствующий интервал.
  5. Параметр right=False делает интервалы левозамкнутыми, то есть возраст 5 попадёт в бин 5-9, а не 0-4.
  6. include_lowest=True гарантирует, что самое маленькое значение попадёт в первый бин.

Если задача не про код, то принцип тот же: возраст переводится в диапазон по формуле или по таблице интервалов, после чего этот диапазон используется как класс.

Ключевые моменты:

  • Бины по 5 лет удобны для стандартизации возраста в ML-задачах и аналитике.
  • Границы интервалов нужно определить заранее и использовать последовательно.
  • Важно явно задать, включается ли правая граница в интервал, чтобы не было ошибок на стыках.
  • Бининг уменьшает шум, но теряет точность исходного признака.
  • Для моделей лучше хранить и исходный возраст, и бин, если это не нарушает постановку задачи.
  • Если возраст используется как целевая переменная, бининг превращает регрессионную задачу в задачу классификации.