Углубимся ещё немного в малохоженные дебри Data Science. Сегодня в очереди на препарацию алгоритм кластеризации DBSCAN. Прошу под кат людей, которые сталкивались или собираются столкнуться с кластеризацией данных, в которых встречаются сгустки произвольной формы — сегодня ваш арсенал пополнится отличным инструментом.
Рубрика «clustering» - 2
Интересные алгоритмы кластеризации, часть вторая: DBSCAN
2017-02-20 в 6:46, admin, рубрики: cluster, clustering, data mining, dbscan, exotic clusters, graphs, manifold, python, sklearn, Алгоритмы, математика, машинное обучениеИнтересные алгоритмы кластеризации, часть первая: Affinity propagation
2017-02-06 в 5:38, admin, рубрики: affinity propagation, clustering, data mining, graphs, Алгоритмы, математика, машинное обучение, метки: affinity propagationЕсли вы спросите начинающего аналитика данных, какие он знает методы классификации, вам наверняка перечислят довольно приличный список: статистика, деревья, SVM, нейронные сети… Но если спросить про методы кластеризации, в ответ вы скорее всего получите уверенное «k-means же!» Именно этот золотой молоток рассматривают на всех курсах машинного обучения. Часто дело даже не доходит до его модификаций (k-medians) или связно-графовых методов.
Не то чтобы k-means так уж плох, но его результат почти всегда дёшев и сердит. Есть более совершенные способы кластеризации, но не все знают, какой когда следует применять, и очень немногие понимают, как они работают. Я бы хотел приоткрыть завесу тайны над некоторыми алгоритмами. Начнём с Affinity propagation.
Масштабирование ClickHouse, управление миграциями и отправка запросов из PHP в кластер
2016-12-20 в 9:52, admin, рубрики: big data, clickhouse, clustering, columnar database, nosql, php, sql, базы данных, Блог компании СМИ2, веб-аналитика, структуры данныхВ предыдущей статье мы поделились своим опытом внедрения и использования СУБД ClickHouse в компании СМИ2. В текущей статье мы затронем вопросы масштабирования, которые возникают с увеличением объема анализируемых данных и ростом нагрузки, когда данные уже не могут храниться и обрабатываться в рамках одного физического сервера. Также мы расскажем о разработанном нами инструменте для миграции DDL-запросов в ClickHouse-кластер.
Кластеризация с пакетом ClusterR, часть 2
2016-10-23 в 16:44, admin, рубрики: clustering, data mining, k-means, k-medoids, R, кластеризация, машинное обучениеЭта статья посвящена кластеризации, а точнее, моему недавно добавленному в CRAN пакету ClusterR. Детали и примеры ниже в большинстве своем основаны на пакете Vignette.
Кластерный анализ или кластеризация — задача группирования набора объектов таким образом, чтобы объекты внутри одной группы (называемой кластером) были более похожи (в том или ином смысле) друг на друга, чем на объекты в других группах (кластерах). Это одна из главных задач исследовательского анализа данных и стандартная техника статистического анализа, применяемая в разных сферах, в т.ч. машинном обучении, распознавании образов, анализе изображений, поиске информации, биоинформатике, сжатии данных, компьютерной графике.
Наиболее известные примеры алгоритмов кластеризации — кластеризация на основе связности (иерархическая кластеризация), кластеризация на основе центров (метод k-средних, метод k-медоидов), кластеризация на основе распределений (GMM — Gaussian mixture models — Гауссова смесь распределений) и кластеризация на основе плотности (DBSCAN — Density-based spatial clustering of applications with noise — пространственная кластеризация приложений с шумом на основе плотности, OPTICS — Ordering points to identify the clustering structure — упорядочивание точек для определения структуры кластеризации, и др.).
В первой части: гауссова смесь распределений (GMM), метод k-средних, метод k-средних в мини-группах.
Читать полностью »
Кластеризация с пакетом ClusterR, часть 1
2016-09-26 в 8:54, admin, рубрики: clustering, data mining, k-means, k-medoids, R, Блог компании Инфопульс Украина, кластеризация, машинное обучениеЭта статья посвящена кластеризации, а точнее, моему недавно добавленному в CRAN пакету ClusterR. Детали и примеры ниже в большинстве своем основаны на пакете Vignette.
Кластерный анализ или кластеризация — задача группирования набора объектов таким образом, чтобы объекты внутри одной группы (называемой кластером) были более похожи (в том или ином смысле) друг на друга, чем на объекты в других группах (кластерах). Это одна из главных задач исследовательского анализа данных и стандартная техника статистического анализа, применяемая в разных сферах, в т.ч. машинном обучении, распознавании образов, анализе изображений, поиске информации, биоинформатике, сжатии данных, компьютерной графике.
Наиболее известные примеры алгоритмов кластеризации — кластеризация на основе связности (иерархическая кластеризация), кластеризация на основе центров (метод k-средних, метод k-медоидов), кластеризация на основе распределений (GMM — Gaussian mixture models — Гауссова смесь распределений) и кластеризация на основе плотности (DBSCAN — Density-based spatial clustering of applications with noise — пространственная кластеризация приложений с шумом на основе плотности, OPTICS — Ordering points to identify the clustering structure — упорядочивание точек для определения структуры кластеризации, и др.).
Читать полностью »
Active-Passive PostgreSQL Cluster с использованием Pacemaker, Corosync
2016-04-04 в 13:58, admin, рубрики: clustering, high availability, postgresql, Администрирование баз данных
Описание
В данной статье рассматривается пример настройки Active/Passive кластера для PostgreSQL с использованием Pacemaker, Corosync. В качестве дисковой подсистемы рассматривается диск от системы хранения данных (CSV). Решение напоминает Windows Failover Cluster от Microsoft.
Технические подробности:
Версия операционной системы — CentOS 7.1
Версия пакета pacemaker — 1.1.13-10
Версия пакета pcs — 0.9.143
Версия PostgreSQL — 9.4.6
В качестве серверов(2шт) — железные сервера 2*12 CPU/ 94GB memory
В качестве CSV(Cluster Shared Volume) — массив класса Mid-Range Hitachi RAID 1+0
Подготовка узлов кластера
Кластеризация nodejs web-сервера с помощью node-clusterize-cli
2014-01-13 в 12:43, admin, рубрики: cli, clustering, clusterization, node.js, Серверное администрирование, метки: cli, clustering, clusterization, node.jsПоследние полгода я занимаюсь разработкой достаточно большого web-приложения, под капотом которого ревет и дымится NodeJS. Когда дело дошло до деплоя на продакшн я задумался: «почему бы мне не использовать несколько тредов с инстансом приложения?».
Реализовав кластер, я увидел, что производительность от его использования возросла в 1,5 раза, что очень даже не плохо, учитывая малый объем потраченных усилий. Но я решил не останавливаться на этом, и сделать удобный CLI для работы с кластером, чтобы отвязать код, который отвечает за запуск кластера от конкретного приложения. Кроме того, очень хотелось демонизировать кластер, чтобы он висел себе молча в процессах, поднимал упавшие воркеры, писал в логи, и никого больше не отвлекал.
Так появился node-clusterize-cli.
Читать полностью »
Кластеризация веб приложений на хостинге Amazon Web Services
2013-12-01 в 18:16, admin, рубрики: Amazon Web Services, clustering, метки: Amazon Web Services, clustering Тема высоконагруженных приложений у всех на слуху. Тоже решил вставить свои 5 копеек и поделиться опытом создания высоконагруженного приложения на инфраструктуре AWS.
Сначала, буду банален и повторю всем известные истины. Есть 2 пути масштабирования приложения:
1) вертикальное масштабирование — это увеличение производительности каждого компонента системы (процессор, оперативная память, прочие компоненты);
2) горизонтальное, когда соединяют несколько элементов воедино, а система в целом состоит из множества вычислительных узлов, решающих общую задачу, тем самым увеличивая общую надежность и доступность системы. А увеличение производительности достигается добавлением в систему дополнительных узлов.
Первый подход неплох, но есть существенный минус — ограниченность мощности одного вычислительного узла — невозможно бесконечно увеличивать частоту вычислительного ядра процессора и пропускную способность шины.
Поэтому горизонтальное масштабирование значительно выигрывает у своего вертикального брата, ведь при недостатке производительности можно добавить в систему узел (или группу узлов).
Недавно мы в очередной раз постигали все прелести горизонтального масштабирования на практике: строили высоконадежный социальный сервис для болельщиков американского футбола, выдерживающий пиковую нагрузку в 200 000 запросов в минуту. Поэтому хочу рассказать о нашем опыте создания высокомасштабируемой системы на инфраструктуре Amazon Web Services.
Обычно, архитектура веб приложения выглядит следующим образом:
Рис. 1. Типичная архитектура веб приложения
- первым пользователя “встречает” веб-сервер, на его плечи возлагаются задачи отдачи статических ресурсов и передачи запросов приложению;
- далее эстафета передается приложению, где протекает вся бизнес-логика и взаимодействие с базой данных.
Чаще всего узкими местами системы являются код приложения и база данных, следовательно, стоит предусмотреть возможности их распараллеливания. Мы использовали:
- development language and core framework — java 7 and rest jersey
- application server — tomcat 7
- database — MongoDB (NoSQL)
- cache system — memcached
Как это было, или через тернии к high load
Windows Server 2012 R2! Что нового в кластеризации?
2013-07-22 в 11:41, admin, рубрики: clustering, Блог компании «Звезды и С», виртуализация, системное администрирование, метки: clustering Алексей Кибкало продолжает делиться секретами! Предлагаем посмотреть запись вебинара. Windows Server 2012 R2! Что нового в кластеризации?
Что было рассмотрено:
- Кластеры виртуальных машин с общим VHDX хранилищем
- CSV: ReFS с CSV, CSV Cache, CSV Deduplication,…
- Новый Cluster Migration Wizard — Живая миграция с WS2012
- Настройки Hyper-V Heartbeat — один сайт и много сайтов
- Новый Cluster Dashboard
- Новая кворумная модель — более никаких моделей!
- Новые принципы ForceQuorum
- Высокая доступность сайта в двух-сайтовой модели
- Эвакуация ВМ при остановке узла
- Изменения Hyper-V Replica
- Исследование здоровья кластеризованных ролей
- Проверка сети внутри ВМ и защещенные сети
- Bare-Metal Deployment из System Center
- Высокодоступный NVGRE Gateway
Кластеризация k-means с расстоянием Евклида и Махаланобиса
2012-07-17 в 13:44, admin, рубрики: clustering, clusterization, data mining, k-means, Алгоритмы, искусственный интеллект, метки: clustering, clusterization, data mining, k-meansВ предыдущей статье я рассказывал, как можно реализовать алгоритм k-means на c# с обобщенной метрикой. В комментах можно почитать обсуждение того, насколько целесообразно использовать разные метрики, о математической природе использования разных метрик и тому прочее. Мне тогда хотелось привести красивый пример, но не было под рукой подходящих данных. И вот сегодня я столкнулся с задачей, которая хорошо иллюстрирует преимущества использования расстояния Махаланобиса в k-means кластеризации. Подробности под катом.