Извлечение функций из необработанных данных для машинного обучения
Разработка функций — важнейший этап предварительной обработки в контролируемом машинном обучении и статистическом моделировании [1] — преобразует необработанные данные в более эффективный набор входных данных, известный как функции. Этот процесс повышает точность прогнозирования и возможности моделей по принятию решений, предоставляя им более актуальную информацию. [2]
Другие примеры особенностей в физике включают построение безразмерных чисел , таких как число Рейнольдса в гидродинамике , число Нуссельта в теплопередаче , число Архимеда в седиментации , а также построение первых приближений решения, таких как аналитическая прочность материалов, растворов в механика. [3]
Прогнозное моделирование
Разработка функций в машинном обучении и статистическом моделировании включает в себя выбор, создание, преобразование и извлечение функций данных. Ключевые компоненты включают создание признаков на основе существующих данных, преобразование и вменение отсутствующих или недействительных признаков, уменьшение размерности данных с помощью таких методов, как анализ главных компонентов (PCA), анализ независимых компонентов (ICA) и линейный дискриминантный анализ (LDA), а также выбор наиболее подходящих функции для обучения модели на основе показателей важности и корреляционных матриц . [4]
Характеристики различаются по значимости. [5] Даже относительно незначительные особенности могут способствовать созданию модели. Выбор функций может уменьшить количество функций, чтобы модель не стала слишком специфичной для набора обучающих данных (переобучение). [6]
Расширение функций происходит, когда количество идентифицированных функций слишком велико для эффективной оценки или оптимизации модели. Общие причины включают в себя:
- Шаблоны функций: внедрение шаблонов функций вместо написания новых функций.
- Комбинации признаков – комбинации, которые не могут быть представлены линейной системой.
Расширение возможностей можно ограничить с помощью таких методов, как регуляризация , методы ядра и выбор функций . [7]
Автоматизация
Автоматизация разработки функций — это тема исследования, которая берет свое начало еще в 1990-х годах. [8] Программное обеспечение для машинного обучения, включающее автоматизированное проектирование признаков, коммерчески доступно с 2016 года . [9] Соответствующую научную литературу можно условно разделить на два типа:
- Многореляционное обучение дереву решений (MRDTL) использует контролируемый алгоритм, аналогичный дереву решений .
- Глубокий синтез функций использует более простые методы. [ нужна цитата ]
Многореляционное обучение дереву решений (MRDTL)
MRDTL генерирует функции в форме запросов SQL путем последовательного добавления предложений в запросы. [ нужна цитация ] Например, алгоритм может начинаться с
ВЫБЕРИТЕ СЧЕТ ( * ) ОТ АТОМА t1 ВЛЕВО ПРИСОЕДИНЯЙТЕСЬ К МОЛЕКУЛЕ t2 НА t1 . мол_ид = t2 . mol_id ГРУППА ПО t1 . мол_ид
Затем запрос можно последовательно уточнить, добавив условия, например «WHERE t1.charge <= -0,392». [ нужна цитата ]
Однако большинство исследований MRDTL основывают реализации на реляционных базах данных, что приводит к множеству избыточных операций. Эту избыточность можно уменьшить, используя такие методы, как распространение идентификаторов кортежей. [10] [11] Эффективность можно повысить за счет использования дополнительных обновлений, что исключает избыточность. [12] [ рекламный источник? ]
Реализации с открытым исходным кодом
Существует ряд библиотек и инструментов с открытым исходным кодом, которые автоматизируют разработку функций реляционных данных и временных рядов:
- Featuretools — это библиотека Python для преобразования временных рядов и реляционных данных в матрицы функций для машинного обучения. [13] [14] [15]
- OneBM или One-Button Machine сочетает в себе преобразование признаков и выбор признаков реляционных данных с методами выбора признаков. [16]
[OneBM] помогает ученым, работающим с данными, сократить время исследования данных, позволяя им опробовать и ошибиться во многих идеях за короткое время. С другой стороны, это позволяет неспециалистам, не знакомым с наукой о данных, быстро извлекать пользу из своих данных с небольшими усилиями, временем и затратами. [17]
- Сообщество getML — это инструмент с открытым исходным кодом для автоматического проектирования функций временных рядов и реляционных данных. [18] [19] Он реализован на C / C++ с интерфейсом Python. [20] Было доказано, что он работает как минимум в 60 раз быстрее, чем tsflex, tsfresh, tsfel, Featuretools или Kats. [21]
- tsfresh — это библиотека Python для извлечения признаков из данных временных рядов. [22] Он оценивает качество функций с помощью проверки гипотез. [23]
- tsflex — это библиотека Python с открытым исходным кодом для извлечения функций из данных временных рядов. [24] Несмотря на то, что он на 100% написан на Python, он оказался быстрее и эффективнее использует память, чем tsfresh, seglearn или tsfel. [25]
- seglearn — это расширение для многомерных последовательных данных временных рядов библиотеки Python scikit-learn . [26]
- tsfel — это пакет Python для извлечения признаков из данных временных рядов. [27]
- kats — это набор инструментов Python для анализа данных временных рядов. [28]
Глубокий синтез функций
Алгоритм глубокого синтеза признаков (DFS) победил в соревновании 615 из 906 человеческих команд. [29] [30]
Магазины функций
Хранилище функций — это место, где функции хранятся и организованы с явной целью использования либо для обучения моделей (специалистами по данным), либо для прогнозирования (приложениями, имеющими обученную модель). Это центральное место, где вы можете создавать или обновлять группы объектов, созданных из нескольких разных источников данных, или создавать и обновлять новые наборы данных из этих групп объектов для обучения моделей или для использования в приложениях, которые не хотят вычислять объекты, а просто извлекать их, когда они нужны для прогнозирования. [31]
Хранилище функций включает в себя возможность хранить код, используемый для создания функций, применять этот код к необработанным данным и предоставлять эти функции моделям по запросу. Полезные возможности включают управление версиями функций и политики, определяющие обстоятельства, при которых функции могут использоваться. [32]
Хранилища функций могут быть автономными программными инструментами или встроенными в платформы машинного обучения.
Альтернативы
Разработка функций может быть трудоемким и подверженным ошибкам процессом, поскольку требует экспертных знаний в предметной области и часто включает в себя метод проб и ошибок. [33] [34] Алгоритмы глубокого обучения могут использоваться для обработки большого набора необработанных данных без необходимости прибегать к разработке признаков. [35] Однако важно отметить, что алгоритмы глубокого обучения по-прежнему требуют тщательной предварительной обработки и очистки входных данных. [36] Кроме того, выбор правильной архитектуры, гиперпараметров и алгоритма оптимизации для глубокой нейронной сети может оказаться сложным и итеративным процессом. [37]
Смотрите также
Рекомендации
- ^ Хасти, Тревор; Тибширани, Роберт; Фридман, Джером Х. (2009). Элементы статистического обучения: интеллектуальный анализ данных, логический вывод и прогнозирование. Спрингер. ISBN 978-0-387-84884-6.
- ^ Мерфи, Кевин П. (2022). Вероятностное машинное обучение . Кембридж, Массачусетс: The MIT Press (авторские права принадлежат Массачусетскому технологическому институту, 2022 г., на эту работу распространяется лицензия Creative Commons CC-BY-NC-ND). стр. 1–11. ISBN 9780262046824.
- ^ МакКерон С (2021). СМЕШИВАНИЕ ТВЕРДОЙ ЖИДКОСТИ В РЕЗЕРВУАРАХ С ПЕРЕМЕШИВАНИЕМ: моделирование, проверка, оптимизация конструкции и прогнозирование качества суспензии (отчет). дои : 10.13140/RG.2.2.11074.84164/1.
- ^ «Разработка функций - линза машинного обучения» . docs.aws.amazon.com . Проверено 1 марта 2024 г.
- ^ «Разработка функций» (PDF) . 22 апреля 2010 г. Проверено 12 ноября 2015 г.
- ^ «Разработка и выбор функций» (PDF) . Александр Бушар-Коте. 1 октября 2009 года . Проверено 12 ноября 2015 г.
- ^ «Разработка функций в машинном обучении» (PDF) . Зденек Забокрский. Архивировано из оригинала (PDF) 4 марта 2016 года . Проверено 12 ноября 2015 г.
- ^ Ноббе А.Дж., Зибес А., Ван дер Валлен Д. (1999). «Индукция многореляционного дерева решений» (PDF) . Принципы интеллектуального анализа данных и обнаружения знаний . Конспекты лекций по информатике. Том. 1704. стр. 378–383. дои : 10.1007/978-3-540-48247-5_46. ISBN 978-3-540-66490-1.
- ^ «Все дело в особенностях» . Блог ИИ реальности . Сентябрь 2017.
- ^ Инь X, Хань Дж, Ян Дж, Ю PS (2004). «CrossMine: эффективная классификация по нескольким отношениям баз данных». Слушания. 20-я Международная конференция по инженерии данных . стр. 399–410. doi :10.1109/ICDE.2004.1320014. ISBN 0-7695-2065-0. S2CID 1183403.
- ^ Фрэнк Р., Мозер Ф., Эстер М. (2007). «Метод мультиреляционной классификации с использованием одно- и многофункциональных функций агрегирования». Обнаружение знаний в базах данных: PKDD 2007 . Конспекты лекций по информатике. Том. 4702. стр. 430–437. дои : 10.1007/978-3-540-74976-9_43. ISBN 978-3-540-74975-2.
- ^ «Как работает автоматизированная разработка функций — наиболее эффективное решение для разработки функций для реляционных данных и временных рядов» . Проверено 21 ноября 2019 г.
- ^ "Что такое Featuretools?" . Проверено 7 сентября 2022 г.
- ^ «Featuretools — среда Python с открытым исходным кодом для автоматизированного проектирования функций» . Проверено 7 сентября 2022 г.
- ^ «Github: alteryx/featuretools». Гитхаб . Проверено 7 сентября 2022 г.
- ^ Тхань Лам, Хоанг; Тибо, Иоганн-Майкл; Синн, Матье; Чен, Бэй; Май, Тип; Алкан, Ознур (01.06.2017). «Машина с одной кнопкой для автоматизации разработки функций в реляционных базах данных». arXiv : 1706.00327 [cs.DB].
- ^ Тхань Лам, Хоанг; Тибо, Иоганн-Майкл; Синн, Матье; Чен, Бэй; Май, Тип; Алкан, Ознур (01.06.2017). «Машина с одной кнопкой для автоматизации разработки функций в реляционных базах данных». arXiv : 1706.00327 [cs.DB].
- ^ «Документация getML» . Проверено 7 сентября 2022 г.
- ^ "GitHub: getml/getml-сообщество". Гитхаб . Проверено 7 сентября 2022 г.
- ^ "GitHub: getml/getml-сообщество". Гитхаб . Проверено 7 сентября 2022 г.
- ^ "GitHub: getml/getml-сообщество". Гитхаб . Проверено 7 сентября 2022 г.
- ^ "документация tsfresh" . Проверено 7 сентября 2022 г.
- ^ «Извлечение функций временных рядов на основе тестов масштабируемой гипотезы (tsfresh - пакет Python)» . Проверено 7 сентября 2022 г.
- ^ "predict-idlab/tsflex". Гитхаб . Проверено 7 сентября 2022 г.
- ^ Ван дер Донкт, Йонас; Ван дер Донкт, Йерун; Депрост, Эмиэль; Ван Хек, Софи (2022). «tsflex: гибкая обработка временных рядов и извлечение признаков». Программное обеспечениеX . 17 : 100971. arXiv : 2111.12429 . Бибкод : 2022SoftX..1700971V. doi :10.1016/j.softx.2021.100971. S2CID 244527198 . Проверено 7 сентября 2022 г.
- ^ "Руководство пользователя seglearn" . Проверено 7 сентября 2022 г.
- ^ «Добро пожаловать в документацию TSFEL!» . Проверено 7 сентября 2022 г.
- ^ "github: facebookresearch/Kats" . Гитхаб . Проверено 7 сентября 2022 г.
- ^ «Автоматизация анализа больших данных». 16 октября 2015 г.
- ^ Кантер, Джеймс Макс; Вирамачанени, Калян (2015). «Глубокий синтез функций: на пути к автоматизации исследований данных». Международная конференция IEEE по науке о данных и передовой аналитике (DSAA) , 2015 г. стр. 1–10. дои : 10.1109/DSAA.2015.7344858. ISBN 978-1-4673-8272-4. S2CID 206610380.
- ^ «Что такое хранилище функций» . Проверено 19 апреля 2022 г.
- ^ «Введение в магазины функций» . Проверено 15 апреля 2021 г.
- ^ «Разработка функций в машинном обучении». Программа инженерного образования (EngEd) | Раздел . Проверено 21 марта 2023 г.
- ^ explorium_admin (25 октября 2021 г.). «5 причин, почему разработка функций является сложной задачей». Эксплориум . Проверено 21 марта 2023 г.
- ^ Шпигельхальтер, диджей (2019). Искусство статистики: обучение на данных. [Лондон] Великобритания. ISBN 978-0-241-39863-0. ОСЛК 1064776283.
{{cite book}}
: CS1 maint: location missing publisher (link) - ^ Саркер IH (ноябрь 2021 г.). «Глубокое обучение: всеобъемлющий обзор методов, таксономии, приложений и направлений исследований». С.Н. Информатика . 2 (6): 420. дои : 10.1007/s42979-021-00815-1. ПМЦ 8372231 . ПМИД 34426802.
- ^ Бенджио, Йошуа (2012), «Практические рекомендации по градиентному обучению глубоких архитектур», Нейронные сети: хитрости профессии , Конспекты лекций по информатике, том. 7700, Берлин, Гейдельберг: Springer Berlin Heidelberg, стр. 437–478, arXiv : 1206.5533 , doi : 10.1007/978-3-642-35289-8_26, ISBN 978-3-642-35288-1, S2CID 10808461 , получено 21 марта 2023 г.
дальнейшее чтение
- Бёмке Б., Гринвелл Б. (2019). «Функциональная и целевая инженерия». Практическое машинное обучение с помощью R . Чепмен и Холл. стр. 41–75. ISBN 978-1-138-49568-5.
- Чжэн А, Казари А (2018). Разработка функций для машинного обучения: принципы и методы для специалистов по данным . О'Рейли. ISBN 978-1-4919-5324-2.
- Зумель Н., Маунт (2020). «Инженерия данных и формирование данных». Практическая наука о данных с R (2-е изд.). Мэннинг. стр. 113–160. ISBN 978-1-61729-587-4.