
- •Задачи интеллектуального анализа: кластеризация
- •Распределенные вычисления на примере cloud-based по на примере prezi.Com
- •Условия использования сервиса Prezi.Com
- •Технология Redis
- •Программное обеспечение интеллектуального анализа: Система statistica Data Miner
- •Программное обеспечение интеллектуального анализа: Oracle Data Mining
- •Понятие «Data mining», Data mining и базы данных.
- •Архитектура odm
- •Функциональные возможности odm.
- •Технология BigTable (Google)
- •MapReduce: модель и реализации.
- •2. Реализация в распределенной среде.
- •3. Расширенные средства.
- •«Методы Data Mining: ассоциативные правила»
- •1. Определение. Основные понятия
- •2. Типы ассоциативных правил
- •3. Алгоритм apriori
- •4. Применение
- •«Методология Data Mining: crisp-dm»
- •Понимание бизнеса (Business Understanding)
- •Понимание данных (Data Understanding)
- •Подготовка данных (Data Preparation)
- •Моделирование (Modeling)
- •Оценка (Evaluation)
- •Развертывание (Deployment)
- •Большие данные
- •История
- •Методики анализа больших данных
- •Почему данные стали большими
- •Аналитический инструментарий
- •Как справиться с большими данными?
- •Кому выгодны большие данные
- •Проблема больших данных в различных отраслях
- •Информационной экономике нужны миллионы ит-сотрудников
- •10, Спрос на администраторов Big data
- •Стадии интеллектуального анализа: задача консолидации
- •Основные этапы консолидации данных
- •Источники данных
- •Обобщенная схема процесса консолидации
- •Вероятностный вывод
- •Методы интеллектуального анализа : эволюционное программирование и генетические алгоритмы
- •Применение генетических алгоритмов
- •Примеры программного обеспечения
- •Методы интеллектуального анализа: деревья решений
- •Документно-ориентированная система управления базами данных CouchDb
- •Ftp Сервер
- •Методы интеллектуального анализа: иерархические модели кластерного анализа
- •Документно-ориентированная система управления базами данных MongoDb
- •2.Понятие о документно-ориентированной системе управления базами данных MongoDb
- •3. Возможности
- •4.История разработки
- •5. Использование MongoDb
- •6.Оценка производительности
- •7.Безопасность
- •8. Соответствие между sql и MongoDb
- •Простые запросы на выборку
- •Запросы на выборку с регулярными выражениями
- •Запросы на выборку с группировками
- •Запросы на выборку с объединением таблиц
- •Информация о запросе
- •Создание, изменение и удаление документов
- •Бизнес-анализ
- •Часть 1. Понятие «бизнес-анализ»
- •Часть 2. Разделы науки бизнес-анализа
- •Часть 3. Техники бизнес-анализа
- •Часть 4.Система бизнес-анализа и поддержки принятия решений
- •Часть 5. Методы бизнес-анализа
- •6. Роли бизнес-аналитиков
- •7. Цели бизнес-аналитиков
- •8.Выдержки из должностной инструкции бизнес-аналитика
- •9.Будущее бизнес-аналитики
- •Иску́сственные нейро́нные се́ти
- •Систе́ма подде́ржки приня́тия реше́ний
- •1. Сппр- хранилище данных
- •2. Аналитические системы
- •Субд Cassandra
Общий конспект по Технологии анализа и обработки данных.
NOSQL
Что такое технология NOSQL
NoSQL — термин, обозначающий ряд подходов, проектов, направленных на реализацию моделей баз данных, имеющих существенные отличия от используемых в традиционных реляционных СУБД с доступом к данным средствами языка SQL. Концепция NoSQL не отрицает SQL, она лишь стремится решить проблемы и вопросы, с которыми не достаточно хорошо справляется РСУБД. Чаще всего данные в NoSQL решении представляются в виде хеш-таблиц, деревьев, документов и пр.
В качестве ответа на новые потребности возникло движение NoSQL - новый класс баз данных, который обещает разработчикам высокую скорость внесения изменений в приложения, низкие затраты на масштабирование и обработку/хранение больших объемов данных, высокую скорость работы на относительно недорогом железе - ценности, которые всегда были важны и для технологий компании InterSystems. Родовыми чертами NoSQL стали использование нереляционных моделей данных, простые API или протоколы доступа (в сравнении с традиционными), способность к горизонтальному масштабированию по требованию для некоторого набора операций на многих серверах, распределенное хранение данных на многих серверах, эффективное использование распределенных индексов и памяти для запросов, свободное обращение с серьезными и незыблемыми для традиционных СУБД вещами - целостностью данных и транзакциями.
Сегодня существует более сотни NoSQL-решений, отличающихся подходами к масштабированию и распределенному хранению данных, поддерживаемые модели данных и схемы хранения (в том числе реализация хранения).
Характерные черты NoSQL
Основные признаки современных NoSQL-решений.
1.Map/Reduce – это подход к обработке больших объемов данных, который состоит из двух фаз: Map – предварительная обработка входных данных и Reduce – обработка тем или иным способом выборки, полученной на стадии Map. Map/Reduce не является свойством исключительно NoSQL-решений. Аналогичным образом можно работать с большими объемами данных и в РСУБД. Но большинство NoSQL-систем (за исключением, может быть, самых простых key-value хранилищ) реализуют Map/Reduce в том или ином виде.
Преимущества такого подхода очевидны при соблюдении двух условий. Первое – фаза Map реализована так, что её можно запускать параллельно на нескольких узлах. Второе – Reduce позволяет принимать на вход не только результат выполнения Map, но и применения предыдущего Reduce.
2.Sharding (шардинг) (Шардинг — разделение данных по узлам) – горизонтальное партиционирование – как и Map/Reduce, не является эксклюзивным свойством NoSQL, но большинство таких решений включает простой механизм партиционирования (в том числе автоматического). Например: шардинг данных пользователей по их географическому местоположению (случай, когда мы заранее выбираем ключ партиционирования) или автоматическое партиционирование по синтетическому идентификатору (когда стоит задача равномерно распределить данные по партициям).
3.Репликация (Репликация — копирование поданных на другие узлы при обновлении)– один из основных способов обеспечения надежности в NoSQL-решениях. Ее алгоритмы могут быть как простыми (копия всех данных на отдельном узле), так и сложными (частичные копии на некоторых узлах системы с задаваемым процентом перекрытия). Так же, как и партиционирование, настройка репликации в большинстве NoSQL-решений – более легкая задача, чем в традиционных РСУБД.
Достоинства и недостатки
Достоинства:
1.Масштабируемость. Горизонтальное масштабирование существующих традиционных СУБД обычно является трудоемкой, дорогостоящей и эффективной только до определенного уровня задачей. В то же время многие NoSQL-решения проектировались исходя из необходимости, масштабироваться горизонтально и делать это «на лету». Поэтому эта процедура обычно проще и прозрачнее в NoSQL, чем в РСУБД.
2.Производительность БД на одном узле, а не в кластере также является немаловажным параметром. Для многих задач такие свойства традиционных СУБД, как транзакционность, изолированность изменений, надежность в пределах одного узла или даже сама реляционная модель, не всегда нужны в полном объеме. Поэтому отказ от этих свойств (всех или некоторых) позволяет NoSQL иногда добиваться большей производительности на одном узле, чем традиционным решениям.
3.Надежная работа в условиях, когда отказ железа или сетевая недоступность – обычное дело, является одним из свойств многих решений NoSQL. Основной способ ее обеспечения – это репликация. Сама по себе репликация отнюдь не является уникальной особенностью NoSQL, но здесь, как и при масштабировании, важную роль играют эффективность и легкость внесения изменений в существующую инсталляцию. Переход БД к работе в режиме репликации – это простая задача для большинства NoSQL-решений.
4.Простота разработки и администрирования – также важный аргумент в пользу NoSQL-технологий. Целый ряд задач, связанных с масштабированием и репликацией, представляющих значительную сложность и требующих обширной специальной экспертизы на традиционных СУБД, у NoSQL занимает считанные минуты. Задачи установки и настройки, само использование NoSQL-решений обычно существенно проще и менее трудоемки, чем в случае с РСУБД. Поэтому NoSQL-системы стали очевидным выбором для многих стартапов, где скорость разработки и внедрения является ключевым фактором.
NoSQL-решения не обязательно означают замену и полный отказ от РСУБД. Как обычно, инструмент должен выбираться под задачу, а не наоборот.
Недостатки:
1.NoSQL БД плохо подходят на роль хранения обычных структурированных данных
2. Логику ACID с NoSQL приходится встраивать в пользовательский код, тем самым усложняя работу.
3.По мнению Стоунбрейкера, NoSQL обладает не сильно возросшей производительностью относительно традиционных SQL-ориентированных СУБД.
Заключение:
Сегодня очень легко наблюдать стремительный рост данных в интернете. Согласно одной оценке, данные, созданные в 2010, составляют приблизительно 1,200 ЭБ (1018 байт) и вырастут почти к 8,000 ЭБ к 2015 в Интернете, являющимся основным поставщиком данных к потребителю.
Этот рост опережает рост вместимости, приводя к появлению систем управления информацией, где данные хранятся распределенным способом, но получают доступ и анализируют, как будто они находятся на одной машине.
Популярность NoSQL-решений растет, и связано это в первую очередь с новыми задачами по обработке ранее не мыслимых объемов данных, с новыми требованиями по доступности и масштабируемости. Несмотря на то, что многие NoSQL-системы кажутся (или пропагандируются в таком качестве) «серебряной пулей», на самом деле это такие же противоречивые решения, как и традиционные реляционные СУБД. Ведь, как известно, не бывает плохих инструментов – бывают инструменты, подходящие или не подходящие под конкретные задачи.
Задачи интеллектуального анализа: кластеризация
Основные понятия:
//Кластеризация документов — одна из задач информационного поиска. Целью кластеризации документов является автоматическое выявление групп семантически похожих документов среди заданного фиксированного множества документов. Следует отметить, что группы формируются только на основе попарной схожести описаний документов, и никакие характеристики этих групп не задаются заранее, в отличие от классификации документов, где категории задаются заранее.
Кластерный анализ — задача разбиения заданной выборки объектов (ситуаций) на подмножества, называемые кластерами, так, чтобы каждый кластер состоял из схожих объектов, а объекты разных кластеров существенно отличались. Задача кластеризации относится к статистической обработке, а также к широкому классу задач обучения без учителя.
Задачи и условия.
Кластерный анализ выполняет следующие основные задачи:
Разработка типологии или классификации.
Исследование полезных концептуальных схем группирования объектов.
Создание гипотез на основе исследования данных.
Проверка гипотез или исследования для определения, действительно ли типы (группы), выделенные тем или иным способом, присутствуют в имеющихся данных.
Кластерный анализ предъявляет следующие требования к данным:
Показатели не должны коррелировать между собой
Показатели не должны противоречить теории измерений
Распределение показателей должно быть близко к нормальному
Выборка должна быть однородна, не содержать «выбросов»
Показатели должны отвечать требованию «устойчивости»
Цели кластеризации:
Понимание данных путём выявления кластерной структуры. Разбиение выборки на группы схожих объектов позволяет упростить дальнейшую обработку данных и принятия решений, применяя к каждому кластеру свой метод .
Сжатие данных. Если исходная выборка избыточно большая, то можно сократить её, оставив по одному наиболее типичному представителю от каждого кластера.
Обнаружение новизны. Выделяются нетипичные объекты, которые не удаётся присоединить ни к одному из кластеров.
В первом случае число кластеров стараются сделать поменьше. Во втором случае важнее обеспечить высокую степень сходства объектов внутри каждого кластера, а кластеров может быть сколько угодно. В третьем случае наибольший интерес представляют отдельные объекты, не вписывающиеся ни в один из кластеров.
Общая схема кластеризации. Этапы:
Выделение характеристик
Определение метрики
Разбиение объектов на группы
Представление результатов
Выделение характеристик
Выбор свойств, характеризующих объекты:
Количественные характеристики(координаты, интервалы)
Качественные характеристики(цвет, статус)
Уменьшение размерности пространства, нормализация характеристик.
Представление векторов в виде характеристических векторов.
Выбор метрики
Метрика выбирается в зависимости от:
пространства, где расположены объекты
неявных характеристик кластеров.
Если все координаты объекта непрерывны и вещественны, а кластеры должны представлять собой нечто вроде гиперсфер, то используется классическая метрика Евклида
Алгоритмы кластеризации:
Иерархические алгоритмы
Минимальное покрывающее дерево
k-Means алгоритм ( алгоритм k-средних)
Метод ближайшего соседа
Алгоритмы нечёткой кластеризации
Применение нейронных сетей
Генетические алгоритмы
Метод закалки
Алгоритмы кластеризации делят на:
Строящие «снизу-вверх» и «сверху-вниз»
Монотетические и политетические
Непересекающиеся и нечёткие
Детерминированные и стохастические
Потоковые (online) и непотоковые
Зависящие и независящие от начального разделения
Зависящие и независящие от порядка разбиения объектов
Иерархические алгоритмы
Результатом работы является дендограмма (иерархия), позволяющая разбить исходное множество объектов на любое число кластеров.
Два наиболее популярных алгоритма, оба строят разбиение «снизу-вверх»:
Single-link – на каждом шаге объединяет два кластера с наименьшим расстоянием между двумя наиболее близкими представителями;
Complete-link – объединяет кластеры с наименьшим расстоянием между двумя наиболее удаленными представителями.
Минимальное покрывающее дерево
Позволяет производить иерархическую кластеризацию «сверху-вниз».
Сначала все объекты помещаются в один кластер. Затем на каждом шаг один из кластеров разбивается на два, так чтобы расстояние между ними было максимальным.
k-Means алгоритм
Случайно выбрать k точек, являющихся начальными «центрами масс» кластеров (любые k из n объектов, или вообще k случайных точек).
Отнести каждый объект к кластеру с ближайшим «центром масс».
Пересчитать «центры масс» кластеров согласно текущему членству.
Если критерий остановки алгоритма не удовлетворен, вернуться к шагу 2.
В качестве критерия остановки обычно выбирают один из двух:
Отсутствие перехода объектов из кластера в кластер на шаге 2
Минимальное изменение среднеквадратической ошибки.
Алгоритм чувствителен к начальному выбору «центров масс».
Метод ближайшего соседа
Один из старейших (1978), простейших и наименее оптимальных алгоритмов: Пока существуют объекты вне кластеров :
Для каждого такого объекта выбрать ближайшего соседа, кластер которого определен, и если расстояние до этого соседа меньше порога – отнести его в тот же кластер, иначе можно создать новый
Увеличить порог при необходимости;
Нечеткая кластеризация
Непересекающаяся (четкая) кластеризация относит объект только к одному кластеру. Нечеткая кластеризация считает для каждого объекта x i степень его принадлежности u ik к каждому из k кластеров.
Применение нейронных сетей
Искусственные нейронные сети (ИНС) легко работают в распределенных системах в силу своей природы. ИНС могут проводить кластеризацию только для объектов с числовыми атрибутами. Настройка весовых коэффициентов ИНС помогает сделать выбор характеристик (этап 1 кластеризации) менее субъективным.
Генетические алгоритмы
Выбрать начальную случайную популяцию для множества решений. Получить оценку качества для каждого решения (~ 1 / e 2 ).
Создать и оценить следующую популяцию решений, используя операторы: выбора – предпочитает хорошие решения; рекомбинации («кроссовер») – создает новое решение из двух существующих; мутации – создает новое решение из случайного изменения существующего.
Повторять шаг 2 пока это необходимо.
Метод закалки
Пытается найти глобальный оптимум, однако работает только с одним текущим решением. Случайно выбрать начальное разбиение P 0 и сосчитать ошибку E P0. Выбрать значения начальной и конечной температур (T 0 > T f ).
Выбрать P 1 невдалеке от P 0. Если E P0 > E P1, то утвердить P 1, иначе – P 1, но с вероятностью, зависящей от разницы температур. Повторить выбор соседних разбиений несколько раз.
Чуть-чуть «остыть»: T 0 = c * T 0, где c<1, T0 > Tf – снова на шаг 2, иначе – стоп.
//Кластеризация больших объемов данных
Обычно используют k-Means или его гибридные модификации. Если множество объектов не помещается в основную память, можно: проводить кластеризацию по принципу «разделяй и властвуй»; использовать потоковые (on-line) алгоритмы (например, leader, модификация метода ближайшего соседа); использовать параллельные вычисления.
Представление результатов
Обычно используется один из следующих способов:
представление кластеров центроидами
представление кластеров набором характерных точек; представление кластеров их ограничениями.
Применения кластеризации
Анализ данных (Data mining)
Упрощение работы с информацией
Визуализация данных
Группировка и распознавание объектов
Распознавание образов
Группировка объектов
Извлечение и поиск информации
Построение удобных классификаторов.
//Анализ данных (Data mining) Упрощение работы с информацией: достаточно работать только с k представителями кластеров; легко найти «похожие» объекты. Наглядное представление кластеров позволяет понять структуру множества объектов в пространстве.
//Группировка и распознавание объектов Распознавание образов (OCR и др.): 1.построение кластеров на основе большого набора учебных данных; 2.пометка каждого из кластеров; 3.ассоциация каждого объекта на входе алгоритма распознавания с меткой соответствующего кластера. Группировка объектов: сегментация изображений; уменьшение количества информации.
//Извлечение и поиск информации (на примере книг в библиотеке) LCC (Library of Congress Classification). Проблемы LCC: книга относится только к одной категории; классификация отстает от быстрого развития некоторых областей науки. Выручает автоматическая кластеризация: Нечеткое разбиение на группы решает проблему одной категории; Кластеры вырастают с развитием области.