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