WWW.PDF.KNIGI-X.RU
БЕСПЛАТНАЯ  ИНТЕРНЕТ  БИБЛИОТЕКА - Разные материалы
 

«Кафедра общей информатики ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА БАКАЛАВРА Азаров Андрей Игоревич Визуализация алгоритмов когнитивного анализа данных Направление ...»

МИНОБРНАУКИ РОССИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ

УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕСИОНАЛЬНОГО ОБРАЗОВАНИЯ

«НОВОСИБИРСКИЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ

ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ» (НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ

УНИВЕРСИТЕТ, НГУ) ____________________________________________________________________________________________________________________

Кафедра общей информатики

ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА БАКАЛАВРА

Азаров Андрей Игоревич Визуализация алгоритмов когнитивного анализа данных Направление подготовки 230100.62 ИНФОРМАТИКА И ВЫЧИСЛИТЕЛЬНАЯ

ТЕХНИКА

Руководитель Автор Павловский Е.Н. Азаров А.И.

(фамилия, И., О.) (фамилия, И., О.) к.ф.-м.н. ФИТ, 8204 (уч.степень, уч.звание) (факультет, группа ) …………………………....………………..

(подпись, дата) (подпись, дата) Новосибирск, 2012 г.

МИНОБРНАУКИ РОССИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ

УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«НОВОСИБИРСКИЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ

ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ» (НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ

УНИВЕРСИТЕТ, НГУ) ____________________________________________________________________________________________________________________

Кафедра общей информатики

УТВЕРЖДАЮ

Зав. кафедрой Пальчунов Д.Е.

………………….

(подпись, дата)

ЗАДАНИЕ

НА ВЫПУСКНУЮ КВАЛИФИКАЦИОННУЮ РАБОТУ БАКАЛАВРА

Студенту Азарову Андрею Игоревичу Направление подготовки 230100.62 ИНФОРМАТИКА И ВЫЧИСЛИТЕЛЬНАЯ

ТЕХНИКА

ФАКУЛЬТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

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

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

Содержание Введение

Цель работы

Постановка задачи

Графический интерфейс к алгоритмам заполнения пробелов

1.1 1.1.1 Обоснование актуальности

1.1.2 Формальные требования

1.1.3 Известные решения

Графический интерфейс к workflow решения задачи анализа данных.......... 8 1.2 1.2.1 Обоснование актуальности

1.2.2 Требования

Визуализация для кластеризации

1.3 1.3.1 Задача кластеризации

1.3.2 Интерпретация решения и оценка его качества

1.3.3 Задача визуализации

1.3.4 Требования к визуализации

1.3.5 Существующие визуализации

Реализация

Графический интерфейс к алгоритмам заполнения пробелов

2.1 2.1.1 Архитектура

2.1.2 Визуализация

2.2 DataBrowser

2.2.1 Архитектура

2.2.2 Визуализация

2.3 3DTree

2.3.1 Идея визуализации

2.3.2 Реализация

2.3.3 Сравнение с другими представлениями данных

2.3.4 Область применения контрола

2.3.5 Способы применения визуализации

Использованные технологии

2.4 Заключение

Литература

ВВЕДЕНИЕ

С развитием вычислительных технологий большое значение приобрели задачи анализа больших массивов данных. Работать в них приходится с объектами, которые могут иметь различную природу. Такие задачи постоянно возникают совершенно естественным образом в результате практических исследований. Начиная изучать какоето новое явление, исследователи не имеют информации, какие характеристики значимы, а какие – нет. В некоторых областях науки число важных признаков невелико и исчисляется единицами. В таких случаях человеку под силу самостоятельно выявить нужные закономерности. Но иногда количество параметров оказывается слишком велико и взаимосвязь между ними может быть совершенно неочевидной. Здесь не обойтись без методов анализа данных и помощи суперкомпьютеров.

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

В процессе решения задачи анализа данных перед исследователем часто встает задача визуализации данных:

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

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

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

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

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

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

1 Постановка задачи Графический интерфейс к алгоритмам заполнения пробелов 1.1 1.1.1 Обоснование актуальности Существующие алгоритмы когнитивного анализа данных до этого момента были реализованы либо в виде прототипов, которыми затруднительно решать какие-либо задачи, либо в виде отдельных программ, не связанных с другими алгоритмами и другими задачами анализа данных. Таким образом, чтобы решить какую-либо задачу исследователю приходилось, либо пользоваться этими программами, или, если они не удовлетворяют его требованиям, писать свою реализацию нужных алгоритмов с нуля.

Это, конечно же, не всегда приемлемо, поскольку написание своей реализации может занять много времени, и потом вряд ли можно будет это где-то еще использовать.

Поэтому была разработана библиотека алгоритмов FRiS.NET [12], в которой реализованы структуры данных предметной области АД, а также некоторые алгоритмы.

Основными ее преимуществами являются:

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

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

Гибкость: Поскольку библиотека написана с использованием объектноориентированного подхода, каждая из компонент состоит из настраиваемых объектов.

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

Более подробно про библиотеку FRiS.NET можно прочитать в выпускной работе бакалавра Мифтахутдинова Рустама [10].

Во время разработки библиотеки алгоритмов FRiS.NET, возникла задача использования реализованных алгоритмов на практике, один из них – алгоритм ZET.

Необходимо было написать программу, которая бы использовала библиотеку FRiS.NET и решала задачу заполнения пробелов.

1.1.2 Формальные требования Программа должна использовать библиотеку FRiS.NET.

Программа должна поддерживать следующие возможности:

1. Возможность отображения табличных данных сохраненных в формате csv.

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

3. Отслеживание хода работы алгоритма и просмотр промежуточных результатов.

4. Возможность просмотра дополнительной информации о решении предоставляемой алгоритмом.

1.1.3 Известные решения Основным требованием к программе является использование алгоритмов когнитивного анализа данных, поэтому существующие решения мы будем рассматривать среди программных продуктов, которые также пользуются подобными алгоритмами.

1. Значительная часть методов анализа данных была реализована в пакете прикладных программ для обработки таблиц экспериментальных данных.

Первые версии пакета ОТЭКС были сделаны более 30 лет назад.

Реализация представляет собой набор исполняемых файлов, каждый из которых соответствует одному из алгоритмов. Процесс работы сводится к запуску нужных алгоритмов в определенном порядке, а использование результатов работы одного алгоритма в другом алгоритме требует ручного формирования входных данных из полученного текстового отчета. Кроме того, реализация ОТЭКС выполнена на языке Fortran, что делает затруднительными е поддержку и переиспользование кода.

2. Также есть работы по проблеме заполнения пробелов, разработанные студентами Новосибирского Государственного Университета и Новосибирского Государственного Технического Университета. Одной из таких работ является программа, разработанная студенткой НГТУ Милюс Анной.

Программа, позволяет:

1. Поддерживать таблицы, данные в которых представлены в сильных шкалах.

2. Из доступных алгоритмов только BRAID и ADD/DEL.

3. Отображать некоторую дополнительную информацию о процессе анализа.

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

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

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

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

Недостатком, пожалуй, является то, что система больше не поддерживается и исходный код не открыт.

Графический интерфейс к workflow решения задачи анализа1.2 данных

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

Для решения этой задачи был разработан т.н. фасад [13] библиотеки алгоритмов, который скрывает сложности библиотеки за простыми интерфейсами. Фасад предоставляет возможность подстановки значений по умолчанию для незаданных параметров алгоритма, и пользователю необходимо указывать только интересующие его параметры. Также фасад берет на себя ответственность за кэширование промежуточных результатов вычислений. Поскольку процесс решения задачи анализа данных может быть очень трудоемким, некоторые промежуточные результаты имеет смысл кэшировать, чтобы впоследствии не пересчитывать их заново и использовать уже полученные значения. К такому результату, например, может относиться матрица парных расстояний.

С фасадом можно работать как на языке C#, так и на скриптовом языке Python.

Для хранения промежуточных результатов и в целом информации о процессе решения задачи, было разработано специальное хранилище данных CouchDbStorage, использующее в своей основе нереляционную базу данных CouchDb [14]. В нем находятся исходные данные, информация о том, какие алгоритмы были применены, с какими параметрами и в каком порядке, а также результаты работы этих алгоритмов. Таким образом, в нем содержится полная информация о процессе решения задачи анализа данных.

Перед автором была поставлена задача разработать программу, позволяющую визуализировать объекты и связи, содержащиеся в хранилище CouchDbStorage.

1.2.2 Требования

1. Возможность отображения графа данных и операций из хранилища CouchDbStorage.

2. Возможность визуализировать любые данные из хранилища при этом учитывая их тип.

3. Возможность писать скрипты на языке Python с использованием фасада библиотеки.

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

Как правило, в подобных системах анализа данных используются специфичные способы отображения хода вычислений. Вот некоторые из этих систем: KNIME1, RapidMiner2, Orange3.

1.3 Визуализация для кластеризации

1.3.1 Задача кластеризации Данная проблема была осознана ещ во II веке до нашей эры. В «Письме учному соседу» Демокрит пишет: «Если тебе, мой друг, нужно разобраться в сложном нагромождении фактов или вещей, ты сначала разложи их на небольшое число куч по похожести. Картина прояснится, и ты поймешь природу этих вещей». [1] Формализация такого метода, а именно создание классификационных структур на множестве объектов схожей природы, рассматривается в рамках направления, которое называется большим количеством синонимов: таксономия, группировка, кластерный анализ, автоматическая классификация, обучение без учителя, самообучение и т.д. [3] В содержательной постановке цель задачи кластеризации состоит в разбиении некоторой исходной выборки, представленной матрицей «объект-свойство», на кластеры таким образом, чтобы внутри каждого кластера находились похожие друг на друга объекты, а объекты разных кластеров существенно различались. Если же данные представить как точки в многомерном признаковом пространстве, то задача кластеризации сводится к отысканию компактных сгустков точек.

Особенность данной задачи заключается в том, что неизвестна ни форма кластеров, ни их внутренняя структура, ни даже их число.

1.3.2 Интерпретация решения и оценка его качества Результат решения задачи таксономии обладает неким интегральным критерием качества. Это число само по себе не дает никакой информации о качестве кластеризации.

Его необходимо сравнивать с качествами других кластеризаций на той же выборке объектов, чтобы понять лучше или хуже получилась кластеризации для заданного критерия. Алгоритм FRiS-Tax, например, формирует кластеризации для разного числа кластеров, сравнивает получившиеся кластеризации между собой, и в качестве результата возвращает ту, у которой качество наибольшее.

http://www.knime.org/ http://rapid-i.com/content/view/181/190/ http://orange.biolab.si/ Различные кластеризации с разным числом кластеров на одной выборке могут незначительно отличаться по качеству и быть при этом вполне допустимыми. Подобная «неоднозначность» согласуется со следующим наблюдением. В зависимости от требуемого уровня детализации, человеком тоже могут быть построены варианты кластеризации с разным числом кластеров. Например, в структуре военнослужащих могут быть выделены кластеры-полки и кластеры-батальоны. И сказать, что один из этих вариантов предпочтительнее другого нельзя до тех пор, пока строго не будет зафиксирована цель, для которой создается кластеризация.

При интерпретации результатов необходимо учитывать множество параметров.

Зачастую нужно понять, какие объекты выбраны столпами, почему именно эти объекты выбраны столпами, какие объекты своего кластера столп защищает хорошо, а какие плохо. На все эти вопросы и многие другие исследователь желает получить ответ при изучении решения. Но он не может сделать этого быстро глядя на табличные данные.

Табличное представление результатов здесь не подходит.

1.3.3 Задача визуализации Решение задачи кластеризации представляет собой информацию о принадлежности конкретных объектов к тем или иным кластерам. В методологии FRiS и, в частности, в алгоритме FRiS-Tax, к этой информации добавляется еще информация о том, какие из объектов являются столпами. С помощью алгоритма FRiS-Tax решается задача комбинированного типа SD (таксономия + построение решающего правила).

Соответственно, эта информация должна быть отражена в визуализации решения.

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

Визуализация кластеризации должна качественно отображать:

1) кластерную структуру;

2) расположение данных в исходном пространстве;

3) взаимосвязи между объектами\точками в признаковом пространстве.

1.3.4 Требования к визуализации В ходе исследования задач кластеризации для визуализации были выдвинуты следующие требования:

1) интуитивно понятное изображение;

2) простота в навигации по данным;

3) отображение взаимосвязи между данными;

4) отображение пространственной структуры данных.

1.3.5 Существующие визуализации На текущий момент большинство используемых визуализаций являются двумерными.

Некоторые методы и подходы к визуализации кластеризации и многомерных данных:

1) Точечная диаграмма (scatter diagram).

Наиболее простой способ отображения объектов с размерностью 2 и 3.

Точечная диаграмма представляет объекты как точки на плоскости или в трехмерном пространстве, координаты которых соответствуют значениям признаков. Наиболее существенный недостаток заключается в невозможности отображения данных с размерностью 4 и более. Для таких данных множество точечных диаграмм, построенных для каждой пары признаков из исходного пространства признаков (scatter plot matrix).

2) Самоорганизующаяся карта Кохонена (англ. Self-organizing map — SOM [6]).

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

3) Параллельные координаты (англ. Parallel coordinates [7]) Данная визуализация применима к данным любой размерности, но с увеличением количества объектов и признаков, их представление на этой диаграмме становится запутанным, понятность структуры данных снижается.

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

Задача обозреть все существующие решения в области визуализации кластеризации и многомерных данных выходит за рамки данной работы. Их весьма много.

Были рассмотрены только наиболее используемые визуализации и, с этой точки зрения, самые интересные.

2 Реализация

2.1 Графический интерфейс к алгоритмам заполнения пробелов 2.1.1 Архитектура Приложение построено на основе паттерна MVVM (Model-View-ViewModel) [16].

На уровне модели располагалась библиотека алгоритмов FRiS.NET. Благодаря паттерну MVVM удалось абстрагироваться от библиотеки и от конкретных реализаций алгоритмов, в результате чего изменения в библиотеке не влияют на уровень представления. Уровень модели не зависит от других уровней.

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

Рисунок 1. Диаграмма классов вьюмоделей для алгоритмов.

Уровень модели представления написан полностью на языке C#.

Уровень представления отвечает за то, как именно будут отображаться вьюмодели.

Он содержит окна, разные графические контролы, графические ресурсы, стили, шаблоны.

Уровень представления зависит только от уровня модели представления, зависимости от реализации библиотеки алгоритмов отсутствуют. Этот уровень написан с использованием языка разметки XAML, а также C#.

Универсальный механизм отображения

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

Если изменения в реализации алгоритмов не влияют на отображение, потому что сам процесс алгоритма отображается одинаково и независимо от реализации, то результаты работы алгоритмов требуют индивидуального отображения из-за того, что информация, содержащаяся в решении, сильно зависит и может меняться от конкретной реализации алгоритма. Например, мерой доверия к принятому решению алгоритма WANGA-N является энтропия распределения голосов, и это число содержится в объекте, возвращаемом в качестве результата работы алгоритма. Это отлично от того, что получается в результате решения той же задачи алгоритмом ZET-Braid. Результаты этих алгоритмов необходимо уметь показывать различным образом, а также иметь возможность быстро добавлять новые варианты отображения для результатов.

Для упрощения изменений был разработан вспомогательный механизм универсального отображения любых типов данных.

Он работает следующим образом:

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

2) Объекты нотаций, которым не было сопоставлено ни одного механизма визуализации, отображаются посредством представления всех его публичных свойств (для каждого свойства выполняется шаг 1), список которых получается через Reflection.

Этот алгоритм обязательно остановится, потому что если он не найдет ни одного известного объекта, то он доберется до свойств, которые имеют простой тип (String, int, bool и др), а способы отображения этих свойств универсальному механизму отображения известны. Даже без всякой дополнительной настройки мы можем показать любой объект, как совокупность его свойств. Это некоторым образом похоже на то, как работают отладчики в средах разработки при просмотре свойств объектов.

Рисунок 2. Диаграмма основных классов универсального презентера.

Рассмотрим подробнее назначение каждого из интерфейсов и классов:

Engine – интерфейс, позволяющий создавать отображение для объектов, а также позволяющий добавлять правила создания отображений.

Rule – правило, по которому создается представление.

UnityBasedEngine – реализация интерфейса Engine, разрешающая зависимости при помощи Unity контейнера [11]. Представление ищется по наиболее подходящему правилу.

Presenter – интерфейс представления. Ставит в соответствие любому объекту модель представления.

CompositePresenter – абстрактный класс, который используется, когда тип отображаемого объекта не известен, и необходимо его отобразить как совокупность его свойств.

PropertyListPresenter – простая реализация CompositePresenter, отображающая объект, как список свойств.

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

Рассмотрим примеры работы программы. Запустим алгоритм ZET-Braid на сгенерированной выборке. Выборка представляет собой ряд Фибоначчи в каждой строке с добавленным случайным шумом.

Рисунок 3. Графичиеский интерфейс программы для заполнения пробелов.

На рисунке 3 представлен результат применения алгоритма ZET-Braid к выборке без пробелов.

Для каждой клетки таблицы формировалось прогнозное значении и рассчитывалась абсолютная и относительная ошибки предсказания:

Абсолютная ошибка = |исходное значение (минус) прогнозное значение| Относительная ошибка = Абсолютная ошибка / исходное значение Каждая клетка закрашивалась цветом, соответствующим относительной ошибке для этого значения относительно 100% ошибки. Таким образом, нулевой ошибке соответствует белый цвет клетки, а 100% ошибке синий цвет. Низкая интенсивность в раскраске таблицы говорит о неплохом качестве предсказания. Это же мы можем понять по численным величинам максимальной ошибки и средней ошибки по таблице на панели слева. Максимальная ошибка – 14.5%, средняя ошибка – 5.5%.

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

Рисунок 4. Расцветка относительно максимальной ошибки по талице.

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

Даже такая простая форма отображения как таблица с цветным представлением качества предсказания, уже помогает исследователю быстро понять и оценить качество предсказания и качество работы алгоритма.

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

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

2.2 DataBrowser 2.2.1 Архитектура Это приложение так же разрабатывалось с использованием паттерна MVVM.

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

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

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

2.2.2 Визуализация Для визуализации процесса решения задачи анализа данных используется направленный граф. Вершины графа представляют собой данные и операции, а ребра – отношение предшествования. Цвета вершин графа зависят от типа данных, соответствующего этой вершине.

Используется трехцветная раскраска. Одним цветом раскрашиваются операции и алгоритмы. Другим цветом – простые данные, которые не требуют особого представления. Например, числа или строки. Третьим цветом – сложные объекты, которые могут потребовать специального представления, такие как, таблицы.

Библиотека GraphSharp, используемая для отрисовки графа, позволяет легко менять отображение любых визуальных частей графа при помощи механизмов шаблонов и стилей WPF.

Рисунок 5. Интерфейс программы DataBrowser При нажатии на любую вершину этого графа можно посмотреть, какие данные соответствуют этой вершине.

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

2.3 3DTree 2.3.1 Идея визуализации 2.3.1.1 Звездообразное отображение многомерных данных

–  –  –

Рисунок 6. Представление объекта Идея визуализации кластеризации основывается на другой идее отображения многомерных данных – звездообразном отображении (star glyph) [5, 15].

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

Теперь, если добавить объема в это отображение, один объект в трехмерном пространстве будет выглядеть как призма, у которой основания будут многоугольниками из двумерного пространства.

Отображение множества объектов формируется путем составления «друг на друга»

трехмерных объектов.

2.3.1.2 Относительное отображение данных

–  –  –

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

Напротив, объекты, которые сильно отличаются от целевого объекта, будут представлены широкими призмами, и будут сильно отличаться от остальных. Стоит заметить, что сам целевой объект в таком отображение не будет виден из-за того, что он сам от себя никак не отличается, поэтому вершины многоугольника будут находиться на расстоянии 0 от центра.

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

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

Кластер, как и в звездообразном отображении, складывается из объектов-призм положенных друг на друга. Таким образом, если мы отсортируем объекты по расстоянию от столпа до объекта, мы можем получить трехмерную фигуру, отдаленно напоминающую «лочку». Поэтому предлагается называть это отображение «Ёлочка».

Рисунок 8. Ёлочка

2.3.2 Реализация Для реализации визуализации «Ёлочка» был разработан компонент (контрол) с использованием WPF 3D Engine и библиотеки графических компонентов Helix Toolkit.

Данный компонент можно встраивать в другие программные продукты. Он не зависит от предметной области. Его можно применять не только для отображения структуры кластера в таксономии, но и в других областях. Данный компонент можно гибко настраивать с помощью механизма стилей и шаблонов предоставляемых WPF Framework.

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

Есть возможность динамически добавлять объекты в «лочку» и удалять их. Это может пригодиться, при фильтрации объектов (удалении из поля зрения ненужных).

Также можно динамически фильтровать признаки для сравнения. Это помогает понять, какие признаки являются информативными, а какие нет.

Поддерживаются различные сортировки объектов в дереве, по значению FRiS, по удаленности от столпа и т.д. Можно писать свои сортировки – это настраиваемый параметр.

Пример использования Рисунок 9. Пример использования в коде 2.3.3 Сравнение с другими представлениями данных Посмотрим на примеры использования «лочки» и сравним это с обычным точечным отображением.

–  –  –

Есть выборка, представляющая собой три скопления объектов в трехмерном пространстве, находящихся на некотором расстоянии друг от друга. Эта выборка содержит 90 объектов и 3 признака, измеренных в абсолютной шкале.

Затем был запущен алгоритм FRiS-Tax на этой выборке, и была выбрана кластеризация с максимальным качеством. Получилось разбиение на три кластера. Это разбиение совпадает с представлением человека об этой выборке. Человек тоже видит 3 группы похожих объектов и произведет кластеризацию так же. Каждый из кластеров помечен отдельным цветом. Красным выделены столпы кластеров.

Рисунок 10. Точечная диаграмма На рисунке 10 видно, что алгоритм, в целом, правильно построил кластеризацию.

Теперь посмотрим, как эта выборка будет отображаться в звездообразной форме и форме «лочки». Для того чтобы продемонстрировать, что это представление может показывать многомерные объекты с числом признаков больше 3, все признаки исходной выборки были дублированы. В итоге получилась выборка с 6 признаками. Из-за этого объекты будут обладать некоторой симметрией.

–  –  –

-1.0 Рисунок 11. Отображение в форме «лочки»

На левой картинке – звездообразное отображение. Объекты отображаются абсолютно. Произведена группировка по кластерам. Каждый кластер помечен тем же цветом, что и на точечной диаграмме.

На правой картинке – отображение в форме «лочки». Объекты отображаются относительно столпа первого кластера. Объекты отсортированы по значению FRiSфункции. Сверху объекты целевого кластера и объекты с максимальным значением FRiSфункции. Цветовая раскраска такая же, как на левой картинке.

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

Правая картинка предоставляет нам информацию о том, что:

1. Целевой кластер является довольно компактным, потому что объекты кластера не сильно отличаются между собой в сравнении со столпом своего кластера.

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

3. Объекты черного кластера (3), отличаются от объектов целевого кластера только по двум признакам, по остальным – они похожи. Таким образом, если мы уберем из рассмотрения признаки, по которым объекты отличаются, то объекты 1 и 3 кластеров могут быть объединены в один кластер.

После проведения анализа решения по визуализации «Ёлочка» мы получили выводы, которые соотносятся с выводами, которые можно сделать по точечной диаграмме, и с действительностью. Это говорит нам о том, что визуализация хорошо справилась с поставленной задачей на данном примере.

–  –  –

Есть некоторая выборка объектов, содержащая 140 объекта и 3 признака, не считая классификационного. Попробуем решить задачу кластеризации и получившийся результат представим в виде «лочки».

–  –  –

На рисунке 12 представлена визуализация кластеризации выборки относительно столпа первого кластера с параметром алгоритма FRiS-Tax DistanceToVirtualStolp = 1. Это одна и та же «Ёлочка» показанная с разных сторон.

На этой визуализации кластера показаны различными цветами. Сортировка объектов – по значениям FRiS.

На левой картинке можно увидеть, что нет четкой границы между кластерами.

Также можно заметить, что на самом верху и в самом низу есть группы объектов, у которых отклонения от столпа небольшие по признакам X и Z.

На правой картинке можно отчетливо видеть границу между кластерами и все объекты второго кластера отличаются от столпа первого кластера по признаку Y сильнее, чем наиболее отличный объект из первого кластера, это значит, что они линейно разделимы по признаку Y. Также на правой картинке можно заметить 4 группы объектов похожие между собой и имеющие четкую границу с другими группами объектов. Это означает, что исходную выборку можно разбить на большее число кластеров.

Посмотрим на эту выборку, представленную в виде точечной диаграммы.

Рисунок 13. Сравнение с точечной диаграммой На рисунке 13 показано как соотносятся группы объектов на точечной диаграмме с группами объектов на «лочке».

Можно убедиться, что, действительно, выборка содержит 4 кластера. Однако, при использованных параметрах алгоритма, кластеризация, содержащая 2 кластера, имеет лучшее качество - 69.9, против 67.5 для кластеризации с 4 кластерами.

2.3.4 Область применения контрола Данную визуализацию можно применять не только к отображению кластеров, но и вообще к любым многомерным данным.

На данные накладываются следующие ограничения:

1) Значения признаков должны быть положительными величинами.

Если среди значений по какому-либо признаку встречаются отрицательные значения, необходимо применить нормировку так, чтобы все значения стали положительными. Нормировку также полезно применять, если значения по разным признакам отличаются значительно. В этом случае «лочка» будет сильно «вытянутой» в одну сторону и это затруднит восприятие. Для удобного отображения лучше, чтобы все значения признаков попадали в сопоставимые по величине интервалы.

2) Среди значений признаков не должно быть пробелов.

Если пробелы все же существуют, то можно исключить из рассмотрения объекты, которые эти пробелы содержат, или воспользоваться одним из алгоритмов заполнения пробелов.

3) Если в выборке присутствуют признаки, измеренные в слабых шкалах, таких как номинальная или шкала порядков, необходимо воспользоваться алгоритмами усиления шкал, и привести эти шкалы к абсолютной шкале.

2.3.5 Способы применения визуализации Попробуем понять какие задачи можно решить при помощи этой визуализации 2.3.5.1 Работа с одиночным кластером Будем рассматривать «лочку», состоящую из объектов принадлежащих одному кластеру.

Глядя на такую диаграмму можно понять:

1) Геометрию кластера.

Можно понять имеет ли кластер сферическую форму или какую-либо другую, обладает ли кластер высокой или низкой компактностью. Это можно понять, посмотрев на разброс значений по признаку или группе признаков.

2) Можно ли разбить этот кластер на несколько кластеров Если кластер содержит группу объектов, которые отличаются от остальных, это может дать повод для дополнительного изучения этого кластера, и в конечном итоге эта группа может выделиться в новый кластер.

3) Насколько хорошо объекты кластера защищаются своим столпом. Это можно увидеть, если дополнительно рядом с каждым объектом на диаграмме показывать значение его FRiS-функции, которая рассчитывается относительно своего столпа и ближайшего столпа противника. Если есть объекты, у которых это значение близко к 0, то они являются спорными. Про такие объекты нельзя с уверенностью сказать, к какому кластеру они относятся.

2.3.5.2 Сравнение двух кластеров Предположим, что у нас есть две разных кластеризации одного множества объектов.

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

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

В первом случае мы не можем визуально оценить компактность кластера. Нам нужно сравнить объекты со столпами противника.

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

2.3.5.3 Сравнение кластеризаций Если у нас есть две различные кластеризации, то глядя на елочку, построенную по каждой из кластеризаций, можно сказать какая кластеризация лучше.

Чтобы правильно проинтерпретировать результаты, нужно отсортировать объекты в елочке. От сортировки напрямую зависит форма елочки. А по форме елочки мы и определяем свойства решения.

Самые популярные сортировки:

1) По значениям FRiS-функции. Для каждого объекта подсчитывается FRiSфункция. Для объектов целевого кластера FRiS-функция рассчитывается относительно столпа своего кластера и ближайшего вражеского столпа. Для объектов нецелевого кластера FRiS-функция рассчитывается относительно столпа своего кластера и столпа целевого кластера.

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

2) По кластерам. Объекты в елочке группируются по кластерам. В каждом кластере объекты сортируются по значениям FRiS-функции по убыванию.

Столп должен находиться сверху.

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

2.4 Использованные технологии В качестве платформы для разработки были выбраны.NET и язык C#. Во многом этот выбор был обусловлен тем, что библиотека алгоритмов FRiS.NET использовала эти технологии.

В качестве графического фреймворка был выбран WPF.

–  –  –

более современная технология, нежели WinForms;

богатые возможности для визуализации;

аппаратное ускорение через DirectX;

возможность использования трехмерной графики.

В качестве основного архитектурного шаблона приложений использовался MVVM (Model-View-ViewModel) [16]. MVVM является довольно популярным шаблоном, потому что он хорошо приспособлен для платформы WPF, а WPF создавался для упрощения сборки приложений с помощью шаблона MVVM.

Для отображения графов использовались библиотеки QuickGraph и Graph# (GraphSharp). QuickGraph предоставляет различные структуры данных и алгоритмы на графах. Graph# в свою очередь использует библиотеку QuickGraph и позволяет отображать графы в приложениях WPF.

Для обработки скриптов на Python была использована библиотека IronPython.

IronPython — одна из основных реализаций языка Python, предназначенная для платформы Microsoft.NET или Mono. Полностью написан на C#, и является транслятором компилирующего типа.

Для отображения трехмерной графики были использованы средства WPF 3D и библиотеку HelixToolkit. Эта библиотека предлагает богатый набор реализованных контролов, графических примитивов, а также классов-помощников. Использование этой библиотеки предоставило «из коробки» такой набор преимуществ, как способность вращения/приближения сцены, упрощенная работа с материалами, камерой, светом и с 3D моделями.

В качестве системы контроля версий использовался Mercurial. Тестирование производилось с помощью NUnit. Для создания заглушек при тестировании использовался Moq. Для логгирования использовалась библиотека NLog. В качестве контейнера внедрения зависимостей (dependency injection container) использовался Unity.

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

В частности, автором были получены следующие результаты:

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

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

Разработано новое трехмерное представление для кластеризации объектов, позволяющее отображать кластеризацию многомерных данных.

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

Разработанные программы соответствуют поставленной цели и решают поставленные задачи.

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

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

Литература

1. Загоруйко Н.Г. Прикладные методы анализа данных и знаний. Изд. ИМ СО РАН, Новосибирск, 1999 г.

2. Леванов, Д.А. Выпускная квалификационная работа бакалавра. Новосибирск, 2010.

26 с.

3. Борисова И.А. Методы решения задач распознавания образов комбинированного типа. Кандидатская диссертация. — Новосибирск, 2008.

4. Бауэр В.И. Платформа для разработки и анализа алгоритмов заполнения пробелов в табличных данных // Магистерская диссертация. — Новосибирск, НГУ, 2011.

5. Elena Fanea, Sheelagh Carpendale and Tobias Isenberg. An Interactive 3D Integration of Parallel Coordinates and Star Glyphs // In Proceedings of the IEEE Symposium on Information Visualization (InfoVis 2005, October 23--25, 2005, Minneapolis, Minnesota, USA). (Los Alamitos, CA), (John Stasko and Matt Ward, Ed.) IEEE Computer Society, 8 pages, 2005.

6. T. Kohonen, Self-Organizing Maps (Third Extended Edition), New York, 2001, 501 pages. ISBN 3-540-67921-9.

7. A. Inselberg. Parallel Coordinates: VISUAL Multidimensional Geometry and its Applications. Springer. 2009

8. Harri Siirtola. Interactive Visualization of multidimensional data. Academic dissertation. — 2007. — 170 с.

9. Adam Nathan. WPF 4 Unleashed // Sams. — 2010. — 848 с.

10. Мифтахутдинов Р.Р. Создание библиотеки алгоритмов когнитивного анализа данных и среды для аналитика. Выпускная квалификационная работа бакалавра. – Новосибирск, 2012.

11. Документация проекта ресурс]. — Режим доступа:

Unity [Электронный http://unity.codeplex.com/, свободный.

12. Документация к библиотеке FRiS.NET версии 1.0 [Электронный ресурс]. — Режим доступа: http://expasoft.ru/docs/fris-lib/, свободный, дата обращения: 29.05.2012.

13. Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес Приемы объектноориентированного проектирования. Паттерны проектирования = Design Patterns:

Elements of Reusable Object-Oriented Software. — СПб: «Питер», 2007. — С. 366.

14. Документация проекта CouchDb [Электронный ресурс]. — Режим доступа:

http://couchdb.apache.org/, свободный

15. Star glyph

16. MSDN Документация. V1.XXX. URL: http://msdn.microsoft.com/ruru/magazine/dd419663.aspx (Дата обращения: 29.05.2011)



Похожие работы:

«ПРИКЛАДНАЯ ДИСКРЕТНАЯ МАТЕМАТИКА 2008 Математические основы компьютерной безопасности № 1(1) УДК 681.322 РЕАЛИЗАЦИЯ ПОЛИТИК БЕЗОПАСНОСТИ В КОМПЬЮТЕРНЫХ СИСТЕМАХ С ПОМОЩЬЮ АСПЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ Д.А. Стефанцов Т...»

«ГОСУДАРСТВЕННЫЙ КОМИТЕТ СВЯЗИ, ИНФОРМАТИЗАЦИИ И ТЕЛЕКОММУНИКАЦИОННЫХ ТЕХНОЛОГИЙ РЕСПУБЛИКИ УЗБЕКИСТАН ТАШКЕНТСКИЙ УНИВЕРСИТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ Кафедра Информационная безопасность Допустить к защите зав. кафедрой «ИБ» Юсупов С.Ю. _ _ 2013 г. Выпускная квалификационная работа...»

«Министерство образования Республики Беларусь Учреждение образования «Белорусский государственный университет информатики и радиоэлектроники» «Институт информационных технологий» Кафедра микропроцессорных систем и сетей...»

«223 Комплексная системно-динамическая модель рыночной диффузии Шишаев М.Г. Институт информатики и математического моделирования КНЦ РАН, Москва КОМПЛЕКСНАЯ СИСТЕМНО-ДИНАМИЧЕСКАЯ МОДЕЛЬ РЫНОЧНОЙ ДИФФУЗИИ ИННОВАЦИОННОГО ПРОДУКТА В статье представлена структура и состав ко...»

«РАЗДЕЛ ДИДАКТИЧНИ ТЕХНОЛОГИИ В ОБУЧЕНИЕТО МАТТЕХ 2016 Том 1 ГРАФИЧЕСКИЕ МЕТОДЫ МАТЕМАТИЧЕСКОГО ПРОГРАММИРОВАНИЯ В КУРСЕ ВЫСШЕЙ МАТЕМАТИКИ ВАЛЕНТИНА Н. КЛИНДУХОВА, ОЛЬГА В. ЛЯШКО, АНАСТАСИЯ В. ГЕЙЛИК GRAPHIC METHODS OF THE MATHEMATICAL PROGRAMMING IN THE HI...»

«142 УПРАВЛЕНИЕ, ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА И ИНФОРМАТИКА УДК 004.896 Д.Е. Семёнов Модификация модели представления информационных объектов с использованием ориентированных графов в реляционных базах данных* Рассматриваются и исследуются существующие модели представления данных в...»

«Анализ мотивов поведения российских участников добровольных распределенных вычислений ТИЩЕНКО В. И. Институт системного анализа ФИЦ «Информатика и управление» РАН, Россия, 117312 Москва проспект 60-летия Октября, 9; тел. (499)135-24-38, факс (499)783-91-32, tischenko@is...»

«Учебно – методический комплекс “Охрана труда” 1. Учебная программа, для Белорусского государственного университета по всем специальностям факультета прикладной математики и информатики.2. Примерный тематический план.3. Программа курса “Охрана труда” для студентов 5-ого курса ФПМИ.4. Содержание лекционного курс...»

«МИНИСТЕРСТВО ОБЩЕГО И ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ РОСТОВСКОЙ ОБЛАСТИ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ПРОФЕССИОНАЛЬНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ РОСТОВСКОЙ ОБЛАСТИ «РОСТОВСКИЙ-НА-ДОНУ КОЛЛЕДЖ СВЯЗИ И ИНФОРМАТИКИ» М...»

«ДИАГНОЗ И ПРОГНОЗ ИЗМЕНЕНИЯ ГИДРОЛОГИЧЕСКОГО РЕЖИМА И ЭКОСИСТЕМ КРУПНЫХ ОЗЕР ПОД ВЛИЯНИЕМ АНТРОПОГЕННЫХ ФАКТОРОВ2 Филатов Н.Н1., Панин Г.Н.2, Дианский Н.А.3, Ибраев Р.А.3, Баклагин...»

«К.А. Кирьянов, В.С. Сизиков УДК 621.397 ПРОГРАММИРОВАНИЕ ЗАДАЧ ВОССТАНОВЛЕНИЯ ИСКАЖЕННЫХ ИЗОБРАЖЕНИЙ НА C/C++ В СИГНАЛЬНЫХ МИКРОПРОЦЕССОРАХ ФИРМЫ TEXAS INSTRUMENTS К.А. Кирьянов, В.С. Сизиков Рассматривается инструментальная реализация...»

«Министерство общего и профессионального образования Ростовской области Государственное бюджетное профессиональное образовательное учреждение Ростовской области «Ростовский-на-Дону государственный колледж связи и информатики» (ГБПОУ РО «РКСИ») УТВЕРЖДАЮ Директор ГБПОУ РО «РКСИ» М....»





















 
2017 www.pdf.knigi-x.ru - «Бесплатная электронная библиотека - разные матриалы»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.