УДК 519.8 (075.8) Дата подачи статьи: 15.02.16
Б01: 10.15827/0236-235Х.114.011-015
АЛГОРИТМ КЛАССИФИКАЦИИ, ОСНОВАННЫЙ НА ПРИНЦИПАХ СЛУЧАЙНОГО ЛЕСА, ДЛЯ РЕШЕНИЯ ЗАДАЧИ ПРОГНОЗИРОВАНИЯ
(Работа выполнена за счет частичного финансирования по гранту РФФИ № 15-07-05523 и ГЗ «Организация проведения научных исследований» 213.01ЮПНИ 012)
С.Б. Картиев, аспирант, mlearningsystems@gmail.com; В.М. Курейчик, д.т.н.., профессор, kur@fgnsfedu.ru (Инженерно-технологическая академия Южного федерального университета, Некрасовский пер., 44, г. Таганрог, Ростовская область, 347928, Россия)
Работа посвящена методам построения ансамблей моделей для решения задачи прогнозирования. Одним из основных этапов прогнозирования является классификация. На данном этапе производится основная логика прогностических моделей. Описывается метод классификации с использованием методов случайного леса. Отмечены плюсы и минусы использованных методов. В ходе работы обосновывается выбор данного метода для применения в разработанной системе прогнозирования. Разработан алгоритм построения случайного леса на основе методов комбинирования элементов принятия решений и обучения сформированной структуры данных с использованием модифицированного алгоритма обучения случайного леса (MRF). Принципиальным отличием данного метода является нахождение оптимального класса, к которому относится объект, рассматриваемый для задачи прогнозирования. Описывается программная реализация на языке Java с использованием принципов обобщенного программирования и приводится описание основной структуры данных в виде UML-диаграммы. Также определено место разработанного модуля в системе диагностирования сложных технических систем по поддержанию работоспособности программной системы с использованием принципов моделирования, основанных на темпоральной логике. Проведены экспериментальные исследования, показавшие эффективность описываемого метода по сравнению с существующими. Качество классификации улучшилось примерно на 5 % по сравнению с предыдущими опытами.
Ключевые слова: классификация, случайный лес, алгоритм, прогнозирование, временной автомат.
В условиях современного общества актуальна задача получения правильных прогнозов о поведении сложных систем в будущем на основании их прошлого состояния. Для решения данной задачи обычно применяют методы машинного обучения, которые анализируют имеющиеся данные об истории поведения сложных технических систем и принимают во внимание примеры предыдущих прогнозов как для первоначального формирования схем обучения, так и для улучшения их функциональных характеристик. Одной из фундаментальных проблем задачи машинного обучения является проблема классификации, имеющая сходство с задачей прогнозирования. При решении задач как классификации, так и прогнозирования используется двухэтапный процесс: создание модели на основе обучающей выборки и реализация модели для предсказания значений зависимой переменной [1]. Задача прогнозирования требует разработки быстрых алгоритмов анализа данных. Необходима замена существующих методов классификации на более эффективные в связи с требованием повышения точности работы разрабатываемой системы. На замену существующим методам приходит алгоритм машинного обучения «случайный лес» (далее №). Он основан на построении ансамбля деревьев решений, где каждый элемент строится на выборке, которая получается при помощи бустре-пинга - метода исследования распределения статистик распределений вероятности исходной обучающей выборки [2]. Существующие алгоритмы недостаточно эффективны для использования в разрабатываемой системе, поэтому для выработки
оптимального решения была введена нечеткая экспертная компонента. На основе метода RF разработан алгоритм классификации, позволяющий улучшить эффективность нахождения классифицированного решения.
Описание метода классификации
Приведем постановку задачи классификации. Имеется множество классов F = {/1, f2, ...,/П}, где п - мощность данного множества, характеризующая число классов, допустимых для данной задачи [3]. Пространство признаков класса является Ж-мер-ным векторным пространством. Для некоторого вектора лт={х1, х2, ..., хп}т необходимо провести процедуру принятия решения о принадлежности данного вектора к некоторому классу из заданного множества F [4]. Для решения данной задачи будем использовать алгоритм ЯР. Этот алгоритм был представлен Лео Брейманом и Адель Катлер [5]. Он основан на построении ансамбля классификационно-регрессионных деревьев, каждое из которых строится по выборке, получаемой из исходной обучающей выборки с использованием бэггинга - метода формирования ансамблей классификаторов [6]. Этот метод позволяет решить как проблему классификации, так и проблему регрессии. При помощи ЯР также можно производить отбор предикторов и поиск отклонений при анализе данных. ЯР вместе с бэггингом представляют собой ансамбль моделей классификаторов. У большинства методов формирования ансамблей в задачах машинного обучения имеются общие черты [7]:
- конструируются несколько различающихся прогнозных моделей из адаптированных вариантов элементов обучающей выборки;
- комбинируются предсказания с использованием различных методов, включая простое усреднение или взвешенное голосование.
Основной идеей RF является объединение результатов работы базовых классификаторов и выделение неточностей при их работе. Приведем основные шаги работы модифицированного, разработанного авторами алгоритма MRF. В алгоритме используется методика Дональда Кнута «грамотное программирование» [8] для описания функционала в виде кода и документирования. Функция Ensemble RandomForest(){ For b = 1 to B { Вывести образец Z размера N из обучающей выборки.
Увеличиваем дерево Tb на данные, полученные при помощи бэггинга, далее рекурсивно повторяя следующие шаги для каждой вершины дерева, пока не будет достигнут nmin.
Выбрать m переменных при помощи unifoim_distribution из p переменных. Выбрать лучшую переменную среди m. Разделить узел на два дочерних узла.
}
Return Ансамбль деревьев {Tb }f .
}
где B - количество деревьев. Алгоритм позволяет построить ансамбль деревьев решений для выработки наиболее качественного решения.
Для выполнения прогнозирования для следующей точки X оценка регрессии высчитывается по 1 B
формуле fB (х) =— 2T (х). Пусть Cb(x) - класс
B b=i
прогнозирования b-го дерева из ансамбля деревьев. Тогда оценка качества классификации будет рассчитываться по формуле CB (х) = {Cb (х)}в .
Основным недостатком RF является большой размер структуры данных. Это приводит к большому расходу памяти. Временная сложность алгоритма - O(n * K), где K - количество деревьев. Достоинство применения MRF в способности к парал-лелизации вычислений. Проектируя класс на языке Java, получим следующую структуру: Class ModRandomForest {
BoolTrain(); //Обучение дерева FloatPredict(); //Прогнозировать FloatFuzzyPredict(); //Нечеткий прогноз
}
где BoolTrain() - функция обучения самого RF; FloatPredict(inputData) позволяет на основе входных данных прогнозировать значения. Также присутствует функция нечеткого прогноза, называемая FloatFuzzyPredict().
Рассмотрим пример использования алгоритма случайного леса на примере системы статистического анализа и визуализации данных, которая состоит из языка программирования R, большого
набора функций и алгоритмов обработки данных.
На вход алгоритма подаются некоторые данные (в данном случае обобщенное значение) в виде таблицы (табл. 1). Каждая колонка имеет соответствие с некоторым параметром, а строка - с некоторым элементом данных.
Таблица 1
Пример формы подачи данных
Table 1
An example of a data input form
X0 X1 X2 X3 Xn
1 0 0 0 0 0
2 1 0 1 1 0
3 1 0 1 1 0
0 0 0 0 0
M-1 1 0 1 1 0
m 0 0 0 0 0
Например, данная таблица может определять состояние модулей информационной системы, где 1 - признак отсутствия ошибок; 0 - признак наличия сбоев; N - количество значений во времени; m - количество модулей в системе.
Можно случайным образом выбрать некоторое количество столбцов и строк и построить по ним дерево принятия решений (ДПР). ДПР является одним из основных средств поддержки принятия решений. Оно используется как основа для рекурсивного создания случайного леса, состоящего из деревьев решений и экспертной компоненты, которая управляет всеми ансамблями моделей. Далее, при повторении процедуры построения дерева принятия решения N раз, получаем множество деревьев. Принцип формирования деревьев случаен, что позволяет получить значения в глобальной области видимости [9].
Пример построения ансамблей деревьев решений с помощью этого алгоритма позволяет сделать вывод о целесообразности выбора данного алгоритма для классификации, являющейся одним из основных методов решения задачи прогнозирования.
Алгоритм обучения MRF для выработки оптимального решения
Проблемы классификации могут быть рассмотрены как задачи оптимизации для нахождения лучшей целевой функции, что представляет собой прогнозируемое партнерство определенной области данных.
Для решения данной задачи будем использовать алгоритм случайного леса.
1. Имеется определенная обучающая выборка, состоящая из элементов, вес которых в корневой вершине равен 1.
2. В любом корне N, который может быть расширен, вычислить количество образцов каждого класса. Классы распределены по частям или ответвлениям.
3. Выбрать подходящие образцы из обучающей выборки.
4. На каждой вершине вариантов поиска
- выбрать некоторый критерий, который является атрибутом для разделения узла;
- выполнить функцию обучения;
- выбрать искомое значение атрибута, в котором есть подходящий критерий по информационному наполнению.
5. Разделить N на поддеревья в соответствии с возможными выводами атрибута, выделенного на предыдущем шаге.
6. Повторять шаги 2-5 до тех пор, пока поиск в дереве не будет выполнен.
Задача прогнозирования такова: дан временной ряд значений параметров исследуемого процесса, например, работы программной системы [10]:
Х0, Х1, ..., Хп, где XI еЯ; (1)
х+а (ж)=дхь ..., Х{; м>). (2)
Формула (2) является моделью временного ряда, где й= 1, ..., Б, Б - горизонт прогнозирования; Ж - вектор параметров модели; х - единица статистического материала [11]. Иными словами, можно сказать, что интеллектуальная система получает в реальном времени некоторую последовательность числовых значений исходов. При этом системе не предлагается описание процесса генерации значений исходов [12]. Разработанный алгоритм обучения МИР решает задачу классификации и регрессии с минимальным процентом ошибок. Это позволяет применять данный алгоритм в задаче прогнозирования.
Применение разработанного алгоритма для прогнозирования временных рядов
Вход: временной ряд предыдущего состояния системы определенной длины Ь.
Выход: прогнозируемое значение.
Для каждой итерации прогнозирования временного ряда Т£
- генерируем обучающую выборку; обучаем векторы X и У;
- применяем алгоритм для вычисления прогнозируемого значения и получаемое значение;
- временно сохраняем текущее состояние временного ряда [13].
Представленное решение задачи прогнозирования применяется в задаче анализа работоспособности программной системы в реальном времени. Большинство программных систем, работающих в данном режиме, требуют поддержки работоспособности в течение всего рабочего времени. Подсистема прогнозирования позволяет предотвратить выход из строя различных подсистем или предупредить пользователя и выполнить дополнительные действия по обеспечению резервного копирования и корректности завершения остальных подсистем, зависящих от сбойной. Для моделирования
рабочего процесса программной системы используется дискретная темпоральная логика (DTL). Один из примеров DTL - RTTL (Real-Time Temporal Logic). Главной идеей RTTL является представление вычисления в виде последовательности состояний, в которой единственный временной промежуток рассчитывается как переход из одного состояния в другое [14]. В качестве спецификации для реализации RTTL используются временные автоматы. Временным автоматом является конечный автомат, реализующий также поддержку множества значений, выражающихся в часах. Состояние временного автомата состоит из текущей позиции автомата и текущих значений множества часов [15]. То есть, описывая временной автомат, можно выделить следующие характеристики: временной автомат содержит конечное множество состояний управления, а также таймеры, которые принимают действительные значения и связаны с поведением системы.
Разработка ПО поддержки структуры данных «случайный лес»
Разработаны структура данных и программное средство поддержки данной структуры для его применения в системе прогнозирования. Программное средство имеет определенный функционал:
- построение случайного леса на основе обучающей выборки;
- обучение классификаторов [16];
- решение задачи прогнозирования.
Программное средство разработано при помощи языка программирования Java [17].
Рассмотрим пример описания свойства класса private float regression_accuracy. Знак private является атрибутом, который характеризует элемент, доступный только внутри класса; regression_accu-racy - наименование свойства класса; float - обозначение фундаментального типа данных свойства в нотации используемого языка высокого уровня.
Для обеспечения осуществления принципов инкапсуляции данных доступ к свойствам класса осуществляется при помощи методов (функций): Private float getRegression_accuracy() - метод, выдающий значение свойства класса regression_accu-racy, Public void setRegression_accuracy() - метод, задающий значение свойства класса.
Приведем класс RTree, где инкапсулированы все свойства класса: public class RTree { private int maxDepth; private int minSampleCount; private float regressionAccuracy; private boolean useSurrogates; private int maxCategories; private float priors; private int maxNumOfF orest; private float accuracy;
public int getMaxDepth() { return maxDepth;
}
public void setMaxDepth(int maxDepth) { this.maxDepth = maxDepth;
}
public int getMinSampleCount() { return minSampleCount;
}
public void setMinSampleCount(int minSampleCount) { this.minSampleCount = minSampleCount;
}
public float getRegressionAccuracy() { return regressionAccuracy;
}
public void setRegressionAccuracy(float regression Accuracy) {
this.regressionAccuracy = regressionAccuracy;
}
public boolean isUseSurrogates() { return useSurrogates;
}
public void setUseSurrogates(boolean useSurrogates) { this.useSurrogates = useSurrogates;
}
public int getMaxCategories() { return maxCategories;
}
public void setMaxCategories(int maxCategories) { this.maxCategories = maxCategories;
}
public float getPriors() { return priors;
}
public void setPriors(float priors) { this.priors = priors;
}
public int getMaxNumOfF orest() { return maxNumOfF orest;
}
public void setMaxNumOfF orest(int maxNumOfF orest) { this.maxNumOfForest = maxNumOfForest;
}
public float getAccuracy() { return accuracy;
}
public void setAccuracy(float accuracy) { this.accuracy = accuracy;
}
}
Экспериментальные исследования
Испытания проводились на основе разработанного ПО с использованием открытых тестовых выборок. Основным критерием исследования является классификация. Как видим из таблицы 2, классификация с использованием разработанных моделей случайных лесов достаточно эффективна.
Согласно полученным результатам (эксперименты 1-4, 6, 7), процент правильности классификации объектов довольно высок. График на
рисунке говорит о том, что лишь при большом размере тестовой выборки процент некорректно классифицируемых объектов начинает расти.
Таблица 2
Экспериментальные исследования
Table 2
Experimental research
Номер Размер Корректно Некор- Сред-
экспе- тестовой классифи- ректно клас- няя аб-
ри- выборки цируемые сифицируе- солют-
мента (элемен- объекты, мые объ- ная
тов) % екты, % ошибка
1 100 100 0 0.1707
2 100 100 0 0.1547
3 100 100 0 0.1726
4 150 100 0 0.0142
5 683 99.8536 0.1464 0.0097
6 575 100 0 0.1891
7 599 100 0 0.0063
Данный график основывается на данных, полученных по результатам экспериментов, где ось X -значение элемента временного ряда, а ось У - процент правильно классифицированных объектов.
100,05 100 99,95 99,9 99,85 99,8 99,75
1 2 3 4 5 6 7
^—Количество правильных классификаций
График экспериментальных исследований An experimental research diagram
По итогам работы можно сделать вывод об эффективности классификатора в виде случайного леса. Произведено исследование классификационных структур данных. Описан алгоритм случайного леса. Разработан модифицированный алгоритм формирования случайного леса. Разработано программное средство MRFapplication на языке программирования Java. Проведены экспериментальные исследования, показавшие эффективность данного способа классификации и возможность его применения в реальных задачах прогнозирования.
Литература
1. Чубукова И.А. Data Mining: учеб. пособие. М.: ИНТУИТ. БИНОМ. Лаборатория знаний, 2006. 382 с.
2. Чистяков С.П. Случайные леса: обзор // Тр. Карельского науч. центра РАН. 2013. Вып. 1. С. 117-136.
3. Tou J.T., Gonsalez R.C. Pattern Recognition Principes. Addison-Wesley, 1977, 377 p.
4. Потапов A.C. Распознавание образов и машинное восприятие: общий подход на основе принципа минимальной длины описания. СПб: Политехника, 2007. 548 с.
5. Breiman L. Random Forests. Machine Learning, 2001, no. 45, рр. 5-32.
6. Павлов Ю.Л. Асимптотическое распределение максимального объема дерева в случайном лесе // Теория вероятностей и ее применения. 1977. Т. 22. № 3. C. 523-533.
7. Hastie Т., Tibshirani R., Friedman J. The Elements of Statistical Learning: Data Mining, Inference, and Prediction. 2nd ed., Springer-Verlag, 2009, 746 p.
8. Knuth D. Art of Computer Programming, vol. 1: Fundamental Algorithms. 3rd ed. Addison-Vesley, 1997, 736 p.
9. Курейчик В.М. Особенности построения систем поддержки принятия решений // Изв. ЮФУ: Технич. науки. 2012. № 7. С. 92-98.
10. Картиев С.Б., Курейчик В.М., Писаренко В.И. Прогнозирование временных рядов для анализа техногенных процессов // Актуальные проблемы гидролитосферы (диагностика, прогноз, управление, оптимизация и автоматизация): сб. докл. III национ. научн. форума «Нарзан-2015». Пятигорск: РИА-КМБ. 2015. С. 323-331.
11. Картиев С.Б., Курейчик В.М., Мартынов А.В. Параллельный алгоритм прогнозирования коротких временных рядов
// Конгресс по интеллект. сист. и информ. технологиям IS&IT' 15: сб. тр. M.: Физматлит, 2015. С. 27-47.
12. Вьюгин В.В. Математические основы теории машинного обучения и прогнозирования. М.: Изд-во МЦНМО, 2013. 387 с.
13. Курейчик В.М., Картиев С.Б. Методы и алгоритмы решения задачи прогнозирования временных рядов // Информатика, вычислительная техника и инженерное образование. 2014. № 5 (20). С. 1-7.
14. Кондратьева О.В., Евтушенко Н.В., Кавалли А.Р. Параллельная композиция конечных автоматов с тайм-аутами // Вестн. Томского гос. ун-та: Управление, вычислительная техника и информатика. 2014. № 2 (27). С. 73-81.
15. Вельдер С.Э., Лукин М.А., Шалыто А.А., Яминов Б.Р. Верификация автоматных программ. СПб: Наука, 2011. 244 с.
16. Breiman L., Friedman J.H., Olshen R.A., and Stone C.J. Classification and Regression Trees, Wadsworth, Belmont, CA, 1984, 368 p.
17. Fauler M. UML Distilled: A Brief Guide to the Standard Object Modeling Language. Addison-Wesley, 1997. 192 p.
DOI: 10.15827/0236-235X.114.011-015 Received 15.02.16
CLASSIFICATION ALGORITHM BASED ON RANDOM FOREST PRINCIPES FOR A FORECASTING PROBLEM
(The work has beenpartialy supported by RFBR, grant no. 15-07-05523 and Government contracts "Organization of research activities" 213.01/OnHH 012) Kartiev S.B., Postgraduate Student, mlearningsystems@gmail.com; Kureichick V.M., Dr.Sc. (Engineering), Professor, kur@tgn.sfedu.ru (Academy of Engineering and Technology Southern Federal University, Nekrasovsky Lane 44, Taganrog, 347928, Russian Federation)
Abstract. This article considers the methods of constructing ensembles of models to solve the forecasting problem. One of the major forecasting stages is classification. This stage includes the basic logic of predictive models. It describes the "random forest" classification method. It also presents the pros and cons of the methods used. During the research the authors justify the choice of this method for using in the developed forecasting system. The paper presents an algorithm for random forest construction based on a combination of decision-making elements and training methods for generated data structures using a modified random forest (MRF) training algorithm. The fundamental difference of this method is finding the optimal class which possesses the object in question for a forecasting task. The paper describes the software implementation in Java using the principles of generic programming. It also describes the basic data structure as an UML-diagram. The article defines the place of the developed module in the diagnostic system of complex technical systems for software system maintenance using modeling principles based on temporal logic. The experimental research showes the efficiency of the described method compared to existing ones. Classification quality has improved at approximately 5 % compared to previous experiments.
Keywords: classification, random forest, algorithm, prediction, temporal logic.
References
1. Chubukova I.A. Data Mining. Study Guide. Moscow, BINOM Laboratoriya Znany, INTUIT Publ., 2006, 382 p.
2. Chistyakov S.P. Random Forests: the Overview. Trudy Karelskogo nauchnogo centra RAN [Proc. of Karelsky Scientific Center RAS]. 2013, 1st ed., pp. 117-136 (in Russ.).
3. Tou J.T., Gonsalez R.C. Pattern Recognition Principes. Addison-Wesley Publ., 1977.
4. Potapov A.S. Raspoznavanie obrazov i mashinnoe vospriyatie: obshchy podkhod na osnoveprintsipa minimalnoy dliny [Pattern Recognition and Machine Vision: a Common Approach Based on Minimal Length Principle]. St.-Petersburg, Polytekhinka Publ., 2007, 548 p.
5. Breiman L. Random Forests. Machine Learning. 2001, no. 45, pp. 5-32.
6. Pavlov Yu.L. Asymptotic distribution of maximum tree capacity in a random forest. Teoriya veroyatnostey i ee prilozheniya [The Theory of Probability and its Applications]. 1977, vol. 22, no. 3, pp. 523-533 (in Russ.).
7. Hastie T., Tibshirani R., Friedman J. The Elements of Statistical Learning: Data Mining, Inference, and Prediction. 2nd ed., SpringerVerlag Publ., 2009, 746 p.
8. Knuth D. Art of Computer Programming. Vol. 1: Fundamental Algorithms. 3rd ed. Addison-Vesley Publ., 1997, 736 p.
9. Kureichik V.M. Features of decision support systems construction. Izv. YUFU: Tekh. nauki [Izvestiya SFedU: Engineering Science]. 2012, no. 7, pp. 92-98 (in Russ.).
10. Kartiev S.B., Kureichick V.M., Pisarenko V.I. Time Series Forecasting for technological processes. Aktualnye problemy gidrolitosfery [Current Issues of Hydrolithosphere]. 2015, pp. 323-331.
11. Kartiev S.B., Kureichick V.M., Martynov A.V. Parallel algorithm for short time-series forecasting. Trudy kongr. po intellektualnym sistemam i informatsionnym tekhnologiyam"IS&IT'15" [Proc. of the Congress on Intelligent Systems and Information Technologies "IS&IT15"]. Fizmatlit Publ., 2015, pp. 27-47 (in Russ.).
12. Vyugin V.V. Matematicheskie osnovy teorii mashinnogo obucheniya i prognozirovaniya [Mathematical Basis of Machine Learning Theory and Forecasting]. MTsNMO Publ., 2013, 387 p.
13. Kureichick V.M., Kartiev S.B. Methods and algorithms for time-series forecasting. Informatika, vychislitelnayatekhnikai inzhenernoe obrazovanie [Computer Science, Computer Engineering and Engineering Education]. 2014, no. 5 (20), pp. 1-7 (in Russ.).
14. Kondrateva O.V., Evtushenko N.V., Kavalli A.R. Parallel composition of finite automata with timeouts. Bulletin Tomskogo gos. unta: Upravlenie, vychislitelnaya tekhnika i informatika [Control, computers and computer science]. 2014, no. 2 (27), pp. 73-81 (in Russ.).
15. Velder S.E., Lukin M.A., Shalyto A.A., Yaminov B.R. Verifikatsiya avtomatnykhprogramm [Automata-based Program Verification] St.-Petersburg, Nauka Publ., 2011, 244 p.
16. Breiman L., Friedman J.H., Olshen R.A., Stone C.J. Classification and Regression Trees. Wadsworth, Belmont, CA, 1984.
17. Fauler M. UML Distilled: A BriefGuide to the Standard Object Modeling Language. Addison-Wesley Publ., 1997, 192 p.