Пересечение признаков: пересечение однозначных векторов

До сих пор мы сосредоточились на пересечении двух отдельных функций с плавающей запятой. На практике модели машинного обучения редко пересекаются с непрерывными функциями. Тем не менее, модели машинного обучения часто пересекают векторы горячих признаков. Думайте о пересечениях признаков одногорячих векторов признаков как о логических соединениях. Например, предположим, что у нас есть две функции: страна и язык. Однократное кодирование каждого генерирует векторы с бинарными функциями, которые можно интерпретировать как country=USA, country=France или language=English, language=Spanish . Затем, если вы выполняете скрещивание признаков этих однократных кодировок, вы получаете бинарные признаки, которые можно интерпретировать как логические соединения, такие как:

  country:usa AND language:spanish

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

  binned_latitude = [0, 0, 0, 1, 0]
  binned_longitude = [0, 1, 0, 0, 0]

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

  binned_latitude X binned_longitude

Этот крест признаков представляет собой однократный вектор из 25 элементов (24 нуля и 1 единица). Одиночная 1 в кресте обозначает конкретное сочетание широты и долготы. Затем ваша модель может узнать определенные ассоциации об этом соединении.

Предположим, мы бинируем широту и долготу гораздо более грубо, как показано ниже:

binned_latitude(lat) = [
  0  < lat <= 10
  10 < lat <= 20
  20 < lat <= 30
]

binned_longitude(lon) = [
  0  < lon <= 15
  15 < lon <= 30
]

Создание кросс-функции этих грубых бинов приводит к синтетическому признаку, имеющему следующие значения:

binned_latitude_X_longitude(lat, lon) = [
  0  < lat <= 10 AND 0  < lon <= 15
  0  < lat <= 10 AND 15 < lon <= 30
  10 < lat <= 20 AND 0  < lon <= 15
  10 < lat <= 20 AND 15 < lon <= 30
  20 < lat <= 30 AND 0  < lon <= 15
  20 < lat <= 30 AND 15 < lon <= 30
]

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

  • Тип поведения (лай, плач, прижимание и т. д.)
  • Время суток

Если мы создадим скрещивание функций из обеих этих функций:

  [behavior type X time of day]

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

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