В настоящее время я работаю над моделью логистической регрессии для геномики. Одно из полей ввода, которое я хочу включить как ковариату, это genes
. Существует около 24 000 известных генов. Существует много особенностей с таким уровнем изменчивости в вычислительной биологии, и необходимы сотни тысяч образцов.
- Если я
LabelEncoder()
эти 24K гены - а потом
OneHotEncoder()
их ...
Собираются ли 24 000 колонок для того, чтобы время обучения керасу было необоснованным для четырехъядерного процессора i7 с тактовой частотой 2,2 ГГц?
Если так, есть ли другой подход к кодированию, который я могу использовать с этим?
Должен ли я как-то попытаться выделить слой моей модели для этой функции?
Означает ли это, что мне нужны 24K входных узлов?
machine-learning
keras
scikit-learn
HashRocketSyntax
источник
источник
Ответы:
Да, использование горячего кодирования для функций 24 КБ требует 24 000 узлов ввода. Однако это не должно быть проблемой для Keras (или любой другой библиотеки глубокого обучения). Обработка естественного языка часто использует горячее кодирование слов с размером словарного запаса в одном и том же поле.
Если вы используете «глубокую» модель, один из ваших скрытых слоев должен позаботиться о снижении размерности ваших данных. Отдельный этап предварительной обработки обычно не требуется.
Время тренировки не должно быть необоснованным.
источник
Встраивание сущностей для категориальных переменных ( оригинальный пейджер ) будет очень подходящим подходом. Читайте здесь или здесь . Я на самом деле положил кусочки кода здесь и там и сделал полную реализацию, см. Это репозиторий git, Это легко обрабатывает очень высокие кардинальные категориальные переменные, используя нейронные сети. Я не буду перечислять плюсы и минусы OHE, вы просто гуглите его, но один из его главных недостатков, особенно. если у вас очень высокая кардинальная категориальная переменная, то это излишне увеличивает ваше пространство признаков, что, на мой взгляд, не идеально. И что более важно, ОНЕ, насколько мне известно, не учитывает семантические отношения между категориями, если такие отношения существуют! Тем не менее, Entity Embedding является концепцией Word Embedding в NLP, веса, которые изучаются для кодирования категорий, могут потенциально захватывать внутрикатегориальные отношения.
источник
Как правило, это количество генов должно быть уменьшено до гораздо меньшего набора значимых признаков. Затем в модели можно использовать сокращенный набор функций. Например, анализ основных компонентов (PCA) является одним из наиболее распространенных методов восстановления и используется для данных по экспрессии генов .
« Машинное обучение для интеграции данных в биологии и медицине: принципы, практика и возможности» , Zitnika et al. охватывает различные методы инженерии генов.
источник