До сих пор мы сосредоточились на пересечении двух отдельных функций с плавающей запятой. На практике модели машинного обучения редко пересекаются с непрерывными функциями. Тем не менее, модели машинного обучения часто пересекают векторы горячих признаков. Думайте о пересечениях признаков одногорячих векторов признаков как о логических соединениях. Например, предположим, что у нас есть две функции: страна и язык. Однократное кодирование каждого генерирует векторы с бинарными функциями, которые можно интерпретировать как 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 часа ночи, когда владелец крепко спал, вероятно, будет сильным негативным предиктором удовлетворенности владельца.
Линейные учащиеся хорошо масштабируются на массивные данные. Использование скрещивания признаков в массивных наборах данных — одна из эффективных стратегий изучения очень сложных моделей. Нейронные сети предлагают другую стратегию.