Масштабирование функций и кодирование функций для разработки функций

машинное обучение

Серия «Введение в машинное обучение» (2). Как создать полноценный проект машинного обучения, часть 5!

Первые четыре статьи цикла:

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


3.2 Масштабирование функций

Масштабирование признаков в основном делится на два метода: нормализацию и регуляризацию.

3.2.1 Нормализация
  1. Нормализация, также известная как стандартизация, тут не только фича, но и исходные данные можно нормализовать, это фича (или данные)масштабируется в пределах указанного примерно того же числового диапазона.
  2. Две причины нормализации:
  • Некоторым алгоритмам требуются образцы данных или числовые значения для признаков.с нулевым средним и единичной дисперсией;
  • Чтобы устранить разницу между примерными данными или функциямиРазмерные эффекты, т.е. удаление эффектов порядков. Как показано на рисунке ниже, это контурная линия целевой функции, содержащая два атрибута.
    • Различия в величинах приведут к свойствам с преобладанием больших величин.. Слева на рисунке ниже видно, что свойство с большей величиной будет сжимать контур эллипса в прямую линию, так что целевая функция зависит только от этого свойства.
    • Разница в порядке величины вызывает более медленную итеративную сходимость. Когда исходный объект подвергается градиентному спуску, направление градиента на каждом шаге будет отклоняться от направления минимального значения (центральная точка контурной линии),Количество итераций велико, а скорость обучения должна быть очень маленькой., иначе очень легко вызватьширокий размах. Но после нормализации направление каждого ступенчатого градиента почти указывает на направление минимального значения (центральная точка контурной линии),меньше итераций.
    • Все алгоритмы, которые полагаются на расстояние выборки, очень чувствительны к порядку величины данных.. Например, алгоритму KNN необходимо вычислить k выборок, ближайших к текущей выборке.Когда величина атрибута отличается, выбранные ближайшие k выборок также будут другими.

图来自《百面机器学习》

  1. Два распространенных метода нормализации:
  • Нормализация линейной функции (Min-Max Scaling). Он линейно преобразует исходные данные таким образом, что результат отображается в[0,1]В диапазоне , реализующем пропорциональное масштабирование исходных данных, формула выглядит следующим образом:
X_{norm}=\frac{X-X_{min}}{X_{max}-X_{min}}

где X - исходные данные,X_{max}, X_{min}представляют максимальное и минимальное значения данных соответственно.

  • Нормализация Z-оценки. Он сопоставляет необработанные данные с распределением со средним значением 0 и стандартным отклонением 1. Предположим, что среднее значение исходных признаков равно\mu, дисперсия\sigma, формула выглядит следующим образом:
z = \frac{x-\mu}{\sigma}
  1. Если набор данных разделен на обучающий набор, проверочный набор и тестовый набор, тоВсе три набора данных используют одни и те же параметры нормализации, а значения рассчитываются из обучающего набора., то есть максимум, минимум, дисперсия и среднее значение данных, необходимых в двух вышеуказанных методах, вычисляются через обучающую выборку (этот подход аналогичен пакетной нормализации в глубоком обучении, реализации BN).
  2. Нормализация — не панацея.Модель, решенную методом градиентного спуска, необходимо нормализовать, включая линейную регрессию, логистическую регрессию, машину опорных векторов, нейронную сеть и другие модели.. ноМодели деревьев решений не требуют, взяв в качестве примера алгоритм C4.5, дерево решений в основном основано на коэффициенте прироста информации набора данных D о признаке x при разделении узлов, и коэффициент прироста информации не имеет отношения к тому, является ли признак нормализованным или нет, и нормализация не изменится.Прирост информации выборки по признаку x.
3.2.2 Регуляризация
  1. РегуляризацияМасштабируйте определенную норму (например, норму L1, L2) выборки или признака до единицы 1.

Предположим, что набор данных:

Сначала рассчитайте норму Lp для выборки и получите:

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

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

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

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

3.3 Кодирование функций

3.3.1 Порядковое кодирование

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

Например, классы можно разделить на три класса: высокий, средний и низкий, и существует отношение размера «высокий> средний> низкий», тогда кодирование серийного номера может кодировать эти три класса следующим образом: высокий означает 3 и среднее значение равно 2, низкое значение равно 1, так что отношение размера все еще сохраняется после преобразования.

3.3.2 Горячее кодирование

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

Используется однократное кодированиеNбитовый статусNвозможные значения для кодирования. Например, группа крови, всего имеется 4 значения (A, B, AB и O), тогда горячее кодирование преобразует группу крови в 4-мерный разреженный вектор, представляющий четыре вышеуказанные группы крови:

  • Тип А: (1,0,0,0)
  • Тип Б: (0,1,0,0)
  • Тип АВ: (0,0,1,0)
  • Тип О: (0,0,0,1)

Преимущества горячего кодирования заключаются в следующем:

  • в состоянии справитьсянечисловые свойства. такие как группа крови, пол и т. д.
  • Возможности были расширены до определенной степени.
  • Закодированный вектор является разреженным вектором, только один бит равен 1, а остальные равны 0. Вы можете использовать разреженность вектора дляЭкономьте место для хранения.
  • Возможность обработки пропущенных значений. Когда все биты равны 0, произошло удаление. На этом этапе вы можете использовать обработку пропущенных значений, упомянутую вмногомерное отображениеметод, используяN+1биты для представления пропущенных значений.

Конечно, у горячего кодирования есть и недостатки:

1. Многомерные функции принесут следующие проблемы:

  • В алгоритме КННРасстояние между двумя точками в многомерном пространстве трудно эффективно измерить.;
  • В модели логистической регрессии количество параметров увеличивается по мере увеличения размерности, что приводит кМодель сложная и есть проблема переобучения;
  • Обычно только некоторые параметры полезны для классификации и предсказания.Уменьшение размерности с выбором признаков.

2. Модель дерева решений не рекомендует однократное кодирование дискретных признаков по двум основным причинам:

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

    Например, чтобы выполнить однократное кодирование группы крови, затем для каждого признака是否 A 型、是否 B 型、是否 AB 型、是否 O 型, будет 1 для небольшого количества сэмплов и 0 для большого количества семплов.

    Выигрыш этого деления очень мал, потому что после разделения:

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

    • Более крупный набор разделенных выборок, который является почти исходным набором выборок, имеет почти нулевой коэффициент усиления.

  • Обучение дереву решений влияния.

    Дерево решений зависит отСтатистика данных. Горячее кодирование разбивает данные на разрозненные небольшие области. В этих разрозненных небольших пространствах статистика неточна, и эффект обучения становится плохим.

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

3.3.3 Двоичное кодирование

Двоичное кодирование в основном делится на два этапа:

  1. Сначала используйте кодирование серийного номера, чтобы назначить идентификатор категории для каждой категории;
  2. Затем используйте в качестве результата двоичный код, соответствующий идентификатору категории.

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

группа крови Идентификатор категории двоичное представление однократное кодирование
A 1 0 0 1 1 0 0 0
B 2 0 1 0 0 1 0 0
AB 3 0 1 1 0 0 1 0
O 4 1 0 0 0 0 0 1

Как видно из приведенной выше таблицы, двоичное кодирование — это, по сути, использованиеДвоичный хеш-код сопоставляет идентификатор категории и, наконец, получает вектор признаков 0/1, а размерность признаков меньше, чем при горячем кодировании, что экономит больше места для хранения..

3.3.4 Бинаризация

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

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

  • Если образец находится в атрибутеjЗначение on больше или равноm, то двоичное значение равно 1;
  • Если образец находится в атрибутеjзначение меньше, чемm, то двоичный код равен 0

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

3.3.5 Дискретизация

определение: Как следует из названия, дискретизация — это преобразование непрерывных числовых атрибутов в дискретные числовые атрибуты.

Итак, когда вам нужно использовать дискретизацию признаков?

За этим стоит необходимость принятия»Массивные дискретные функции + простая модель",все еще"Несколько непрерывных функций + сложная модель" подход.

  • Для линейных моделей обычно используется «множество дискретных признаков + простая модель».
    • Плюсы: простая модель
    • Недостатки: Разработка признаков сложнее, но может быть обобщена при наличии успешного опыта и может изучаться параллельно многими людьми.
  • Для нелинейных моделей (таких как глубокое обучение) обычно используется «небольшое количество непрерывных признаков + сложная модель».
    • Плюсы: не требуется сложная разработка функций
    • Недостаток: сложная модель

ведро

1. Обычный метод дискретизации:ведро:

  • Поместите все образцы в непрерывное числовое свойствоjЗначения расположены от меньшего к большему{a_0, a_1, ..., a_N}.
  • Затем выберите границы ведра в порядке от меньшего к большему.b_1, b_2, ..., b_M. в:
    • M— это количество сегментов, которое является гиперпараметром и должно быть указано вручную.
    • размер каждого ведраb_{k+1}-b_kЭто также гиперпараметр, который необходимо указать вручную.
  • данная собственностьjзначениеa_i, чтобы вместить это:
    • еслиa_i < b_1, номер ведра равен 0. Значение атрибута сегментации равно 0;
    • еслиb_k \le a_i \le b_{k+1}, то номер ведраk. Значение атрибута после группировки равноk;
    • еслиa_i \ge b_M, то номер ведраM. Значение атрибута после группировки равноM.

2. Количество и границы сегментов обычно необходимо указывать вручную. Обычно есть два метода:

  • Назначается на основе опыта работы в бизнес-сфере. Например, при делении годового дохода на сегменты, согласно располагаемому доходу на душу населения в размере около 26 000 юаней в 2017 году, можно выбрать 5 сегментов. в:
    • Если доход меньше 13 000 юаней (0,5 раза на душу населения), он будет разделен на ведра по 0.
    • Если годовой доход составляет от 13 000 до 52 000 юаней (от 0,5 до 2 раз выше среднего на душу населения), он делится на баррели 1 .
    • Если годовой доход составляет от 53 000 до 260 000 юаней (от 2 до 10 раз выше среднего показателя на душу населения), он делится на баррели 2 .
    • Если годовой доход составляет от 260 000 до 2,6 млн юаней (в 10–100 раз больше, чем в среднем на душу населения), он делится на три части.
    • Если годовой доход превысит 2,6 млн юаней, он будет разделен на баррели 4 .
  • Определяется моделью. Набор данных после группирования обучается в соответствии с конкретными задачами, а оптимальное количество сегментов и границы сегментов определяются путем поиска по гиперпараметрам.

3. При выборе размера ковша руководствуйтесь некоторыми эмпирическими рекомендациями:

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

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

  • Размер корзины должен быть достаточно большим, чтобы в каждой корзине было достаточно образцов..

    Если в корзине слишком мало выборок, случайность слишком велика, чтобы быть статистически убедительной.

  • как можно больше образцов в каждом ведреравномерно распределены.

характеристика

1. В промышленности непрерывные значения редко используются напрямую в качестве входных данных моделей логистической регрессии, ноРазделите непрерывные функции на серию дискретных функций 0/1..

Его преимущества:

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

  • Особенности после дискретизацииАномальные данные очень надежны.

    Такие как: продажи как функция, когда продажи в[30,100)1 в промежутке, 0 в противном случае. Если не дискретизировать, один выброс, 10000, может вызвать много шума в модели. Из-за своего большего значения он оказывает большее влияние на изучение весов.

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

    Предполагая непрерывную функциюj, который дискретизируется какM0/1 функцииj_1, j_2, ..., j_M. но:w_j * x_j -> w_{j1} * x_{j1}^` + w_{j2} * x_{j2}^` + ...+w_{jM} * x_{jM}^`

    . вx_{j1}^`,x_{j2}^`,..., x_{jM}^`являются новыми функциями после дискретизации, и их пространство значений равно {0, 1}.

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

  • Кроссовер признаков может быть выполнен после дискретизации. Предполагая непрерывные функцииj, который дискретизируется наN0/1 функции, непрерывные функцииk, который дискретизируется наMФункции 0/1, затем дискретизированные отдельно, а затем введенныеN+Mособенность.

    Предполагая, что при дискретизации происходит не самостоятельная дискретизация, а особенностиj,kСовместно дискретизируя, мы можем получитьN*Mкомбинированный признак.Это дополнительно внесет нелинейность и улучшит выразительность модели..

  • После дискретизации модель будет более стабильной.

    Если продажи дискретные,[30,100)как интервал. Когда продажи колеблются около 40, это не влияет на ценность его дискретных характеристик.

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

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

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

Кроме того, это делает модельПодобранное значение значительно уменьшено, что также снижает сложность модели..


резюме

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


Ссылаться на:


Добро пожаловать, чтобы обратить внимание на мою общедоступную учетную запись WeChat — машинное обучение и компьютерное зрение, или отсканируйте QR-код ниже, давайте общаться, учиться и прогрессировать вместе!

Прекрасная рекомендация в прошлом

Серия машинного обучения
заметки по математике
Рекомендация руководства по проектам и ресурсам Github