Прогнозирование с использованием как непрерывных, так и категориальных функций

26

Некоторые методы прогнозирующего моделирования больше предназначены для обработки непрерывных предикторов, а другие - для обработки категориальных или дискретных переменных. Конечно, существуют методы преобразования одного типа в другой (дискретизация, фиктивные переменные и т. Д.). Однако существуют ли какие-либо методы прогнозного моделирования, которые предназначены для одновременной обработки обоих типов ввода без простой трансформации типа функций? Если да, то как эти методы моделирования лучше работают с данными, для которых они более естественны?

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

Для справки, вот несколько связанных, не повторяющихся вопросов:

Майкл МакГоуэн
источник
1
Можете ли вы сказать больше о том, что вы хотите сделать? Конечно, вы можете использовать множественную регрессию как с непрерывными, так и с категориальными ковариатами для построения прогностической модели. Это довольно элементарно. Вы имеете в виду предсказание нескольких переменных ответа вместо этого (где некоторые являются продолжительными и некоторые, например, кошки)?
gung - Восстановить Монику
@gung Как вы делаете множественную регрессию с участием категориальных ковариат без преобразования конвертирования категориальных предикторов в числа в некотором смысле?
Майкл МакГоуэн
1
«Числа» ничего не значат - они на самом деле не являются числовыми . С точки зрения того, как вы используете схему кодирования; кодирование эталонной ячейки (обычно называемое «фиктивным кодированием») является наиболее распространенным, но существует много схем. Это хороший ресурс для изучения различных возможных схем. В R, например, вам на самом деле не нужно это делать, хотя, если вы включите векторные или символьные данные (т.е. имена), он будет обрабатывать все для вас.
gung - Восстановить Монику
2
Боюсь, я до сих пор не следую за импульсом, стоящим за этим вопросом (я немного медленный). Категориальные переменные не «преобразуются» или «не преобразуются» в числовые переменные; они представлены цифрой 1, но эта цифра на самом деле не числовая. Качественные предикторы не являются более числовыми в множественной регрессии, чем в деревьях решений (например, CART), например. С теоретической точки зрения там просто ничего нет; с практической точки зрения, если вы пытаетесь сохранить несколько строк кода, например, программное обеспечение (например, R) часто сделает это за вас.
gung - Восстановить Монику
1
Достаточно справедливо, вы можете объяснить, что вы думаете (с теоретической точки зрения)? Как фиктивное кодирование превращает категориальную переменную в значимую числовую? Как получается, что то, что делает CART, позволяет переменной сохранять свою «категоричность», а фиктивное кодирование - нет? Я не могу понять, какие ответы на эти вопросы могут быть из вашего вопроса выше, и я не вижу ваш предыдущий пост.
gung - Восстановить Монику

Ответы:

6

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

Обратите внимание, что такие алгоритмы, как Random Forest и XGBoost, допускают ввод смешанных функций, но они применяют некоторую логику для их обработки во время разделения узла. Убедитесь, что вы понимаете логику «под капотом» и что вы в порядке с тем, что происходит в черном ящике.

U1U2еяd(U1,U2)еязнак равно(dяs-сaTегорясaL(U1,U2)еяеяd(U1,U2)еязнак равноdяs-NUмеряс(U1,U2)еяеяеяU1U2

Некоторые известные функции расстояния для категориальных функций:

  • Расстояние Левенштиена (или любая форма «редактирования расстояния»)

  • Самая длинная общая подпоследовательность

  • Gower расстояние
  • И больше метрик здесь
интуитивная прозорливость
источник
5

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

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

Форрест Синелли
источник
У SAS есть процедура, называемая Proc Gam.
Alph
1
Большинство основных статистических пакетов (например, Stata) могут реализовывать GAM. Более конкретно, однако, GAM будет использовать фиктивные коды для представления категориальных переменных в качестве предикторов. Неясно, чего хочет ОП при поиске модели, в которой категориальные предикторы используются как категориальные, но без представления их с помощью фиктивных кодов, но это вряд ли так.
gung - Восстановить Монику
Добро пожаловать в резюме. Обратите внимание, что ваше имя пользователя, имя пользователя и ссылка на страницу пользователя автоматически добавляются к каждому создаваемому вами сообщению, поэтому подписывать ваши сообщения не нужно. На самом деле, мы предпочитаем, чтобы вы этого не делали.
gung - Восстановить Монику
4

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

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

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

Erik
источник
2
Нет, я хочу сказать, что логистическая регрессия и др. Не «работают» в том смысле, в котором я описываю оба типа данных. Они требуют, чтобы вы, по крайней мере, в некотором смысле, рассматривали все предикторы как числа или ни один из них не как числа. Я знаю, например, что с помощью логистической регрессии часто можно получить отличные результаты, кодируя что-то вроде «пол» как 1 для «мужчины» и 0 для «женщины». Однако мне интересно, можно ли избежать такого типа процессов с помощью любой известной модели моделирования.
Майкл МакГоуэн
1

Это глубокий философский вопрос, который обычно рассматривается как со стороны статистики, так и со стороны машинного обучения. Некоторые говорят, что классификация лучше для дискретного или категориального индикатора, так что пакеты могут легко переварить входные данные модели. Другие говорят, что объединение может привести к потере информации, но, тем не менее, категориальные переменные могут / должны быть преобразованы в {1,0} индикаторные переменные, оставляя последний класс для остатков модели.

В книге « Прикладная линейная регрессия» (Катнер и др.) Упоминается логика введения индикаторных переменных в модель в первых нескольких главах. Там может быть другой подобный текст тоже.

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

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

KarthikS
источник