Методы машинного обучения (регрессии, классификации) как агрегатные функции
Компания | Яндекс |
Учебный семестр | Осень 2018 |
Учебный курс | 3-4-й курс |
Максимальное количество студентов, выбравших проект: ? | |
"Агрегатные функции - это функции над множеством (потоком) данных. Примеры: сумма, среднее, гистограмма... Одно из преимуществ архитектуры ClickHouse состоит в том, что состояния вычислений агрегатных функций являются ""first class citizens"". Вы можете получить промежуточное состояние вычисления агрегатной функции как полноценное значение: сохранить его в таблицу, проводить с ним всевозможные манипуляции. Это может использоваться, например, для инкрементальной агрегации потоков данных.
В связи с этим является интересной идеей оформить простые методы регрессии и классификации в виде агрегатных функций. Состояния агрегатных функций будут обновляться (обучаться) по потоку данных, который им передаётся. Одновременно с этим, текущее состояние агрегатной функции можно использовать в виде обученной формулы. Таким образом мы получим возможность онлайн обучения в ClickHouse путём создания агрегирующего materialized view над таблицей.
Сначала мы добавим наиболее простые методы - линейную и логистическую регрессию, байесовский классификатор; а затем любые алгоритмы на ваш вкус.