Ослабление и усиление шкал признаков

Материал из MachineLearning.

Перейти к: навигация, поиск

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

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

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

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

Содержание

Измерительная шкала признака

Пусть X — множество объектов, а


f:X\to D

— признак, принимающий значения из множества D.

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

Например, значения номинального признака «город проживания» можно сравнивать только на равенство:


f(x_i)=f(x_j).

Присвоение городам чисел не делает содержательными утверждения вида «город 6 в два раза больше города 3».

Для числового признака «масса» имеют смысл сравнение, разность и отношение:


m_1>m_2,\qquad m_1-m_2,\qquad \frac{m_1}{m_2}.

Тип шкалы определяет, какие преобразования значений не изменяют смысл измерения.

Основные типы шкал

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

Тип шкалы Примеры Содержательные отношения и операции Допустимые преобразования
Логическая наличие свойства, да или нет логические операции перестановка обозначений
Номинальная страна, цвет, тип устройства равенство, неравенство, принадлежность категории произвольное взаимно-однозначное переименование
Порядковая уровень образования, степень тяжести, оценка согласия равенство и порядок строго монотонное преобразование
Интервальная температура по Цельсию, календарное время порядок, разности z'=az+b, где a>0
Отношений масса, длина, длительность, абсолютная температура порядок, разности и отношения z'=az, где a>0
Абсолютная число объектов, число событий все обычные арифметические операции тождественное преобразование

Для интервальной шкалы положение нуля условно. Температуры 20 и 10 градусов Цельсия нельзя содержательно интерпретировать как отношение «в два раза теплее».

В шкале отношений ноль имеет содержательный смысл. Масса 20 килограммов действительно в два раза больше массы 10 килограммов.

Допустимые преобразования и инвариантность

Пусть значения признака преобразуются функцией


f'(x)=\psi(f(x)).

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

Для номинальной шкалы допустима любая биекция. Например, категории «красный», «зелёный» и «синий» можно заменить кодами 7, 2 и 15. Эти коды не задают порядок или расстояние между цветами.

Для порядковой шкалы допустимо любое строго возрастающее преобразование:


f(x_i)<f(x_j)
\quad\Longrightarrow\quad
\psi(f(x_i))<\psi(f(x_j)).

Например, ранги 1, 2 и 3 можно заменить значениями 10, 20 и 100, если сохраняется порядок. Однако разности между числами не должны интерпретироваться как реальные интервалы.

Алгоритм или статистика называются инвариантными относительно преобразования шкалы, если их результат не изменяется при любом допустимом преобразовании.

Например, коэффициент ранговой корреляции зависит от порядка значений и инвариантен относительно строго монотонных преобразований. Обычная линейная регрессия такой инвариантностью не обладает.

Зачем преобразовывать шкалы

Алгоритмы машинного обучения предъявляют различные требования к признакам.

Линейная модель обычно принимает числовой вектор


x=(f_1(x),\ldots,f_n(x))\in{\mathbb R}^n.

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

Например, можно присвоить значения:

  • автобус — 1;
  • поезд — 2;
  • самолёт — 3.

Линейная модель будет обрабатывать их как количественные значения. В частности, она неявно использует равенство


3-2=2-1.

Из исходной номинальной шкалы такое отношение не следует. При другом переименовании категорий модель может дать другой результат, хотя содержательно данные не изменились.

Преобразование признаков требуется, чтобы:

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

Ослабление шкалы

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

Типичные примеры:

  • числовой признак заменяется порядковым;
  • порядковый признак заменяется бинарным;
  • числовые значения объединяются в интервалы;
  • точное время заменяется частью суток;
  • возраст заменяется возрастной группой.

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

Пусть


f'(x)=\psi(f(x)).

Если существуют значения u\ne v, для которых


\psi(u)=\psi(v),

то преобразование объединяет различимые исходные значения.

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

Бинаризация номинального признака

Для номинального признака f(x) с множеством значений


D=\{v_1,\ldots,v_K\}

можно построить бинарные признаки


f_k(x)=[f(x)=v_k],
\qquad k=1,\ldots,K,

где квадратные скобки обозначают индикатор условия. Значение [P] равно 1, если утверждение P истинно, и 0 в противном случае.

Такое представление называется one-hot-кодированием, кодированием «один из K» или системой индикаторных признаков.

Например, признак с категориями «Москва», «Казань» и «Иннополис» заменяется следующим вектором:

Категория Москва Казань Иннополис
Москва 1 0 0
Казань 0 1 0
Иннополис 0 0 1

Каждая координата имеет логическую шкалу. При этом полный one-hot-вектор взаимно-однозначно определяет исходную категорию, поэтому её идентичность не теряется.

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

Исключение одной категории

В линейной модели со свободным членом все K индикаторов линейно зависимы:


\sum_{k=1}^{K}f_k(x)=1.

Поэтому один индикатор иногда исключают. Оставшаяся категория становится базовой.

Например, при удалении столбца «Москва» нулевой вектор означает именно Москву. Такое кодирование сохраняет информацию при условии, что пропущенные и неизвестные категории обрабатываются отдельно.

Высокая кардинальность

Если признак имеет очень много значений, one-hot-кодирование создаёт пространство большой размерности.

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

  • идентификатор товара;
  • почтовый индекс;
  • доменное имя;
  • автор документа;
  • модель устройства;
  • номер организации.

Для K категорий создаётся до K новых признаков. Большинство значений в матрице будут равны нулю, поэтому обычно применяется разреженное хранение.

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

Индикатор подмножества категорий

Вместо индикатора одной категории можно построить признак


f_A(x)=[f(x)\in A],

где A\subseteq D — некоторое подмножество категорий.

Например, страны можно объединить по региону, товары — по группе, а профессии — по отрасли.

Такое преобразование уменьшает число признаков и может использовать предметные знания. Однако после объединения различия между категориями внутри группы теряются.

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

Бинаризация числового признака

Числовой признак можно заменить индикатором принадлежности интервалу:


f_{a,b}(x)=[a\leq f(x)\leq b].

Частный случай — сравнение с порогом:


f_a(x)=[f(x)\geq a].

Например, если f(x) обозначает возраст, то признак


f_{18}(x)=[f(x)\geq18]

показывает, достиг ли человек возраста 18 лет.

После преобразования точный возраст не сохраняется. Остаётся только информация о прохождении порога.

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

Произвольное использование порогов способно создавать несуществующие разрывы. Объекты со значениями 17,99 и 18,01 оказываются по разные стороны бинарного признака, хотя исходные значения почти совпадают.

Дискретизация числового признака

Дискретизация, квантование или binning заменяет числовое значение номером интервала.

Пусть заданы границы


a_1<a_2<\ldots<a_K.

Номер интервала можно определить формулой


q(x)=
\sum_{k=1}^{K}
[f(x)\geq a_k].

После преобразования числовая шкала заменяется порядковой:


q(x)\in\{0,\ldots,K\}.

Равномерная сетка

Интервал между минимальным и максимальным значением делится на части одинаковой ширины.

Для K интервалов границы имеют вид


a_k=f_{\min}+
\frac{k}{K}(f_{\max}-f_{\min}).

Метод прост, но чувствителен к выбросам и неравномерности распределения. При сильно скошенном распределении большая часть объектов может попасть в один интервал.

Квантильная сетка

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

Если F — эмпирическая функция распределения признака, то


a_k\approx F^{-1}\left(\frac{k}{K}\right).

Квантильная сетка лучше использует интервалы при неравномерном распределении. Однако их числовая ширина может сильно различаться.

Дискретизация по целевой переменной

Границы можно выбирать так, чтобы значения целевой переменной внутри интервала были похожи, а между интервалами различались.

Такое преобразование относится к обучению с учителем. Оно может быть эффективным, но требует строгого разделения выборок. Если границы подбираются по всем данным до кросс-валидации, оценка качества становится завышенной.

Последствия дискретизации

Дискретизация может:

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

Одновременно она:

  • удаляет различия внутри интервалов;
  • создаёт искусственные разрывы на границах;
  • зависит от числа и положения границ;
  • может плохо переноситься на другое распределение данных.

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

Усиление шкалы

При усилении шкалы исходному признаку приписывается дополнительная структура.

Например, категории номинального признака можно заменить числами:

f(x)=v \quad{} \to{} \quad{} f'(x)=s(v),

где s(v) вычисляется по обучающей выборке.

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

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

Частотное кодирование

Пусть категория v встречается в обучающей выборке n_v раз:


n_v=
\sum_{i=1}^{\ell}[f(x_i)=v].

Частотное кодирование задаётся формулой


s(v)=\frac{n_v}{\ell}.

Каждая категория заменяется долей объектов, принадлежащих этой категории.

Преимущества:

  • создаётся один числовой признак вместо большого числа индикаторов;
  • метод не использует целевую переменную;
  • редкость категории может быть информативна;
  • удобно обрабатывать признаки высокой кардинальности.

Ограничения:

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

Частотный код описывает распределение категорий в конкретной выборке, а не внутреннее свойство самой категории.

Кодирование порядкового признака рангом

Порядковый или числовой признак можно заменить его эмпирическим рангом:


r(x)=
\frac{1}{\ell}
\sum_{i=1}^{\ell}
[f(x_i)\leq f(x)].

Значение r(x) приближает эмпирическую функцию распределения и находится в диапазоне от 0 до 1.

Преобразование сохраняет порядок, но изменяет интервалы между значениями.

Например, если большинство объектов сосредоточено в узком диапазоне, ранговое преобразование растягивает этот диапазон и сжимает разреженные области.

Преимущества:

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

Недостатки:

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

Целевое кодирование категорий

В задачах обучения с учителем категорию можно заменить статистикой целевой переменной.

Для числового ответа простейшая целевая кодировка имеет вид


\overline y_v=
\frac{
\sum_{i=1}^{\ell}
y_i[f(x_i)=v]
}{
\sum_{i=1}^{\ell}
[f(x_i)=v]
}.

В задаче бинарной классификации, где y_i\in\{0,1\}, величина \overline y_v является оценкой доли положительного класса для категории v.

Например, категория «регион» заменяется средней частотой целевого события в этом регионе.

Целевое кодирование создаёт компактный числовой признак и может хорошо работать с высокой кардинальностью. Однако оно особенно подвержено переобучению.

Переобучение при целевом кодировании

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


\overline y_v=y_i.

Код признака фактически раскрывает правильный ответ объекта. Модель может запомнить редкие категории и показать нереалистично высокое качество на обучающих данных.

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

Наивная процедура

  1. вычислить средний ответ по каждой категории на всей выборке;
  2. добавить полученный признак;
  3. выполнить кросс-валидацию

некорректна. В признаки валидационных объектов уже попала информация об их ответах.

Это частный случай утечки целевой переменной.

Сглаженное целевое кодирование

Для редких категорий оценку можно приблизить к общему среднему ответу.

Пусть


\mu=
\frac{1}{\ell}\sum_{i=1}^{\ell}y_i

— среднее значение ответа по всей обучающей выборке.

Сглаженная кодировка определяется формулой


s(v)=
\frac{
n_v\overline y_v+\alpha\mu
}{
n_v+\alpha
},

где \alpha>0 задаёт силу сглаживания.

При большом n_v код близок к среднему по категории:


s(v)\approx\overline y_v.

При малом n_v он приближается к общему среднему:


s(v)\approx\mu.

Сглаживание уменьшает дисперсию оценки, но само по себе не устраняет утечку. Код каждого обучающего объекта всё равно нельзя вычислять с использованием его ответа.

Out-of-fold-кодирование

Безопасный способ построения целевых признаков — вычисление по схеме out-of-fold.

Обучающая выборка делится на K частей:


X^\ell=F_1\cup\ldots\cup F_K.

Для объектов из части F_k статистики категорий вычисляются только по объектам из остальных частей:


X^\ell\setminus F_k.

Таким образом, ответ кодируемого объекта не участвует в построении его признака.

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

Важно выполнять эту процедуру внутри каждого внешнего разбиения кросс-валидации. Иначе информация из контрольной части снова попадёт в признаки.

Кодирование с исключением текущего объекта

Другой вариант — исключать текущий объект:


s_i=
\frac{
\sum_{j\ne i}y_j[f(x_j)=f(x_i)]+\alpha\mu
}{
\sum_{j\ne i}[f(x_j)=f(x_i)]+\alpha
}.

Такое кодирование называют leave-one-out target encoding.

Оно устраняет прямое использование собственного ответа, но объекты могут оставаться зависимыми друг от друга. Особенно это заметно для редких категорий, содержащих два или три объекта.

Дополнительно иногда вводят случайный шум, однако шум не заменяет корректного разделения данных.

Упорядоченные целевые статистики

Объекты можно расположить в случайном порядке. Для каждого объекта статистика вычисляется только по предыдущим объектам этой категории.

Пусть \pi — случайная перестановка. Тогда код объекта x_i строится по множеству


P_i=
\{j:\pi(j)<\pi(i)\}.

Упорядоченная статистика имеет вид


s_i=
\frac{
\sum_{j\in P_i}
y_j[f(x_j)=f(x_i)]
+\alpha\mu
}{
\sum_{j\in P_i}
[f(x_j)=f(x_i)]
+\alpha
}.

Ответ текущего и последующих объектов не используется. Такой принцип применяется, в частности, при обработке категориальных признаков в CatBoost.

Для уменьшения случайности можно использовать несколько перестановок.

Неизвестные категории

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

Возможные стратегии:

  • отдельное значение «неизвестная категория»;
  • общий код для редких и неизвестных значений;
  • нулевой one-hot-вектор;
  • глобальная частота или глобальное среднее;
  • использование внешней иерархии категорий;
  • символьное представление категории, позволяющее работать с новыми значениями.

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

Пропущенные значения

Пропуск не всегда означает то же самое, что неизвестная категория.

Причины пропуска могут различаться:

  • значение не измерялось;
  • свойство неприменимо к объекту;
  • информация была скрыта;
  • произошла техническая ошибка;
  • значение появится только в будущем.

Для категориального признака пропуск часто выделяют в отдельную категорию.

Для числового признака можно добавить бинарный индикатор m(x). Он равен 1, если значение признака пропущено, и 0 в противном случае. Само числовое значение при этом заполняется отдельно выбранной константой или статистикой.

Сам факт пропуска может быть информативным, но модель способна выучить нестабильную зависимость от процедуры сбора данных.

Нормализация и стандартизация

Нормализация и стандартизация изменяют числовое представление, но обычно не считаются ослаблением или усилением шкалы. Они сохраняют порядок и большую часть числовой структуры, изменяя начало отсчёта и масштаб.

Минимально-максимальная нормализация

Приведение к отрезку [0,1]:


f'(x)=
\frac{
f(x)-f_{\min}
}{
f_{\max}-f_{\min}
}.

Метод чувствителен к выбросам. Одно крайне большое значение способно сжать почти все остальные значения в узкую часть диапазона.

Масштабирование с сохранением нуля


f'(x)=
\frac{f(x)}
{\max_i|f(x_i)|}.

Ноль остаётся нулём, что может быть важно для разреженных данных.

Стандартизация


f'(x)=
\frac{f(x)-\mu}
{\sigma},

где


\mu=
\frac{1}{\ell}
\sum_{i=1}^{\ell}f(x_i),


\sigma^2=
\frac{1}{\ell}
\sum_{i=1}^{\ell}
(f(x_i)-\mu)^2.

После преобразования обучающие значения имеют среднее, близкое к нулю, и дисперсию, близкую к единице.

Робастное масштабирование

Для устойчивости к выбросам среднее и стандартное отклонение заменяют медианой и межквартильным размахом:


f'(x)=
\frac{
f(x)-Q_{0.5}
}{
Q_{0.75}-Q_{0.25}
}.

Здесь Q_p обозначает квантиль уровня p.

Параметры преобразования вычисляются только по обучению

Все параметры предобработки должны определяться без использования контрольных и тестовых объектов.

К таким параметрам относятся:

  • минимумы и максимумы;
  • средние и дисперсии;
  • медианы и квантили;
  • границы интервалов;
  • перечень категорий;
  • частоты категорий;
  • целевые статистики;
  • правила объединения редких категорий.

Некорректная последовательность:

  1. вычислить среднее и дисперсию по всему набору данных;
  2. стандартизовать все объекты;
  3. разделить данные на обучение и тест.

Корректная последовательность:

  1. разделить данные;
  2. оценить параметры преобразования по обучающей части;
  3. применить неизменное преобразование к обучающей и тестовой частям.

При кросс-валидации преобразование должно заново обучаться внутри каждого разбиения.

Поэтому предобработку и модель удобно объединять в единый вычислительный конвейер:


x\longrightarrow T_{\theta}(x)
\longrightarrow a_w(T_{\theta}(x)).

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

Зависимость от алгоритма

Оптимальное преобразование признака зависит от используемой модели.

Линейные модели

Линейным моделям обычно требуется числовое представление категорий. One-hot-кодирование позволяет назначить каждой категории отдельный коэффициент.

Масштабирование важно при регуляризации:


Q(w)+\lambda\sum_jw_j^2\to\min_w.

Если признаки имеют разные масштабы, одинаковые численные значения весов соответствуют разному влиянию на ответ. Регуляризатор начинает неравномерно штрафовать признаки.

Метод ближайших соседей

Расстояние


\rho(x,x')=
\sqrt{
\sum_j
(f_j(x)-f_j(x'))^2
}

сильно зависит от масштаба координат. Признак с большими числовыми значениями может почти полностью определять расстояние.

Для номинальных признаков обычное евклидово расстояние между целочисленными кодами, как правило, не имеет смысла.

Метод опорных векторов

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

Нейронные сети

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

Деревья решений

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

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

Искусственная геометрия категорий

Любое числовое кодирование номинального признака создаёт некоторую геометрию.

При целочисленном кодировании категории могут быть представлены следующим образом:

v_1\mapsto 1, v_2\mapsto 2, v_3\mapsto 3.

Такое представление задаёт порядок и отношение расстояний:


|1-2|<|1-3|.

При one-hot-кодировании расстояние между любыми двумя различными категориями одинаково:


\|e_i-e_j\|_2=\sqrt{2}.

При целевом кодировании близкими становятся категории с близкими средними ответами.

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

Ни одно из этих представлений не является нейтральным. Каждое выражает определённое предположение о сходстве категорий.

Ослабление шкалы как регуляризация

Удаление части информации может уменьшать переобучение.

Пусть исходный числовой признак содержит точные значения с шумом:


f(x)=s(x)+\varepsilon.

После грубой дискретизации небольшие изменения шума могут не менять номер интервала. Представление становится устойчивее.

Это можно интерпретировать как компромисс смещения и дисперсии:

  • грубое представление увеличивает смещение;
  • одновременно оно может уменьшать дисперсию модели.

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

Усиление шкалы как введение предположений

Когда номинальная категория заменяется числом, это число получается из дополнительных предположений или данных.

Частотное кодирование предполагает, что распространённость категории связана с задачей.

Целевое кодирование предполагает, что объекты одной категории имеют сходные ответы.

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

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

Таким образом, усиление шкалы не создаёт информацию из ничего. Оно соединяет исходный признак с информацией из выборки, целевой переменной, предметной области или совместно обучаемой модели.

Пример

Рассмотрим задачу прогнозирования вероятности оттока клиента.

Исходные признаки:

  • регион — номинальная шкала;
  • тариф — номинальная шкала;
  • уровень удовлетворённости — порядковая шкала;
  • ежемесячная плата — шкала отношений;
  • длительность обслуживания — шкала отношений.

Возможная предобработка:

  1. Регион кодируется сглаженной целевой статистикой, вычисленной по out-of-fold-схеме.
  2. Редкие тарифы объединяются в категорию «прочие».
  3. Уровень удовлетворённости сохраняется как порядковый признак или заменяется системой пороговых индикаторов.
  4. Ежемесячная плата стандартизуется.
  5. Длительность обслуживания преобразуется логарифмически, если распределение сильно скошено.
  6. Для каждого числового признака добавляется индикатор пропуска, если механизм пропусков может быть информативным.

Каждое преобразование содержит предположение:

  • клиенты одного региона могут иметь сходную вероятность оттока;
  • различия между редкими тарифами недостаточно надёжны;
  • порядок удовлетворённости важнее точных расстояний между уровнями;
  • линейной модели удобнее работать с сопоставимыми масштабами;
  • отношение между длительностью обслуживания и оттоком может быть нелинейным.

Эти предположения следует проверять на независимых данных.

Типичные ошибки

Целочисленное кодирование номинальных категорий

Присвоение категориям чисел создаёт искусственный порядок. Оно допустимо только для моделей, которые явно рассматривают числа как идентификаторы, а не как количественные значения.

Предобработка до разделения данных

Статистики всего набора данных содержат информацию о контрольной части. Даже использование признаков без целевой переменной может давать небольшое смещение оценки.

Для целевого кодирования ошибка особенно серьёзна.

Использование тестовой выборки для выбора преобразования

Если после просмотра тестового результата меняются границы интервалов, способ кодирования или перечень признаков, тестовая выборка становится частью настройки модели.

Смешение порядковой и интервальной шкал

Коды 1, 2, 3, 4 и 5 для уровней согласия сохраняют порядок, но не доказывают равенство интервалов. Разность между уровнями 1 и 2 не обязана иметь тот же смысл, что разность между 4 и 5.

Неконтролируемая высокая кардинальность

Идентификаторы могут позволить модели запомнить обучающие объекты. Высокая точность на случайном разбиении не гарантирует переносимость на новых пользователей, товары или организации.

Неопределённая обработка новых категорий

Преобразование должно иметь явное правило для значений, отсутствовавших при обучении.

Непоследовательная обработка обучения и применения

Порядок столбцов, словарь категорий и параметры масштабирования должны быть одинаковыми на всех этапах.

Практический протокол

При подготовке признаков можно использовать следующую последовательность.

  1. Определить содержательный тип каждого признака.
  2. Проверить, не являются ли числа идентификаторами или кодами категорий.
  3. Определить допустимые операции и преобразования исходной шкалы.
  4. Выбрать кодирование с учётом модели и объёма данных.
  5. Разделить данные до оценивания параметров преобразования.
  6. Все статистические преобразования обучать только на обучающей части.
  7. Для целевых статистик использовать out-of-fold- или упорядоченную схему.
  8. Явно определить обработку пропусков, редких и неизвестных категорий.
  9. Сохранять преобразование вместе с обученной моделью.
  10. Проверять качество не только на случайном, но и на реалистичном разбиении данных.
  11. Сравнивать сложное кодирование с простыми базовыми вариантами.
  12. Анализировать устойчивость результата при изменении способа преобразования.

Философская интерпретация

Признаки не являются непосредственной копией свойств мира. Они представляют результаты измерений в выбранной системе различий и операций.

Преобразование шкалы изменяет язык, на котором модель получает данные.

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

Следовательно, предобработка не является нейтральным техническим этапом. Она включает предположения о том:

  • какие объекты следует считать похожими;
  • какие различия являются шумом;
  • какие отношения между значениями допустимы;
  • какую информацию можно переносить между объектами;
  • какие свойства выборки сохранятся при применении модели.

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

Заключение

Ослабление и усиление шкал признаков — два направления преобразования данных в машинном обучении.

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

Усиление приписывает признаку дополнительную числовую структуру. Частотное, ранговое и целевое кодирование позволяют компактно представить категории, но создают новые предположения и могут вызвать утечку данных.

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

См. также

Литература

  • Stevens S. S. On the Theory of Scales of Measurement // Science. — 1946. — Т. 103. — № 2684. — С. 677—680.
  • Micci-Barreca D. A Preprocessing Scheme for High-Cardinality Categorical Attributes in Classification and Prediction Problems // ACM SIGKDD Explorations Newsletter. — 2001. — Т. 3. — № 1. — С. 27—32.
  • Prokhorenkova L., Gusev G., Vorobev A., Dorogush A. V., Gulin A. CatBoost: Unbiased Boosting with Categorical Features // Advances in Neural Information Processing Systems. — 2018. — Т. 31. — С. 6638—6648.
  • Hastie T., Tibshirani R., Friedman J. The Elements of Statistical Learning. — 2nd edition. — Springer, 2009. — ISBN 978-0-387-84857-0
  • Kuhn M., Johnson K. Feature Engineering and Selection: A Practical Approach for Predictive Models. — CRC Press, 2019. — ISBN 978-1-13-807922-9
Личные инструменты