Введение 6
1 Моделирование процесса разработки систем анализа данных 8
1.1 Функциональное моделирование 8
2 Разработка подходя для сравнения эффективности алгоритмов машинного
обучения 15
2.1 Задача классификации 15
2.2 Показатели точности классификаторов 16
2.3 Визуализация результатов обучения и работы классификаторов 21
2.3 Планирование вычислительных экспериментов 27
2.4 Набор данных для тестирования предложенного подхода 29
3 Разработанное программное обеспечение для сравнения методов
построения классификаторов 32
3.1 Особенности разработанного программного обеспечений 32
3.2 Тестирования программного обеспечения на медицинских данных 38
Заключение 44
Список используемой литературы 46
Алгоритмы машинного обучения за последние время все чаще стали использоваться для решения практических задач из различных областей. В медицине, например, по данным химического анализа крови осуществляется классификация заболевания пациента (стоит отметить, что заключительный диагноз ставит врач после подтверждения анализов). В сфере бизнеса с помощью алгоритмов машинного обучения строятся классификаторы для оценки лояльности клиентов (любая компания стремиться сохранить лояльных клиентов).
Однако с развитием машинного обучения появляется все больше алгоритмов для классификации данных, основанных на разных математических принципах. Понятия «алгоритм классификации» и «метод классификации» являются идентичными. Перечислим наиболее известные алгоритмы для получения бинарных классификаторов: Logistic Regression (логистическая регрессия), Ada Boost Classifier (метод AdaBoost), Linear Discriminant Analysis (линейный дискриминантный анализ), Ridge Classifier (классификатор Ridge), Gradient Boosting Classifier (градиентный бустинг), Extra Trees Classifier, Random Forest Classifier (случайный лес), Light Gradient Boosting Machine, K Neighbors Classifier (K ближайших соседей), Decision Tree Classifier (деревья решений), Naive Bayes (наивный байесовский классификатор), SVM - Linear Kernel (метод опорных векторов), Quadratic Discriminant Analysis (квадратичный дискриминантный анализ).
Проблема заключается в том, что заранее никогда не известно, какой из алгоритмов, покажет лучшие результаты на анализируемом наборе данных при обучении бинарного классификатора. Например, некоторые алгоритмы не могут продемонстрировать приемлемых результатов, если в исходной выборке данных присутствуют выбросы (аномальные значения числовых признаков). Другие алгоритмы чувствительны к размеру обучающей выборки.
Для преодоления данной проблемы предложено разработать программное обеспечение для тестирования работы всех описанных выше алгоритмов на загруженных пользователем данных. По результатам тестирования программное обеспечение должно определять алгоритм, позволяющий получить наиболее точный классификатор на имеющихся данных.
Таким образом, цель работы - разработка программного обеспечения для сравнения эффективности применения различных алгоритмов машинного обучения на выбранных пользователем данных.
Для достижения поставленной цели в работе решаются следующие задачи:
1. Анализ процесса разработки программного обеспечения для классификации данных, основанного на алгоритмах машинного обучения.
2. Разработка подхода для сравнения эффективности алгоритмов машинного обучения на заданной выборке данных.
3. Разработка программного обеспечения для сравнительного анализа алгоритмов бинарной классификации.
4. Тестирование программного обеспечения на медицинских данных из открытого репозитория.
На основании проведенных исследований были сделаны следующие выводы:
С развитием машинного обучения появляется все больше различных алгоритмов построение классификаторов, основанных на разных математических принципах. При этом заранее не известно, какой из алгоритмов обеспечит построение (обучение) наилучшей модели, наиболее точно описывающей имеющиеся данные. Поэтому актуальной проблемой является разработка программного обеспечения для автоматизации поиска наилучшего метода построения модели (бинарного классификатора).
Описан подход для определения лучшего метода построения классификатора для выбранных исходных данных. Данный подход включает в себя: разделение исходных данных на 10 приблизительно равных не пересекающихся множеств; проведение для каждого метода построения классификатора 10 вычислительных экспериментов, в которых по очереди 1 множество выступает в роли тестовой выборки данных, а остальные множества в роли тренировочного набора данных; расчет на основе вычислительных экспериментов для каждого метода средних показателей точности (Accuracy, Recall, Precision, Flscore, Kappa}и объединение их в сводную таблицу.
Для упрощения сравнения эффективности различных классификаторов предложено использование следующих средств визуализации: график ROC, график Precision-Recall, визуальная интерпретация матрицы ошибок, столбчатая диаграмма ошибок классификации и визуальная интерпретация матрицы точностных показателей классификатора.
На языке Python разработано программное обеспечение для сравнения эффективности методов построения классификаторов на выбираемом пользователем наборе данных. При этом реализована поддержка следующих методов: Logistic Regression (логистическая регрессия), Ada Boost Classifier (метод AdaBoost), Linear Discriminant Analysis (линейный дискриминантный анализ), Ridge Classifier (классификатор Ridge), Gradient Boosting Classifier (градиентный бустинг), Extra Trees Classifier, Random Forest Classifier (случайный лес), Light Gradient Boosting Machine, K Neighbors Classifier (K ближайших соседей), Decision Tree Classifier (деревья решений), Naive Bayes (наивный байесовский классификатор), SVM - Linear Kernel (метод опорных векторов), Quadratic Discriminant Analysis (квадратичный дискриминантный анализ).
На имеющемся наборе медицинских данных по диагнозам диабета, состоящем из 769 записей наилучшим методом построения бинарного классификатора оказался - Gradient Boosting Classifier. Точностные показатели классификатора, определенные на тестовой выборке данных : Accuracy=0.7726, AUC=0.8259, Recall=0.6705, Precision=0.7074, F1score=0.6827, Kappa=0.5063, MCC=0.5121.
Таким образом, все поставленные в работе задачи выполнены, и цель достигнута.