Сложно переоценить важность обработки и анализа данных в со-
временном мире. В различных областях жизнедеятельности, таких как
медицина, промышленность, энергетика и других накапливается огром-
ное количество данных, зачастую представленных в сложном для об-
работки и анализа человеком формате.
Мотивацией для исследования послужил тот факт, что в настоящее
время растёт интерес научного сообщества и бизнеса к технологиям и
методам машинного обучения и анализа данных. Также, наблюдается
рост количества различных программных реализаций существующих
алгоритмов и подходов.
Но сегодня, чтобы начать решать какую-либо реальную задачу ма-
шинного обучения (Machine Learning, ML), необходимо обладать до-
статочно высокой компетенцией и разбираться не только в матема-
тическом аппарате, но и в соответствующих программных продуктах.
Сейчас набор технологий представлен в виде большого количества раз-
личных продуктов, чаще всего несовместимых между собой, научиться
пользоваться которым в котором достаточно сложно.
На заре бурного развития технологий и методов машинного обу-
чения каждый исследователь самостоятельно разрабатывал себе про-
граммное обеспечение, бравшее на себя рутинные операции по перво-
начальной обработке данных и поиска основной линии (baseline), яв-
ляющаяся в общем смысле отправной точкой при решении задачи ма-
шинного обучения и представляющую собой метод обработки данных.
Основная линия (baseline) даёт приемлемую величину метрики (мера
оценки точности работы алгоритма), которую можно получить за мини-
мальное время и минимальными усилиями. Позже начали появляться
системы - агрегаторы, позволяющие автоматизировать повторяющие-
ся операции. Хотя подобные системы начали появляться сравнительно
недавно, попытки их разработки предпринимались и ранее. Значитель-
ных успехов эти ранние реализации достичь так и не смогли, что можно
объяснить недостаточным на тот момент развитием вычислительных
мощностей и ограниченной доступностью программных продуктов.
Системы-агрегаторы состоят из нескольких компонентов. Архитек-
тура является основой компонентой подобных систем, так как она явля-
ется каркасом, определяющий формальное поведение системы, от неё
зависит какие структуры и паттерны используются для решения задач.
Программная реализация — компонента, которая определяет как
будет работать система, какие нагрузки она должна выдерживать и
какие данные будет обрабатывать. Программной реализацией являет-
ся код, написанный на одном из языков программирования, зачастую
высокоуровневом и объектно-ориентированном.
После того, как разработана архитектура и выполнена программная
реализация, следующим следует апробация и сравнение с конкурентны-
ми аналогами. Каждая такая система уникальна, хотя все они имеют
схожие черты, какие-то обладают неоспоримыми преимуществами пе-
ред другими, какие-то разработаны для решения узкого круга задач.
Тем, как быстро и легко можно с помощью системы получить ре-
шение задачи, определяется конкурентоспособность продукта на рын-
ке. Примеры задач — классификация и кластеризация, которые имеют
важное практическое применение. Например, в медицине актуальной
является задача о предсказании успешности применения дефибрилля-
ции. Дефибрилляция — вид электроимпульсной терапии, проводимой
при нарушениях сердечного ритма, она восстанавливает ритм сердца
путём проведения электрического тока через сердце. Задача о предска-
зании в этом контексте трактуется как задача классификации набора
характеристик, полученных из кардиограммы пациента на два класса
(ROEA — дефибрилляция оказалась успешной и NOROEA — дефибрилляция не помогла).
Подводя итог вышесказанному, можно заключить, что существует потребность рынка в такой системе, и исследование, предложенное в этой работе является актуальным, мотивация для его проведения является обоснованной.
Основной вывод, который можно сделать на основе исследования,
описанного в диссертации, заключается в том, что на сегодняшний мо-
мент существует свободная ниша в области программных продуктов и
систем, агрегирующих методы и подходы анализа данных и машинного обучения.
В условиях постоянного роста и развития области чувствуется нехват-
ка продуктов, способных решать задачи, задействуя минимальные уси-
лия со стороны дата-саентистов и исследователей.
Также в ходе работы, на основе решения нескольких задач, предло-
женная технология была протестирована.
В ходе этой работы были получены следующие результаты.
- Разработана архитектура платформы, агрегирующая подходы ма-
шинного обучения и анализа данных, спроектирована структура
базы данных, спроектировано клиент-серверное взаимодействие.
Разработан принцип хранения обученных моделей и полученных
результатов классификации;
- Выполнена программная реализация на языке программирования
Python, также были использован язык JavaScript. Программная
реализация построена на основе фреймворков Flask и Angluar;
- Система протестирована. Рассмотрены все возможности системы,
даны необходимые пояснения, показан образец алгоритма, кото-
рый может быть загружен в систему;
- Работа системы продемонстрирована на решении трёх задач. В
ходе решения этих задач был проведён сравнительный анализ ал-
горитмов классификации и кластеризации средствами системы,
в частности была использована также собственная нейросетевая
модель, представляющая собой перцептрон.
Open source
Исходный код, документация и инструкция по развёртыванию си-
стемы были выложены в открытый доступ и находятся по адресу
https://github.com/nsmalimov/ml_analysis_ws.
Также, в качестве примера система была развёрнута на удалённом
сервере, доступ к веб-интерфейсу можно получить, перейдя по ссылке:
http://mlanalysisws.com — тестовая установка.
Отметим простоту установки, доработки и развёртывания системы,
а также поддержку мультиязычности.
[1] Alekh A. Sahand N. Martin J. Fast global convergence of gradient
methods for high-dimensional statistical recovery. –– 2012. –– P. 31.
[2] Amazone Machne Learning. –– URL: https://aws.amazon.com/ru/
machine-learning (online; accessed: 21.05.2017).
[3] Archive ICS. –– URL: https://archive.ics.uci.edu/ml/datasets/
wine (online; accessed: 21.05.2017).
[4] Diederik P. Jimmy L. Adam: a Method For Stochastic Optimization. –– 2015. –– P. 15.
[5] Dudoit S. Fridlyand J. Leader–follower consensus problems of multi-
agent systems with noise perturbation and time delays // Genome
Biology. –– 2002. –– Vol. 7, no. 3. –– P. 112–129.
[6] Flask. –– URL: http://flask.pocoo.org (online; accessed: 21.05.2017).
[7] Fowlkes E. Mallows C. A Method for Comparing Two Hierarchical
Clusterings // Journal of the American Statistical Association. ––
1983. –– no. 78. –– P. 553––584.
[8] Fridlyand J. Dudoit S. Application of Resampling Methods to Estimate
the Number of Clusters and to Improve the Accuracy of a Clustering
Methods. –– Stat. Berkely Tech. Report, 2001. –– P. 600.
[9] Google Machine Learning. –– URL: https://cloud.google.com/
products/machine-learning (online; accessed: 21.05.2017).
[10] Granichin O. Volkovich Z. Toledano-Kitai D. Randomized Algorithms
in Automatic Control and Data Mining. –– USA, New York, 2015. –– P. 275.
[11] Hubert L. Arabie P. Comparing Partitions // Journal of
Classification. –– 1985. –– P. 193––218.
[12] Jain A. Dubes R. Algorithms for Clustering Data. –– Prentice-Hall,
Englewood Cliffs, 1988. –– P. 320.
[13] Kaggle. –– URL: https://www.kaggle.com/c/digit-recognizer
(online; accessed: 21.05.2017).
[14] Levine E. Domany E. Resampling method for unsupervised estimation
of cluster validity // Neural Computation. –– 2001. –– no. 13. –– P. 2573–2593.
[15] M. William. Objective Criteria for the Evaluation of Clustering
Methods // Journal of the American Statistical Association. –– 1971. ––
no. 66. –– P. 846–850.
...