Разработка системы индивидуального анализа данных (ИАД) производственного предприятия

Аналитический обзор методов и технологий интеллектуального анализа данных (ИАД). Анализ требований к функциональным характеристикам, описание алгоритмов. Разработка системы ИАД для повышения эффективности принятия решений производственного предприятия.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 25.06.2017
Размер файла 1,3 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru

ОГЛАВЛЕНИЕ

  • Введение
  • Глава 1. Обзор технологий решения задач интеллектуального анализа
    • 1.1 Обзор систем интеллектуального анализа данных
    • 1.2 Аналитический обзор методов и технологий интеллектуального анализа данных
    • 1.3 Выводы по первой главе
  • Глава 2. Анализ предметной области и проектирование компонентов системы
    • 2.1 Формулирование требований к функциональным характеристикам
    • 2.2 Описание алгоритмов интеллектуального анализа данных
      • 2.2.1 Нейронная сеть
      • 2.2.2 Алгоритм k-means
      • 2.2.3 Линейная регрессия
    • 2.3. Проектирование системы интеллектуального анализа данных
    • 2.4 Экономическое обоснование разработки проекта
      • 2.4.1 Оценка трудоемкости разработки
      • 2.4.2 Оценка эффективности разработки
    • 2.5 Выводы по второй главе
  • Глава 3. Разработка программных компонентов
    • 3.1 Разработка модуля выявления зависимости производственных данных
    • 3.2 Разработка модуля прогнозирования электропотребления
    • 3.3 Разработка модуля анализа производственных данных
    • 3.4 Выводы по третьей главе
  • Заключение
  • Список сокращений и условных обозначений
  • Библиографический список
  • Приложение А. Диаграммы последовательностей
  • Приложение Б. Значения поправочных коэффициентов
  • Приложение В. Техническое задание
  • Приложение Г. Методика испытаний
  • Приложение Д. Руководство пользователя
  • Приложение Е. Программный код
  • ВВЕДЕНИЕ
  • Интеллектуальный анализ данных (далее - ИАД) производственного предприятия одна из самых актуальных тем IT сферы современного мира. В процессе любой деятельности, например, при управлении производством или банковским делом, человек непрерывно собирает и накапливает различного типа данные. Обработка, собранных данных, производится при помощи высокопроизводительных компьютерных систем, которые стали неотъемлемой частью жизнедеятельности любого предприятия, будь то огромная корпорация или же небольшая компания.

Однако сам по себе необработанный набор данных не несет никакой ценности для предприятия, он требует корректной трансформации в полезную для принятия важных решений форму. В этом случае возникает проблема, поскольку даже самый натренированный человеческий ум профессионального аналитика не способен своевременно анализировать столь огромные информационные потоки. Автоматизация ИАД способна решить данную проблему и привести информацию в понятный для пользователя вид.

Во время изучения степени разработанности проблемы были рассмотрены различные системы интеллектуального анализа больших данных. В основном, данные системы предназначены для работы в областях, не связанных с производством, примерами подобных систем являются Prestima [1], FALCON (HNC Software, Inc.), Классификатор дебиторских счетов (Internal Revenue Service), Маркетинговые исследования (Dickinson Direct) [2].Такие системы решают проблемы, связанные с маркетинговыми и финансовыми исследованиями. Однако существуют и такие системы, которые были созданы для улучшения работы производственного предприятия - это SAS® Enterprise Miner™[3], StatSoft [4]. Их недостаток связан с высокой стоимостью продукта. Кроме того, большинство существующих приложений интеллектуального анализа больших объемов данных не обладает гибкостью, что может решить только открытость кода. Соответственно, разработка доступной системы автоматизированного интеллектуального анализа является актуальной задачей.

Объектом исследования данной работы является процесс интеллектуального анализа больших объемов данных производственного предприятия, а предметом - методы, алгоритмы и технологии интеллектуального анализа больших объемов данных производственного предприятия. интеллектуальный алгоритм решение предприятие

Целью исследования является разработка системы ИАД производственного предприятия.

Задачи данной работы:

1. Провести обзор реальных проблем производственных предприятий, которые в качестве инструмента для повышения эффективности принятия решений используют системы ИАД.

2. Выбрать определенную область производственного предприятия, для увеличения эффективности работы которой будут применяться методы ИАД.

3. Разработать структуру алгоритмов ИАД производственного предприятия, которая будет реализована в приложении.

4. Реализовать систему ИАД для выбранного производственного предприятия.

Для решения поставленных задач были выбраны следующие методы: объектно-ориентированное моделирование на языке графического описания UML (Unified Modeling Language), методы ИАД. Достижение выбранной цели происходит на базе производственного предприятия.

Результаты данной работы будут нести практическую значимость для производственного предприятия. Их использование позволит увеличить скорость обработки больших объемов данных (а в некоторых случаях сделать ее возможной), а также найти решения таким проблемам, решение которых невозможно без анализа исторических наборов данных.

Работа состоит из трех глав. Первая глава посвящена анализу существующих программных решений выбранной проблемы и технологий ИАД, которые будут применяться для разработки системы для производственного предприятия. Во второй главе содержится описание предметной области и основных этапов проектирования. Третья глава описывает основные стадии разработки.

ГЛАВА 1. ОБЗОР ТЕХНОЛОГИЙ РЕШЕНИЯ ЗАДАЧ ИНТЕЛЛЕКТУАЛЬНОГО АНАЛИЗА

В последние годы предприятия, стремясь к повышению эффективности и прибыльности, стали активно использовать средства обработки цифровой информации, что также обуславливается появлением такого побочного продукта как большой объем собранных данных. Методы ИАД, ориентированы на оптимизацию времени работы с таким продуктом.

1.1 Обзор систем интеллектуального анализа данных

В ходе анализа реальных производственных проблем, было выявлено, что интеллектуальный анализ может решить достаточно большой круг задач (табл. 1.1):

Таблица 1.1. Примеры систем ИАД и их применение

Название системы

Назначение

Методы интеллектуального анализа

Система «Energy-Forecast: Потребление»

Детализированное прогнозирование энергопотребленияна промышленном предприятии

Нейронные сети

IBM InfoSphereWarehouse

Понимание поведения клиентов или хозяйствующих субъектов

Кластеризация или неуправляемая классификация

KnowledgeSeeker (ANGOSS, Канада)

Анализ банковской, финансовой информации

Деревья решений

SAS Enterprise GRC

Моделирование рисков, анализ сценариев и т.д.

Статистический анализ

BrainMaker

Прогнозирование временных рядов

Нейронные сети

WizWhy

Определение лояльности клиентов

Алгоритм ограниченного перебора

PolyAnalyst

Определения пиковой нагрузки компаний по производству электроэнергии

Статистический анализ, множественная линейная регрессия, регрессионная классификация, нечеткая логика, кластеризация по плотности, алгоритм ближайших соседей, деревья решений

Knowledge Studio

Достижение максимальной выгоды от инвестиций в данные

Деревья решений, кластерный анализ, а также несколько моделей прогнозирования

RapidMiner

Оценка электропотребления на промышленном предприятии (предикативный анализ)

Классификация, кластеризация

Savvy data ANALYZER

Задачи производственной аналитики

Прогнозирование временных рядов, прогнозирование с использованием когнитивных карт

Easy NP

Моделирование и решение задач оптимизации

Генетический алгоритм

IBM Modeller

Предиктивного анализ, нахождение неочевидных, скрытых закономерностей в больших наборах данных

Классификаторы на базе метода опорных векторов (Support Vector Machines, SVM)

SciLab

Задачи прогнозирования

Нейронные сети

Несмотря на приведенные примеры, в основном, разработанные системы ИАД для производственных предприятий существуют только в рамках самой компании и не распространяются в массы. Такие системы направлены на решение таких задач, как:

· анализ динамики выпуска, процента брака, качества производственного оборудования;

· анализ динамики выполнения план-графика производства;

· выявление точек возникновения сбоев процесса производства;

· прогнозирование отклонений от временных и количественных производственных планов;

· проведение сравнительного анализа любых массивов данных по любым заданным критериям в табличном и графическом виде и т.д.

Весьма интересной задачей является проблема энергоэффективности. Многие производственные предприятия годами накапливают информацию об электропотреблении, но никак не обрабатывают её. В то время как, извлечение ценной информации из получаемого набора данных, сможет помочь сформулировать мероприятия по эффективному энергосбережению. Исходя из этого, было принято решение, о выборе задачи по энергоэффективности на производственном предприятии в рамках разработки интеллектуальной системы.

В качестве аналогов для разрабатываемой системы послужат системы ИАД, используемые на производственных предприятиях. Именно на предприятиях такого типа обрабатывается достаточно разнородная информация, так как помимо решения управленческих и маркетинговых задач, на них организуются работы по изготовлению нужной потребителям продукции с использованием имеющихся в распоряжении средств производства. В связи с этим, в процессе производства той или иной продукции накапливается большой объем информации с различных этапов жизненного цикла продукта.

Существующие системы ИАД энергопотребления производственных предприятий послужат основой для будущей разработки. Анализ таких систем позволит выявить недостатки существующих решений проблемы энергоэффективности и определить, какие требования будут предъявлены к разрабатываемому приложению.

Разработки Пермской компании «PROGNOZ» станут первым примером такой системы. Информационно-аналитическая система контроля и управления энергосбережением, разработанная для ОАО «СИБУР Холдинг» [5], предназначена для осуществления контроля над потреблением энергоресурсов с учетом реализации мероприятий по энергосбережению. Целью разработки данной системы стало снижение энергозатрат холдинга. Возможности системы позволяют проводить оперативный анализ накапливаемой информации по мероприятиям энергосбережения, что помогает своевременно выявлять проблемные зоны и обеспечивать поддержку принятия корректных управленческих решений. Кроме того, система осуществляет анализ потребления энергоресурсов как по всему холдингу в целом, так и по отдельно взятому предприятию, что помогает принимать решения по уменьшению затрат использования энергии. Компания «PROGNOZ» внедрила в разработанное приложение интеллектуальный анализ больших объемов данных, для объединения и упорядочивания всей необходимой информации, а также для графического моделирования текущей ситуации.

Применение различных средств аналитики и технологий обработки больших данных является весьма популярным в разработках компании IBM. Данная компания предлагает различные системные решения для оценки электропотребления с целью оптимизации энергоэффективности и снижения затрат. Например, решение, получившее название «Система гибридного прогнозирования возобновляемой энергии» (Hybrid Renewable Energy Forecasting, HyRef) [7], позволяет прогнозировать производительность отдельного ветрогенератора и вести подсчет количества сгенерированной возобновляемой энергии, используя данные о локальном прогнозе погоды. Решение основано на сочетании различных технологических (камеры для отслеживания движения облаков в режиме реального времени, датчики для мониторинга температуры воздуха) и программно-аналитических (средства data mining) средств.

С целью формализации требований, проведем небольшой сравнительный анализ данных двух систем (табл. 1.2):

Таблица 1.2. Сравнительный анализ систем

Характеристики

Разработки компании «PROGNOZ»

Разработки компании «IBM»

Функциональные характеристики

Краткосрочное прогнозирование электропотребления

-

+

Выявление зависимости электропотребления от внешних факторов

-

+

Мониторинг электропотребления (фильтрация)

+

-

Построение отчета об электропотреблении

+

+

Графическое представление результатов

+

+

Технические характеристики

Связь с продуктами MS Offic (Excel)

-

-

Источник данных

База данных

База данных

Гибкость (открытость кода)

-

-

Использование внешнего ПО для визуализации или построения отчетов

-

-

Работа в комплексе с другими модулям (например: модуль управления персоналом)

+

(модуль аттестации работников, занятых в сфере энергосбережения)

+

(модуль прогнозирования погоды)

Экономические характеристики

Стоимость лицензии

Платно

Платно

Open Source

Нет

Нет

В результате проведенного анализа существующих решений был выделен ряд их характеристик, которые не соответствуют предъявляемым в данной работе требованиям:

1. Отсутствие четкой специализации анализа данных - для полного удовлетворения потребностей заказчика требуется трудоемкая настройка и адаптация.

2. Предъявляются высокие требования к квалификации персонала, работающего с системой - результаты обработки данных во многом зависят от компетенций аналитика.

3. Закрытая архитектура и алгоритмы работы.

4. Высокая стоимость продукта.

Также, с учетом проведенного анализа было выделено три основных функции, которые должны быть реализованы в приложении:

1. Краткосрочное прогнозирование электропотребления.

2. Выявление выбросов в данных (резкое повышение или понижение потребляемой электроэнергии). Фильтрация данных.

3. Выявление степени зависимости потребляемой электроэнергии от внешних факторов (температуры воздуха на производстве).

1.2 Аналитический обзор методов и технологий интеллектуального анализа данных

ИАД предоставляет для работы большой спектр различных инструментов, которые классифицируются по различным признакам, таким как способ работы с данными, подход к обучению математической модели и задачи, которые они решают. В данной работе аналитический обзор и сравнительный анализ будет проводится на основе классификации методов ИАД по задачам. Данное распределение подразумевает деление методов на две группы. Первая из них - это подразделение методов ИАД на решающие задачи сегментации (т.е. задачи классификации и кластеризации). Вторая группа - это методы ИАД направленные на получение описательных и прогнозирующих результатов [8]. Рассмотрим более подробно каждую из групп.

Описательные методы служат для нахождения шаблонов или образцов, описывающих данные, которые поддаются интерпретации с точки зрения аналитика. К данной группе относят такие инструменты, как:

· алгоритмы k-средних и k-медианы - алгоритмы классификации без учителя (кластерный анализ), возможно использования для выявления аномалий в данных на основе меры расстояний;

· иерархические методы кластерного анализа - алгоритмы соотнесения данных на основе графов;

· самоорганизующиеся карты Кохонена - нейронная сеть с обучением без учителя;

· методы кросс-табличной визуализации - методы выявления закономерностей в данных.

Прогнозирующие методы используют значения одних переменных для прогнозирования неизвестных (пропущенных) или будущих значений других (целевых) переменных. В число данного метода входят следующие инструменты:

· нейронные сети - математические модели для прогнозирования данных;

· деревья решений - прогнозный классифицирующий алгоритм;

· линейная регрессия - метод оценки зависимости между двумя переменными;

· метод ближайшего соседа - алгоритм определения выбросов в данных на основе плотности распределения объектов;

· метод опорных векторов - метод классификации данных, а также регрессионного анализа.

Для решения задачи электроэффективности на производственном предприятии необходимо выбрать средства для обработки временных рядов (выявление выбросов), для прогнозирования и проведения кластеризации информации. С данной целью был проведен сравнительный анализ наиболее популярных методов ИАД по трем критериям: трудоемкость, точность и быстрота [8]. Выбор данных характеристик обусловлен следующими требованиями:

· метод ИАД должен решать поставленную задачу достаточно быстро, с целью минимизации времени обработки операций;

· результат, получаемый с использованием ИАД, должен быть точным, для формирования эффективных решений поставленных проблем;

· с учетом ограниченного времени на разработку и для легкости понимания кода другими пользователями, алгоритм ИАД в некоторой степени должен обладать не высокой трудоёмкостью.

Оценка каждой из характеристик проведена по следующим категориям, в порядке возрастания: очень низкая, низкая, средняя, высокая, очень высокая.

Результаты сравнения представлены в таблице (табл. 1.3).

Таблица 1.3. Сравнение методов ИАД

Метод

Точность

Трудоемкость

Быстрота

Популярность

Выявление выбросов в данных

k-means

(неиерархические методы кластерного анализа)

средняя

низкая

средняя

высокая

k-medians

(неиерархические методы кластерного анализа)

Средняя

низкая

высокая

средняя

Метод ближайшего соседа

Низкая

низкая

высокая

низкая

Метод опорных векторов

Высокая

очень высокая

средняя

средняя

Самоорганизующиеся карты Кохонена

высокая

низкая

низкая

высокая

Оценка степени зависимости между наборами данных

Линейная регрессия

средняя

средняя

высокая

высокая

Прогнозирование

Нейронные сети

высокая

средняя

низкая

высокая

Деревья решений

низкая

высокая

высокая

высокая

На основание проведенного анализа были выбран следующий набор технологий для проведения ИАД. Для выявления зависимости потребления электроэнергии от внешних факторов было решено использовать линейную регрессию, так как данный метод работает быстро и выдает достаточно точный результат, что подтверждается в статье [9]. Определение выбросов в данных будет проводится на основе кластерного анализа, с использованием алгоритма k-means, так как данные алгоритм имеет достаточно высокую точность, что было отмечено и в статье [10]. Наконец, для осуществления прогнозирования в данной работе будут использоваться нейронные сети, как самый распространенный инструмент, используемый в этой области. Более полное описание выбранных методов представлено в главе 2.

1.3 Выводы по первой главе

Одним из итогов первой главы стал анализ существующих систем ИАД производственного предприятия. Проведенный анализ помог выявить недостатки существующих систем, а также выбрать конкретную предметную область производственного предприятия в рамках которой будет проводится ИАД. С учетом этого, можно немного уточнить поставленную ранее цель - Разработка системы ИАД производственного предприятия в области энергосбережения.

Кроме того, был произведен обзор методов и технологий ИАД, которые можно применить для достижения поставленной цели. Сравнительный анализ выбранных методов, позволил выбрать эффективные методы для проведения интеллектуального анализа.

ГЛАВА 2. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ И ПРОЕКТИРОВАНИЕ КОМПОНЕНТОВ СИСТЕМЫ

Анализ предметной области и проектирование системы одни из самых важны этапов жизненного цикла ПО. В результате проведения данных этапов определяются сущности предметной области, формируются функциональные требования к системе и ее логическая структура.

2.1 Формулирование требований к функциональным характеристикам

Для того, чтобы сформулировать набор функциональных требований для системы с учетом выбранной предметной области была построена диаграмма прецедентов, представленная на рисунке (рис. 2.1)

Рисунок 2.1. Диаграмма прецедентов системы ИАД

Основываясь на построенной диаграмме, основными акторами разрабатываемой системы стали:

· пользователь (аналитик производственного предприятия);

· источник данных (файлы с информацией об энергопотреблении расширения .csv).

Также, данная диаграмма включает в себя следующие прецеденты:

· загрузка файлов с данными;

· краткосрочное прогнозирование электропотребления;

· обучение нейронной сети;

· построение прогноза;

· оценка зависимости электропотребления от внешних факторов;

· выявление выбросов в данных (значительное повышение или снижение потребления электроэнергии);

· построение кластеров;

· построение отчетов;

· визуализация решения.

В таблицах 2.1 - 2.5 представлено подробное описание четырех основных прецедентов системы, которые характеризуют выполнение основных функций системы.

Таблица 2.1. Прецедент «Загрузка файлов с данными»

Название

Загрузка файлов с данными

Акторы

Пользователь, источник данных

Краткое описание

Пользователь загружает в систему файлы с необходимой информацией

Триггер

Пользователь нажимает на кнопку «Загрузить файл»

Основной поток

Пользователь выбирает файл в форме .csv и нажимает кнопку «Открыть»

Альтернативные потоки

Структура выбранного документа не соответствует требованиям, система выводит сообщение об ошибке

Таблица 2.2. Прецедент «Прогнозирование»

Название

Краткосрочное прогнозирование электропотребления

Акторы

Пользователь, источник данных

Краткое описание

Система выполняет почасовое прогнозирование электропотребления на одни сутки вперед

Триггер

Пользователь выбирает функцию «Прогнозирование» в системе. Нажимает кнопку «Прогноз»

Основной поток

Система с использованием запрограммированной нейронной сети выполняет прогнозирование электропотребления на следующие сутки

Альтернативные потоки

-

Таблица 2.3. Прецедент «Оценка зависимости»

Название

Выявление зависимости электропотребления от внешних факторов

Акторы

Пользователь, источник данных

Краткое описание

Выявление зависимости (степени зависимости) между потреблением энергии и температурой на производстве

Триггер

Пользователь выбирает функцию «Оценка зависимости» в системе

Основной поток

Система с использованием линейной регрессии находит степень зависимости между двумя параметрами

Альтернативные потоки

-

Таблица 2.4. Прецедент «Выявление выбросов в данных»

Название

Выявление выбросов в данных

Акторы

Пользователь, источник данных

Краткое описание

Выявление аномальных значений в данных

Триггер

Пользователь выбирает функцию «Мониторинг потребления» в системе

Основной поток

Система с использованием алгоритма k-means определяет принадлежность данных к кластерам. Система визуализирует найденное решение

Альтернативные потоки

-

Таблица 2.5. Прецедент «Построение отчетов»

Название

Построение отчетов

Акторы

-

Краткое описание

Формирование отчетов происходит после выполнения одной из следующих функций: прогнозирование, мониторинг потребления, оценка зависимости

Триггер

Один из прецедентов описанных в таблицах 2.2 -2.4

Основной поток

Система формирует экранную форму с текстовой и графической частью (с учетом того, какой был триггер)

Альтернативные потоки

-

Для описания жизненного цикла объектов и взаимодействия акторов с системой были построены диаграммы последовательностей для трех основных прецедентов: краткосрочное прогнозирование, оценка зависимости, выявление выбросов, каждый из которых соотноситься с конкретной функцией. Диаграммы последовательностей, отображающие порядок и состав системных сообщений и операций, представлены в приложении (см. прил. А).

2.2 Описание алгоритмов интеллектуального анализа данных

В рамках данной работы, для реализации поставленных в первой главе задач, было выбрано три метода интеллектуального анализа данных: нейронные сети, алгоритм кластеризации k-means и линейная регрессия.

2.2.1 Нейронная сеть

Наиболее распространенными моделями прогнозирования являются нейросетевые модели (ANN), что подтверждает ряд работ [11-13]. На практике частым случаем прогнозирования временных рядов с использованием искусственной нейронной сети является прогноз на одно значение по времени вперед, используя ф предыдущих значений [14]. Так, в данной работе для прогнозирования временного ряда электропотребления будет использоваться описанный подход, который подразумевает наличие на входе нейронной сети вектора x(t) = (), а на выходе значение , где параметр ф характеризует глубину погружения (ширину окна). В качестве нейросетевой модели будет использоваться многослойный персептрон, выбор данной модели обусловлен следующими характеристиками:

· способ обучения нейронной сети - с учителем (обучающее множество содержит выходные параметры);

· нейронная сеть прямого распространения (наличие односторонней связи между нейронами);

· многослойная нейронная сеть (наиболее распространенная модель - трехслойная, с одним скрытым слоем).

Таким образом, нейронная сеть будет иметь следующую архитектуру (см. рис. 2.2).

Рисунок 2.2. Вид нейронной сети

Алгоритм прогнозирования с использованием нейронной сети будет иметь следующие этапы:

1. Пользователь загружает в систему файл с данными по электропотреблению.

2. Загруженный временной ряд делиться на множество обучающих примеров (формирование обучающей выборки) и на множество тестовых примеров (формирование тестовой выборки).

3. Обучение нейронной сети по методу back propagation error (обратное распространение ошибки) с использованием обучающей выборки.

4. Проведение тестового прогнозирования и определение оценки ошибки прогнозирования.

Количество нейронов скрытого слоя будет определяться путем серии опытов при обучении и тестировании нейронной сети. Однако количество нейронов скрытого слоя не должно быть ниже значения, которое может быть определено эвристическим правилом геометрической пирамиды [15], с использованием формулы [15], где n - количество нейронов входного слоя, m - количество нейронов выходного слоя. С учетом данной формулы, при разработке нейронной сети будет проведена серия испытаний с различным значением количество нейронов скрытого слоя, входящие в диапазон от n до k. Оптимальное значение (имеющее на выходе минимальную ошибку прогнозирования) станет рекомендуемым значением к использованию.

Для обучения нейронной сети был выбран алгоритм обратного распространения ошибка, так как он обладает рядом преимуществ [16]:

1. Достаточно высокая эффективность.

2. Высокая степень общности. Алгоритм можно легко перенастроить для произвольного количества слоев, нейронов входа и выхода, для произвольной функции активации.

3. Достаточно прост в реализации и наиболее известный алгоритм.

Ошибку обучения нейронной сети будем проводить с использованием функции средней квадратичной ошибки [17], расчет которой представлен в формуле (1).

, (1)

где E - средняя квадратичная ошибка,

N - количество значений во временном ряду,

- фактическое значение временного ряда,

- прогнозируемое значение временного ряда.

2.2.2 Алгоритм k-means

Выявление выбросов в данных будет реализовано посредством кластерного анализа с использованием алгоритма k-means [18]. Данный алгоритм предполагает распределение значений входного множество на заданное количество кластеров путем выполнения следующих шагов:

1. Первоначальный выбор центров для заданного количества кластеров.

Выбор стартовых центроидов будет осуществляться случайным образом.

2. Вычисление новых центров кластеров и перераспределение значений входного множества.

Данный процесс имеет итеративных характер и продолжается до тех пор, пока кластерные центры не стабилизируются (иными словами при очередном перераспределении, значения, принадлежащие кластерам, не изменяться).

2.1. Центры кластеров вычисляются путем нахождения покомпонентного среднего всех относящихся к данному центру точек.

2.2. Перераспределение точек к кластерам осуществляется на основе вычисления минимального расстояния до центра кластеров. Для нахождения расстояний будет использоваться дистанционная метрика «Блок» (дистанция Манхэттена) [19], которая предполагает использование следующей формулы (2).

, (2)

где n - количество переменных (n-мерное пространство),

- координаты переменной x,

- координаты переменной y.

Оценка качества распределения значений по кластерам можно осуществить путем вычисления средних значений кластеров. При хорошей кластеризации полученные средние значения будут сильно отличаться друг от друга.

Визуальное представление полученных кластеров, станет основой для выявления аномальных значений. Алгоритм k-means достаточно чувствителен к выбросам, поэтому аномальные значения будут сильно выделяться в кластерах.

2.2.3 Линейная регрессия

Решение задачи выявления зависимости потребления электроэнергия от температуры на предприятия поможет ответить на вопрос о степени изменения потребления электроэнергии (в КВт\ч) при изменении температуры на N градусов. Для решения поставленной задачи был выбран такой метод интеллектуального анализа данных, как линейная регрессия.

Построение зависимости будет производиться для следующего множества пар, представленного в формуле (3).

() при i = 1, …, m (3)

где - значение температуры в i - м наблюдении (свободная переменная),

- значение потребления электроэнергии в i - м наблюдении (зависимая переменная),

m - множество наблюдений.

Для построения регрессии для приведенного множества пар была выбрана модель простой регрессии, которая имеет формулу (4).

, (4)

где - сдвиг, который является средним значением переменной y, при x = 0.

- наклон прямой y, характеризующийся количеством измерений y, приходящихся на одну единицу измерения x,

- случайная ошибка переменной y в i наблюдении.

Значения переменных и [20] рассчитываются с использованием следующих формул (5-6).

, (5)

где - среднее значения по множеству y,

- среднее значение по множеству x.

, (6)

где - коэффициент корреляции,

- стандартное отклонение для множества y,

- стандартное отклонение для множества x.

Коэффициент при независимой переменной () характеризует то, насколько измениться потребление электроэнергии при изменении температуры на один градус.

Определение степени зависимости зависимого параметра от свободного параметра будем проводить с использованием формулы корреляции (7).

(7)

2.3 Проектирование системы интеллектуального анализа данных

При проектировании приложения важным этапом является создание ее логической структуры, что можно сделать с использованием инструментов проектирования UML, а именно диаграммы классов (рис. 2.3).

Рисунок 2.3. Диаграмма классов

На представленной диаграмме классов отображены основные классы и связи между ними. Более подробное описание методов и атрибутов классов представлено в главе 3, где описывается непосредственная разработка системы.

Классы Forecasting, Dependencies, Clastering отвечают за выполнение основных функций системы: прогнозирование электропотребление, поиск зависимостей между электропотреблением и показателями температуры на предприятии и поиск выбросов в данных соответственно. Перечисленные классы включат в себя произведение необходимых математически расчетов и построение отчетов по полученным результатам. Класс frmForm представляет главную форму и предоставляет доступ к методам и атрибутам классов Forecasting, Dependencies, Clastering. Также класс frmForm использует класс Energo_file для загрузки файлов с информацией об энергопотреблении, которые впоследствии передаются всем остальным классам.

2.4 Экономическое обоснование разработки проекта

Оценка трудоемкости и эффективности разработки программного продукта является важным этапом жизненного цикла информационных систем. Такая оценка поможет понять, сколько времени необходимо выделить на разработку программного продукта и возможно понизить риск увеличения сроков, а также поможет принять решение о необходимости начала разработки проекта.

2.4.1 Оценка трудоемкости разработки

Для оценки трудоемкости разработки информационных систем существует достаточное количество различных методик. В общем виде они делятся на два направления: измерение строк кода (SLOC) и функционального размера (FPA). Каждый из методов имеют свои достоинства и недостатки. В данной работе для оценки трудоемкости был выбран метод CETIN [21].

Методика CETIN основывается на измерении функционального размера информационной системы (функциональные требования) и подразумевает выполнение следующих этапов:

Этап 1. Оценка функционального размера разрабатываемой ИС.

Измерения функционального размера разрабатываемой ИС представлены в таблице (табл. 2.6).

Таблица 2.6. Функциональный размер системы

Варианты использования

Количество типов объектов

Количество атрибутов

Количество связей

Количество узлов

1.

Краткосрочное прогнозирование потребления электроэнергии.

3

10

1

2.

Выявление зависимости.

5

7

3

3.

Выявление выбросов в данных.

5

7

3

4.

Загрузка файлов с информацией об электропотреблении и о температуре на предприятии.

5

3

1

5.

Построение отчетов.

3

8

3

Итого:

C=5

E=8

(различных)

T=21 (различных)

I=8

(различных)

N=2

Таким образом, функциональный размер системы можно выразить через следующие обозначение:

SIZE = {5, 8, 21, 8, 2}

Этап 2. Оценка базовой трудоемкости разработки ПО и трудоемкости с учетом поправочных коэффициентов.

Базовая трудоемкость оценивается на основе нормативных коэффициентов трудоемкости, представленные в таблице (табл. 2.7).

Таблица 2.7. Нормативные коэффициенты трудоемкости

Наименование процесса

Вариант использования

Тип объекта

Свойства типа объекта

Свойства взаимоотношения между объектами

Тип узла

Трудоемкость, чел.час

1.

Бизнес моделирование

32,12

28,33

0,00

14,15

0,00

2.

Управление требованиями

58,03

28,04

0,00

20,32

0,00

3.

Проектирование

45,42

61,75

31,35

37,52

24,02

4.

Реализация

31,57

81,51

50,72

36,11

0,00

5.

Тестирование

88,96

0,00

0,00

0,00

0,00

6.

Развертывание

8,69

0,00

0,00

0,00

23,74

Базовая трудоемкость процесса разработки вычисляется с использованием расчетов, представленных в формуле (8).

(8)

где - трудоемкость определенного процесса разработки с номером i, измеряется в человеко-месяцах,

- нормативные коэффициенты трудоемкости реализации одного варианта использования, единицы измерения - [человеко-час]/[вариант],

- нормативный коэффициент трудоемкости реализации одного типа объектов, единицы измерения - [человеко-час]/[тип объектов],

- нормативный коэффициент трудоемкости реализации одного свойства типа объекта, единицы измерения - [человеко-час]/[свойство типа объектов],

- нормативный коэффициент трудоемкости реализации одного взаимодействия между типами объектов, единицы измерения - [человеко-час]/[взаимодействие между типами объектов],

- нормативный коэффициент трудоемкости реализации одного типа узла, единицы измерения - [человеко-час]/[узел],

{C,E,T,I,N} - функциональный размер разрабатываемой системы, определенный в таблице 2.6,

165 - количество человеко-часов в одном человеко-месяце.

Проведенные расчеты с учетом описанной формулы дали следующие результаты (табл. 2.8.).

Таблица 2.8. Расчет трудоемкости проекта

Номер процесса (i)

Наименование процесса

Трудоемкость (чел/мес)

Трудоемкость (чел/мес) с учетом ПК

1.

Бизнес моделирование

3,03

3,60

2.

Управление требованиями

4,10

5,80

3.

Проектирование

10,47

18,65

4.

Реализация

13,11

20,69

5.

Тестирование

2,70

5,04

6.

Развертывание

0,55

0,68

Итог:

54,46

В данной таблице приведены итоговые значения трудоемкости проекта. В третьем столбце описаны результаты базовой трудоемкости, рассчитанные с использованием описанной формулы (8). Последний столбец таблицы содержит значения трудоемкости, полученные с учетом поправочных коэффициентов по формуле (9).

, (9)

где S - трудоемкость процесса разработки программного продукта с учетом корректировки поправочными коэффициентами в человеко-месяцах,

- базовая трудоемкость разработки программного продукта в человеко-месяцах (значения взяты из таблицы 2.7),

- поправочные коэффициенты, значения которых представлены в приложении (см. прил. Б).

Таким образом, с учетом данных о зависимости срока разработки от трудоемкости [22], примерный срок разработки программного продукта составит 6 месяцев в условиях командной работы.

2.4.2 Оценка эффективности разработки

Расчет стоимости разработки системы можно произвести с использованием экономического метода NPV [23] («Net Present Value» - чистая приведенная (к сегодняшнему дню) стоимость), который основывается на дисконтировании денежных потоков. Расчет NPV выполняется с использованием следующей формулы (10).

(10)

где - размер инвестиций,

t - количество временных периодов,

- чистый денежный поток,

R - ставка дисконтирования.

Временной период для расчета составил шесть месяцев (с учетом найденного примерного срока разработки). Также в вычислениях будет отсутствовать показатель , так как проект не является инвестиционным.

Алгоритм расчета NPV:

Этап 1. Расчет ставки дисконтирования (показатель R в формуле (10)).

Расчет ставки дисконтирования будем производить на основе одного из самых популярных методов - методе кумулятивного построения. Данный метод чаще всего применяют на средних и малых проектах и используют вычисления, представленные в формуле (11).

, (11)

где: d - ставка дисконтирования (номинальная),

- минимальная ставка дисконтирования (реальная),

I - темп инфляции,

r - премия за риск.

Показатель премии за риск рассчитывается с использованием методики изложенная в «Положении об оценке эффективности инвестиционных проектов при размещении на конкурсной основе централизованных инвестиционных ресурсов бюджета развития Российской Федерации» (утверждено Постановлением Правительства РФ №1470 от 22.11.97) [24]. Так для расчета ставки дисконтирования используются следующие показатели (табл. 2.9).

Таблица 2.9. Составляющие ставки дисконтирования

Наименование показателя

Значение

Минимальная реальная ставка дисконтирования

2,58%

Темп инфляции

4,13% (в годовом исчислении, 2017 год)

Премия за риск

18,00%

По данным на 2017 год, номинальная ставка дисконтирования составила

d = 24,712%.

Для расчета реальной ставки дисконтирования на год используется следующая формула (12).

, (12)

Исходя из данной формулы, можно рассчитать реальную ставку дисконтирования на месяц (13).

, (13)

Значения реальной ставки дисконтирования за год и месяц представлены в таблице (табл. 2.10).

Таблица 2.10. Реальная ставка дисконтирования

Наименование ставки дисконтирования

Значение

Реальная ставка дисконтирования на год

19,77%

Реальная ставка дисконтирования на 6 месяцев

3,05%

Реальная ставка дисконтирования на месяц

1,51%

Этап 2. Расчет денежных потоков.

Денежные потоки проекта включают в себя:

· отток - первоначальное вложение средств;

· приток - ожидаемое поступление денежных средств в будущем.

В среднем стоимость системы интеллектуального анализа данных для проведения уникальных исследований варьируется от $1000 до $10000 [25]. Тогда, можно предположить, что общий денежный приток составит 60 000 р.

Вся разработка проекта будет происходить на личном компьютере разработчика, что исключает расходы на приобретение дополнительного оборудования (срок использования компьютера менее 3-ех лет, что является нормой и не требует амортизации). Также для разработки потребуется следующее программное обеспечение:

· инструментальная среда программирования Visual Studio 2013 (лицензионная версия предоставляется кафедрой информационных технологий в бизнесе НИУ ВШЭ);

· .Net библиотеки для визуализации и математического моделирования (бесплатная лицензия).

Таким образом, приобретение дополнительного программного обеспечения не требуется.

Проектная группа для разработки системы включает в себя одного человека, чья заработная плата составит 10 000 р. за весь период (в соответствии с оптимальным оценочным баллом университета), что составит отток денежных средств.

Этап 3. Расчет NPV.

В результате приведенная стоимость денежных потоков для проекта составит

Из чего следует, что проект можно принять к исполнению, так как значение NPV положительно.

2.5 Выводы по второй главе

Результатами второй главы стали, сформулированные с использованием диаграммы прецедентов (use case) функциональные требования к системе ИАД, из которых выделено три основных - это краткосрочное прогнозирование электропотребления, выявление выбросов в данных по электропотреблению и выявление зависимости между электропотреблением и температурой на предприятии. Жизненный цикл каждого прецедента (варианта использования) был подробно описан с использованием диаграмм последовательности. Также описаны выбранные в первой главе алгоритмы ИАД, рассмотрены их основные этапы выполнения для решения поставленных задач.

Кроме того, проведено проектирование системы ИАД с использованием диаграммы классов, что помогло точно представить логическую структуру будущей системы, определить основные классы их методы и атрибуты. На основе построенных диаграмм и сформулированных требований к системе составлено экономическое обоснование разработки проекта и проведена оценка его эффективноти.

ГЛАВА 3. РАЗРАБОТКА ПРОГРАММНЫХ КОМПОНЕНТОВ

В качестве среды для разработки программного приложения была выбрана Visual Studio. Данный продукт предоставляет большой спектр инструментальных средств, в том числе различные библиотеки для разработки приложений с графическим интерфейсом.

Бизнес-логика приложения располагается на сервере, в качестве которого был выбран WCF-сервис. Данный сервис объединил в себе преимущества .Net Remoting (расширенный набор средств коммуникации) и Web-сервисов (WS-* стандарты) [26], что стало основой для его выбора.

С целью визуализации результатов работы программного приложения был реализован прототип клиентского приложения на основе Windows Forms. Интерфейс приложения базируется на .NET библиотеке MetroFramework, которая предоставляет большой набор инструментальных средств в стиле Modern UI. Примеры пользовательского интерфейса представлены в приложении (см. прил. Д).

3.1 Разработка модуля выявления зависимости производственных данных

В соответствии с диаграммой прецедентов, спроектированной в пункте 2.1, для осуществления оценки зависимости между наборами данных необходима загрузка файлов:

1. Файл с информацией об электропотреблении.

2. Файл с информацией о температуре в помещении (информация о внешних факторах).

Реализация данной функции была выполнена через создание отдельного класса Energy_file, описание которого приведено в приложении (см. прил. Е).

Выявление зависимости между электропотреблением и температурой в помещении будет реализовано с использованием регрессионного анализа (описанных в пункте 2.2.3 формул). В процессе реализации алгоритма определения зависимости были разработаны следующие модули:

Модуль 1. Вычисления коэффициента наклона и сдвига прямой y, для построения регрессии.

Программный код вычисления коэффициентов парной регрессии приведен в приложении (см. прил. Е).

Модуль 2. Вычисления степени корреляции.

Оценка степени зависимости между производственными данными находится посредством определения коэффициента корреляции (R). Для вычисления данного коэффициента был разработан отдельный метод GetCorrelation, который имеет на входе два массива - множества зависимых и независимых переменных (см. рис. 3.1).

Рисунок 3.1. Коэффициент корреляции

В результате работы модуля было установлено, что зависимость между потреблением электроэнергии и температурой в здании очень слабая, так как вычисленное значение коэффициента корреляции равняется R = 0,22.

Модуль 3. Визуализация решения.

Для визуализации парной линейной регрессии был выбран стандартный компонент Visual Studio - Chart, который позволил построить линейную (SeriesChartType.Line) и точечную (SeriesChartType.Point) диаграммы (см. рис. 3.2).

Рисунок 3.2. Регрессионный анализ

3.2 Разработка модуля прогнозирования электропотребления

В соответствии с диаграммой прецедентов, спроектированной в пункте 2.1, для осуществления прогнозирования электропотребления необходима загрузка файла с информацией об электропотреблении, что реализовано в системе путем разработки класса Energy_file, описание которого приведено в приложении (см. прил. Е).

Для разработки нейронной сети была выбрана программная платформа AForge.Net, а именно набор библиотек AForge.Neuro. Данная платформа поддерживает достаточно широкий круг архитектур нейронных сетей и алгоритмов их обучения, включая многослойную нейронную сеть с алгоритмом обучения - обратное распространение ошибки.

Перед началом прогнозирования необходимо определить следующий набор параметров:

· learningRate - скорость обучения;

· momentum - момент обучения;

· sigmoidAlphaValue - параметр наклона сигмоидальной функции активации;

· windowSize - количество исторических значений, используемых для построения прогноза (глубина погружения или размер окна);

· iterations - количество итерация обучения.

Создание многослойной нейронной сети происходит путем создания нового объекта и задания соответствующей функции активации:

ActivationNetwork network = new ActivationNetwork (new BipolarSigmoidFunction(sigmoidAlphaValue).

Установка алгоритма обучения нейронной сети выполняется путем создания нового объекта BackPropagationLearning:

BackPropagationLearning teacher = new BackPropagationLearning(network).

Само обучение происходит в отдельном потоке до тех пор, пока либо пользователь не нажмет кнопку «Стоп», либо не пройдут все заданные итерации:

workerThread = new Thread(new ThreadStart(SearchSolution));

workerThread.Start().

Входное множество данных включило в себя четыре тысячи шестьсот четыре значения временного ряда электропотребления. Показания электропотребления снимались каждые пятнадцать минут в течение нескольких дней.

Количество нейронов на входном слое будет равняться установленному параметру windowSize, в качестве которого было выбрано двенадцать значений временного ряда, которые соответствуют временному промежутку равному трем часам. Основываясь на приведенной в разделе 2.2.1. формуле, количество нейронов скрытого слоя не должно быть меньше четырех нейронов, поэтому была проведена серия испытаний, где количество нейронов скрытого слоя нейронных сетей принимает значения в диапазоне от четырех до двенадцати (число нейронов входного слоя) и значение в два раза превышающее количество входных нейронов. Однако значительное увеличение количества нейронов скрытого слоя значительно не улучшило характеристики сети. Каждая нейронная сеть обучалась на протяжении 10000 итераций. Результаты испытаний представлены в таблице (табл. 3.1).

Таблица 3.1. Испытания нейронной сети

Номер испытания

Количество нейронов на скрытом слое

Средняя квадратичная ошибка обучения

1

4

22,600

2

5

25,040

3

6

23,320

4

7

24,400

5

8

23,880

6

9

24,740

7

10

22,030

8

11

23,540

9

12

22,070

10

24

22,910

В результате нескольких испытаний и с учетом существующих работ в области построения нейронных сетей [27], скрытый слой нейронной сети включил в себя десять нейронов. В результате средняя квадратичная ошибка обучения составила 22,030 , что говорить об адекватности разработанной нейросетевой модели. Однако данный показатель не является пределом и может быть улучшен.

Для визуализации результата обучения нейронной сети предполагается строить график сходимости прогнозируемых и реальных значений с использованием компонента Chart программной платформы AForge.Net. Данный компонент позволяет строить динамические графики, что позволит в реальном времени пронаблюдать динамику процесса обучения (см. рис. 3.3):

Рисунок 3.3. График обучение нейронной сети

Подробный программный код с комментариями представлен в приложении (см. прил. Е).

3.3 Разработка модуля анализа производственных данных

В соответствии с диаграммой прецедентов, спроектированной в пункте 2.1, для осуществления прогнозирования электропотребления необходима загрузка файла с информацией об электропотреблении, что реализовано в системе путем разработки класса Energy_file, описание которого приведено в приложении (см. прил. Е).

Для хранения информации по каждому кластеру был создан класс Crowd, структура которого представлена на рисунке (рис.3.4).

Рисунок 3.4. Класс «Кластер»

Данный класс имеет следующие поля:

· List <double> List - список значений входящего множества, принадлежащих кластеру;

· Average - среднее значения кластера;

· Center - координата центра кластера;

· Change - степень изменения после очередной итерации.

Перераспределение значений входного множества по кластерам происходит до тех пор, пока значение поля Change больше необходимого заданного значения. В процессе выполнения каждой итерации вызываются методы Crowd() и RefreshCenter(), которые обновляют информацию в классе.

Более подробный код реализации алгоритма k-means представлен в приложении (см. прил. Е).

3.4 Выводы по третьей главе

Основным результатом третьей главы стала разработанные в среде разработки Visual Studio на Windows Forms серверная часть и прототип клиентской части системы ИАД производственного предприятия.

В процессе разработки был определен и подключен набор сторонних библиотек, такие как AForge, ZedGraph, которые сформулировали математический аппарат система. Также разработаны три основных модуля системы:


Подобные документы

  • Разработка комплекса интеллектуального анализа данных, получаемых в процессе работы коммерческого предприятия розничной торговли. Исследование стационарности ассоциаций, выявление частоты появления ассоциаций. Скрипты для создания баз данных и таблиц.

    курсовая работа [706,3 K], добавлен 07.08.2013

  • Обслуживание двух встречных потоков информации. Структура информационных систем. Разработка структуры базы данных. Режимы работы с базами данных. Четыре основных компонента системы поддержки принятия решений. Выбор системы управления баз данных.

    курсовая работа [772,0 K], добавлен 21.04.2016

  • Разработка системы автоматизации для работы инженеров, бухгалтера, менеджера для предприятия, работающего в сфере торговли и обслуживания платформ многоканальной звукозаписи. Требования к функциональным характеристикам базы данных в MS Access.

    курсовая работа [774,3 K], добавлен 23.01.2013

  • Классификация методов анализа по группам. Сбор и хранение необходимой для принятия решений информации. Подготовка результатов оперативного и интеллектуального анализа для эффективного их восприятия потребителями и принятия на её основе адекватных решений.

    контрольная работа [93,2 K], добавлен 15.02.2010

  • Анализ характеристик объекта компьютеризации. Разработка структур данных, алгоритмов и программного обеспечения системы управления базой данных. Особенности синтеза структур данных. Разработка алгоритмов системы и оценка результатов тестирования.

    курсовая работа [37,0 K], добавлен 07.12.2010

  • Создание web-сайта для сбора статистических данных, прогнозирования возможностей системы общего образования и анализа демографического состояния региона в динамике. Проектирование базы данных, разработка компонентов, алгоритмов и программного обеспечения.

    дипломная работа [3,1 M], добавлен 15.04.2013

  • Разработка вычислительной структуры, реализующей заданный набор операций для обработки запросов в реляционной базе данных (БД). Описание общей структуры системы с машиной баз данных. Разработка схем исполнительных процессоров и алгоритмов их операций.

    реферат [140,3 K], добавлен 27.10.2010

  • Характеристика предприятия и его деятельности. Описание основных сущностей и их функций. Обоснование выбора системы управления БД и анализ имеющихся программных средств. Проектирование базы данных. Разработка интерфейса и алгоритмов реализации системы.

    дипломная работа [1,4 M], добавлен 18.10.2015

  • Порядок автоматизации расчетов себестоимости и длительности программного обеспечения производственного предприятия. Выбор языка программирования и системы управления базами данных. Разработка алгоритмов расчета себестоимости программного обеспечения.

    дипломная работа [1,7 M], добавлен 13.06.2017

  • Построение систем анализа данных. Построение алгоритмов проектирования OLAP-куба и создание запросов к построенной сводной таблице. OLAP-технология многомерного анализа данных. Обеспечение пользователей информацией для принятия управленческих решений.

    курсовая работа [1,3 M], добавлен 19.09.2008

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.