Анализ данных и прогнозирование. Дерево решений
Общая информация о механизме Анализа данных и прогнозирования общего объекта конфигурации АнализДанных можно посмотреть здесь
Анализ = Новый АнализДанных;
В механизме анализа данных и прогнозирования реализовано несколько типов анализа данных:
- общая статистика,
- поиск ассоциаций,
- поиск последовательностей,
- кластерный анализ,
- дерево решений.
В данной статье рассмотрим пример типа анализа
дерево решений
Анализ.ТипАнализа = Тип("АнализДанныхДеревоРешений");
С помощью данного типа анализа можно получить причинно-следственную иерархию условий, приводящую к определенному решению. Например, получить дерево условий, по которому (с определенной долей вероятности) можно понять причину расторжения договоров с клиентами компании, определения условий, влияющих на вариант заключаемого договора. Можно проводить «профилирование» менеджеров компании по различным видам ее клиентов и т. п.
Схематично процесс проведения анализа Дерево решений можно представить следующим образом:
С точки зрения данного типа анализа колонки источника можно разделить на следующие:
- НеИспользуемая,
- Входная,
- Прогнозируемая.
Используемые параметры анализа:
- МинимальноеКоличествоСлучаев ‑ минимальное количество элементов в узле;
- МаксимальнаяГлубина ‑ максимальная глубина дерева;
- ТипУпрощения ‑ тип упрощения дерева решений.
В результате проведенного анализа можно получить:
- дерево решений,
- ошибки классификации.
Для проведения анализа может использоваться фрагмент кода, аналогичный приведенному ниже:
&НаКлиенте
Процедура ДеревоРешений(Команда)
Результат = АнализДеревоРешений();
КонецПроцедуры
&НаСервереБезКонтекста
Функция АнализДеревоРешений()
Анализ = Новый АнализДанных;
Анализ.ТипАнализа = Тип("АнализДанныхДеревоРешений");
Группа = Справочники.Контрагенты.НайтиПоНаименованию("Юридические лица");
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
|Контрагенты.Ссылка,
|Контрагенты.КоличествоРозничныхТочек,
|Контрагенты.КоличествоАвтомобилей,
|Контрагенты.ВремяРаботыОрганизации,
|Контрагенты.ВремяЗаключенияДоговора,
|Контрагенты.ВидДоговора,
|Контрагенты.ПрекращениеОтношений
|ИЗ
|Справочник.Контрагенты КАК Контрагенты
|ГДЕ
|(Не Контрагенты.ЭтоГруппа И Контрагенты.Родитель = &Родитель)";
Запрос.УстановитьПараметр("Родитель", Группа);
Анализ.ИсточникДанных = Запрос.Выполнить();
Анализ.Параметры.ТипУпрощения.Значение = ТипУпрощенияДереваРешений.НеУпрощать;
РезультатАнализа = Анализ.Выполнить();
Построитель = Новый ПостроительОтчетаАнализаДанных();
Построитель.Макет = Неопределено;
Построитель.ТипАнализа = Тип("АнализДанныхДеревоРешений");
ТабДок = Новый ТабличныйДокумент;
Построитель.Вывести(РезультатАнализа, ТабДок);
Возврат ТабДок;
КонецФункции
В результате проведения анализа получено следующее дерево решений:
Данное дерево можно представить в виде следующей схемы:
Ошибки классификации показывают, в каких случаях полученные правила расходятся с действительностью (исходной выборкой данных):
Исходя из приведенных данных, видно, что ошибок в полученной классификации нет, то есть данные в фактической выборке совпадают с данными классификации.
Предыдущий пример получен, исходя из значения НеУпрощать параметра анализа ТипУпрощения. Данное значение параметра задано программно в примере выше. Если установить значение Упрощать параметра, дерево решений примет такой вид:
Упрощение дерева заключается в том, что по определенным правилам (формулам, которые будут рассмотрены ниже) узлы дерева превращаются в листья (отсекается лишнее ветвление).
При принятии решения о том, будет ли произведено преобразование узла в лист, учитываются следующие показатели:
- Ошибок ‑ количество ошибок в узле;
- ОшибокДочерних ‑ количество ошибок в дочерних узлах;
- Листов ‑ количество листов в узле;
- Случаев ‑ количество случаев.
В нашем примере для узлов Время работы организации условие выполняется (0,5 < 1).
В связи с использованием упрощений появились и ошибки в классификации, что показано в результате анализа:
Например, существует один случай, когда в реальной выборке данных было значение Прекращение контрагентом, а по полученной классификации должно быть значение Не прекращены и т. п.