Механизм представляется совокупностью объектов встроенного языка 1С:Предприятие. Схема взаимодействия основных объектов механизма показана на рисунке.
Объекты, которые могут быть использованы на сервере 1С:Предприятие отображены на схеме в блоках с белым фоном, объекты, используемые только на клиенте помещены в блоки с темным фоном.
Настройка колонок анализа данных – совокупность настроек входных колонок анализа данных. Для каждой колонки указывается тип данных, содержащихся в ней, роль выполняемая колонкой, дополнительные настройки, зависящие от типа производимого анализа.
Параметры анализа данных – набор параметров производимого анализа данных. Состав параметров зависит от типа анализа. Например, для кластерного анализа указывается количество кластеров, на которые необходимо разбить исходные объекты, тип измерения расстояния между объектами и т.п.
Исходные данные – источник данных для анализа. В качестве источника данных может выступать результат запроса, область ячеек табличного документа, таблица значений.
Анализатор – объект, непосредственно выполняющий анализ данных. Объекту устанавливается источник данных, задаются параметры. Результатом работы данного объекта является результат анализа данных, тип которого зависит от типа анализа.
Результат анализа данных – специальный объект, содержащий информацию о результате анализа. Для каждого вида анализа предусмотрен свой результат. Например, результатом анализа данных – дерево решения будет объект типа РезультатАнализаДанныхДеревоРешений. В дальнейшем результат может быть выведен в табличный документ при помощи построителя отчета анализа данных, может быть выведен посредством программного доступа к его содержимому, может быть использован для создания модели прогноза. Любой результат анализа данных может быть сохранен для последующего использования.
Модель прогноза – специальный объект, позволяющий выполнять прогноз на основании входных данных. Тип модели зависит от типа анализа данных. Например, модель, созданная для анализа данных – поиск ассоциаций будет иметь тип МодельПрогнозаПоискаАссоциаций. Такая модель сможет выдавать прогнозы типа: т.к. данный покупатель купил заданный набор товаров, то с определенно вероятностью он должен купить и другой набор товаров. На вход модели прогноза передается источник данных для прогноза. Результатом является таблица значений, содержащая прогнозируемые значения.
Выборка для прогноза – таблица значений, результат запроса или область табличного документа, содержащая информацию, по которой необходимо построить прогноза. Например, для модели прогноза – поиск ассоциаций, выборка может содержать перечень продуктов документа продажи. Результат же работы модели может рекомендовать, какие товары можно еще предложить покупателю.
Настройка колонок выборки – набор специальных объектов, показывающих соответствие между колонками модели прогноза и колонками выборки прогноза. Например, колонки модели прогноза с именем «Товар» может соответствовать колонка выборки «Номенклатура».
Настройка колонок результата — позволяет управлять тем, какие колонки будут помещены в результирующую таблицу модели прогноза. Например, для поиска ассоциаций мы можем вывести в результат номенклатуру, которую скорее всего приобретет клиент и вероятность подобной покупки.
Результат работы модели – таблица значений состоящая из колонок, как указано в настройках результирующих колонок и содержащая прогнозируемые данных. Конкретное содержимое определяется типом анализа.
Построитель отчета анализа данных – объект, позволяющий выводить отчет о результате анализа данных. Кроме того, построитель отчета предоставляет специальные объект для связи с данными, с тем, чтобы позволить пользователю интерактивно управлять параметрами анализа, настройкой колонок источника данных, настроек колонок модели прогноза и т.п.
Типы анализа
Механизм позволяет выполнять следующие виды анализа:
Общая статистика
Поиск ассоциаций
Поиск последовательностей
Дерево решений
Кластерный анализ
Механизм анализа данных в 1С 8.2 и 8.3 упрощает работу разработчика по части выявления закономерностей на основании различных данных. Например, с помощью этого механизма можно отобразить товары, которые чаще всего покупаются вместе. Эту информацию можно использовать как для помощи в закупках, так и для напоминания менеджерам предприятия. Другой пример – построение прогноза по продажам на основании данных прошлого периода. Эта информация будет очень ценна для отдела закупок.
Это далеко не весь спектр применения механизма анализа данных в 1С, углубимся в его возможности подробнее.
Этот механизм представлен в системе 1С Предприятие 3 объектами системы:
Анализ данных – объект выполняющий анализ данных. Для него необходимо задать источник данных и необходимые параметры для анализа.
Результат анализа данных – объект, являющийся результатом работы анализа данных.
Модель прогноза – создается на основании результата анализа данных. Объект является конечным звеном в механизме анализа 1С и генерирует таблицу значений, которая содержит прогнозируемые значения.
Система 1С Предприятие может использовать разные типы анализа, рассмотрим их подробнее.
Общая статистика – этот тип анализа представляет собой простую статистическую выборку из источника данных. Пример применения – анализ продаж по номенклатуре за период. Результатом анализа станет информация о том, сколько было продано того или иного товара. Так же система рассчитает специфические поля – максимум, минимум, медиана, среднее, размах, стандартное отклонение, количество значений, количество уникальных значений, мода.
Поиск ассоциаций – тип анализа предназначен для поиска часто встречающихся вместе комбинаций. Очень хорошо подходит для нахождения часто покупаемой вместе номенклатуры. В результате анализа система сгенерирует следующую информацию: информацию об обработанных данных, ассоциативные группы, ассоциативные правила по которым сопоставлены группы.
Поиск последовательностей – анализ позволяющий выявить закономерности в анализируемых данных и предложить дальнейших прогноз. В результате выполнения анализа система отобразит информацию о возможности возникновения тех или иных событий в процентном выражении.
Кластерный анализ – позволяет провести анализ, с помощью которого можно распределить какую либо информацию по группам(кластерам) на основании данных из источника. Такая информация может быть полезна, например, при классификации покупателей.
Дерево решений – с помощью данного вида анализа можно получить структуру классифицирующих правил в виде иерархического дерева. Этот тип анализа помогает связать причины с возникновением тех или иных событий. Например, проанализировав определенное количество неудачных сделок, можно получить причину потери клиентов.
Рассмотрим использования функционала Анализ данных на примере программного кода для поиска часто продаваемой номенклатуры совместно типовой конфигурации Управление торговлей 11. Данный программный код записывает информацию о часто продаваемых товаров совместно в регистр «НоменклатураПродаваемаяСовместно».
Анализ = Новый АнализДанных; Анализ.ТипАнализа = Тип("АнализДанныхПоискАссоциаций"); Анализ.ИсточникДанных = ИсточникДанных; //источник данных – вся номенклатура из документов «Реализация товаров и услуг» Анализ.НастройкаКолонок.Документ.ТипКолонки = ТипКолонкиАнализаДанныхПоискАссоциаций.Объект; Анализ.НастройкаКолонок.Номенклатура.ТипКолонки = ТипКолонкиАнализаДанныхПоискАссоциаций.Элемент; Анализ.НастройкаКолонок.Характеристика.ТипКолонки = ТипКолонкиАнализаДанныхПоискАссоциаций.Элемент; Анализ.Параметры.МинимальныйПроцентСлучаев.Значение = Константы.МинимальныйПроцентСлучаевНоменклатурыПродаваемойСовместно.Получить(); Анализ.Параметры.МинимальнаяЗначимость.Значение = Константы.МинимальнаяЗначимостьНоменклатурыПродаваемойСовместно.Получить(); Анализ.Параметры.МинимальнаяДостоверность.Значение = Константы.МинимальнаяДостоверностьНоменклатурыПродаваемойСовместно.Получить(); Анализ.Параметры.ТипОтсеченияПравил.Значение = ТипОтсеченияПравилАссоциации.Покрытые; РезультатАнализа = Анализ.Выполнить(); Набор = РегистрыСведений.НоменклатураПродаваемаяСовместно.СоздатьНаборЗаписей(); Набор.Отбор.ДобавленоАвтоматически.Значение = Истина; Набор.Отбор.ДобавленоАвтоматически.Использование = Истина; Набор.Отбор.ВариантАнализа.Значение = ВариантАнализа; Набор.Отбор.ВариантАнализа.Использование = Истина; ТаблицаНабора = Набор.ВыгрузитьКолонки(); ТаблицаНабора.Индексы.Добавить("НоменклатураПредпосылка,|ХарактеристикаПредпосылка,|НоменклатураСледствие,|ХарактеристикаСледствие");Для Каждого Правило Из РезультатАнализа.Правила Цикл Если Правило.Предпосылка.Количество() = 1 Тогда Для Каждого Предпосылка Из Правило.Предпосылка Цикл Для Каждого Следствие Из Правило.Следствие Цикл Если ТаблицаНабора.НайтиСтроки(Новый Структура( "НоменклатураПредпосылка, |ХарактеристикаПредпосылка, |НоменклатураСледствие, |ХарактеристикаСледствие", Предпосылка.Номенклатура.Значение, Предпосылка.Характеристика.Значение, Следствие.Номенклатура.Значение, Следствие.Характеристика.Значение )).Количество() = 0 Тогда Запись = ТаблицаНабора.Добавить(); Запись.ВариантАнализа = ВариантАнализа; Запись.ДобавленоАвтоматически = Истина; Запись.НоменклатураПредпосылка = Предпосылка.Номенклатура.Значение; Запись.ХарактеристикаПредпосылка = Предпосылка.Характеристика.Значение; Запись.НоменклатураСледствие = Следствие.Номенклатура.Значение; Запись.ХарактеристикаСледствие = Следствие.Характеристика.Значение; Запись.ПроцентСлучаев = Правило.ПроцентСлучаев; Запись.КоличествоСлучаев = Правило.КоличествоСлучаев; КонецЕсли; КонецЦикла; КонецЦикла; КонецЕсли; КонецЦикла; Набор.Загрузить(ТаблицаНабора); Набор.Записать();