«Десятилетие» «Студия» «Продолжительность, минуты» Перевести значение «Нет» в 0 , а значение «Да» — в 1 Упорядочить все возможные категории и сопоставить каждую из них её номеру в общем списке Завести под каждую категорию новую колонку, в которой значение 0 соответствует тому, что объект не принадлежит данной категории, а значение 1 — тому, что принадлежит Целевое кодирование Кодирование не требуется
Ответ нейросети
31 января 2026 07:36
Ниже — подробное решение задачи по кодированию категорий для полей «Десятилетие» и «Студия» с учётом вашего запроса. Я дам общий подход, примеры и шаблон к коду, чтобы вы могли применить его к своему набору данных. Целевое кодирование не применяем, как вы просили.
Что нужно сделать по шагам
- Привести все бинарные значения к 0/1
- Если в каких-то столбцах встречаются бинарные ответы в виде Да/Нет (или Yes/No на английском), переведём их в 1 и 0.
- Поддерживаем варианты: Да, Нет, Yes, No. Соответственно карта перевода: Да/Yes → 1, Нет/No → 0.
- Определить категории для кодирования
- Десятилетие: собрать все встречающиеся значения (например: 1980s, 1990s, 2000s, 2010s и т.д.).
- Студия: собрать все встречающиеся названия студий (например: StudioA, StudioB, StudioC и т.д.).
- Упорядочить и зафиксировать номер каждой категории
- Создаём «общий список» категорий из двух наборов. Можно сделать по умолчанию так:
- Сначала все значения Десятилетие в желаемом порядке (например, хронологически: 1980s, 1990s, 2000s, 2010s).
- Затем все значения Студия в алфавитном порядке (или в любом заданном вами порядке).
- Присвоить каждому элементу списка номер (1, 2, 3, …).
- Создать новые колонки-домашки (dummy columns)
- Для каждой категории из общего списка добавляем новый столбец.
- Значение в колонке = 1, если объект принадлежит данной категории, иначе 0.
- Оригинальные столбцы Десятилетие и Студия можно оставить или удалить в зависимости от предпочтений.
- Преобразование по продолжительности
- Продолжительность, минуты — числовой признак. Обычно его не кодируем как категорию; используем как есть (или нормируем, если нужно). Он не требует преобразования «Да/Нет».
- Вывод
- Не используем целевое кодирование (target encoding), как вы указали.
Пример на небольших данных (наглядно) Допустим, у нас есть таблица с такими строками:
- Row1: Десятилетие = 1990s, Студия = A, Продолжительность = 120, Субтитры = Да
- Row2: Десятилетие = 2000s, Студия = B, Продолжительность = 90, Субтитры = Нет
- Row3: Десятилетие = 1990s, Студия = C, Продолжительность = 110, Субтитры = Да
Шаг 1. Приводим бинарные значения к 0/1
- Субтитры: Да → 1, Нет → 0
Шаг 2. Определяем категории
- Десятилетие: 1990s, 2000s
- Студия: A, B, C
Шаг 3. Упорядочиваем и присваиваем номера
- Общий список категорий (пример порядка):
- Десятилетие_1990s
- Десятилетие_2000s
- Студия_A
- Студия_B
- Студия_C
Шаг 4. Новые колонки (0/1)
- Row1: Десятилетие_1990s = 1, Десятилетие_2000s = 0, Студия_A = 1? нет (A) -> 1, Студия_B = 0, Студия_C = 0, Субтитры = 1
- Row2: Десятилетие_1990s = 0, Десятилетие_2000s = 1, Студия_A = 0, Студия_B = 1, Студия_C = 0, Субтитры = 0
- Row3: Десятилетие_1990s = 1, Десятилетие_2000s = 0, Студия_A = 0, Студия_B = 0, Студия_C = 1, Субтитры = 1
Пояснение: можно оставить оригинальные столбцы Десятилетие/Студия, можно их удалить после создания dummy-колонок.
Простой шаблон кода (Python/pandas)
- Этот пример иллюстрирует процесс с использованием get_dummies, что автоматически создаёт такие же dummy-колонки.
- Пример использует русские названия столбцов; при необходимости замените на ваши.
Пример кода (без целевого кодирования)
- Входные данные предполагаются в DataFrame df с колонками: 'Десятилетие', 'Студия', 'Продолжительность, минуты', 'Субтитры' (где Субтитры может быть 'Да'/'Нет' или 'Yes'/'No').
Перевод бинарных значений в 0/1 bin_map = {'Да': 1, 'Нет': 0, 'Yes': 1, 'No': 0} df['Субтитры'] = df['Субтитры'].map(bin_map)
Одномерное кодирование категорий df = pd.get_dummies(df, columns=['Десятилетие','Студия'], drop_first=False)
Если нужно зафиксировать порядок категорий вручную
Пример: задаём порядок колонок после get_dummies
ordered_cols = [ 'Продолжительность, минуты', # числовой признак остаётся как есть 'Субтитры', 'Десятилетие_1980s', 'Десятилетие_1990s', 'Десятилетие_2000s', 'Десятилетие_2010s', 'Студия_A', 'Студия_B', 'Студия_C' ]
df = df.reindex(columns=ordered_cols)
- Итог
- В результате у вас будет набор колонок по каждому значению категории (Dummy-переменные), плюс числовой признак Продолжительность, и бинарная колонка Субтитры (в виде 0/1).
Уточнения
- Если ваш набор данных уже содержит конкретный перечень значений Десятилетие и Студия, подставьте их в примеры. Я могу подстроить список категорий и привести точный итоговый датафрейм под ваши данные.
- Если требуется, могу предоставить версию кода на Excel/SQL или другую среду, в зависимости от того, что вы используете для экзамена.
Если хотите, пришлите пример строк или скриншот набора данных, и я сделаю конкретное преобразование под ваши значения с готовым списком категорий и готовым результатом.
Понравился ответ?
Задай свой вопрос
Напиши любую задачу или вопрос, а нейросеть её решит



