Метка «кластеризация»

Доброго времени суток.

Пост и код приведённый ниже, предназначен не столько для использования алгоритма в рабочих целях, сколько для того, чтобы понять, как алгоритм fuzzy c-means работает и возможно, дать толчок к реализации этого алгоритма на других языках либо для усовершенствования приведённого кода и его дальнейшего использования в рабочих целях.

Алгоритм нечёткой кластеризации fuzzy c means на PHP

Читать полностью »

Предисловие

Гуляя по англоязычным просторам интернета в поисках решения одной из наболевших тем на работе, наткнулся на очень интересный алгоритм под названием «Fast Threshold Clustering Algorithm». Данный алгоритм кластеризации, что примечательно, появился сравнительно недавно, а именно в ноябре этого года и автором является Дэвид Варади. Ссылка на первоисточник будет доступна в конце статьи.

Для начала, что такое кластеризатор?

image

Читать полностью »

Сразу отмечу, что многие, кто сталкивался с виртуализацией от Microsoft, ничего нового для себя не найдут — это небольшой гайд по созданию кластера на базе Hyper-V 2012 с некоторыми тонкостями, касающихся конкретной конфигурации.
Итак, что мы имеем:

  • Два сервера с внешним SAS портом и 4-х портовой сетевой картой
  • Дисковое хранилище HP P2000 G3 SAS
  • Коммутатор, а лучше два в стеке, с поддержкой LACP, в моем случае — это стек из двух Cisco 2960S

По заверениям MS, желательно иметь одинаковые контроллеры SAS, с одинаковыми драйверами и прошивками, на всех узлах кластера.

Так же нам потребуется:

  • Домен AD
  • Компьютер или ноутбук в домене с установленной ОС Windows 8 или 8.1, для управления
  • Средства удаленного администрирования сервера — RSAT для windows 8 или 8.1

Важно отметить, что для управляющего ПК, windows 7 не подойдет, т.к. некоторый функционал RSAT для win 7 не работает с серверами семейства 2012.
Читать полностью »

Решение задачи кластеризации методом градиентного спускаПривет. В этой статье будет рассмотрен способ кластеризации данных, используя метод градиентного спуска. Честно говоря данный способ носит больше академический характер, нежели практический. Реализация этого метода мне понадобилась в демонстрационных целях для курса по машинному обучению, что бы показать как одинаковые задачи можно решить различными способами. Хотя конечно если вы планируете осуществить кластеризацию данных, используя дифференцируемую метрику, для которой вычислительно труднее найти центроид, нежели подсчитать градиент на некотором наборе данных, то этот метод может быть полезным. Итак если вам интересно как можно решить задачу k-means кластеризации с обобщенной метрикой используя метод градиентного спуска, прошу под кат. Код на языке R.

Читать полностью »

Всем привет!

Сегодня поговорим на тему как «профессионально сэкономить» деньги при использовании облачных сервисов Amazon Web Services при размещении веб-решений, адаптированных для России. Мы активно используем сервисы данного облачного провайдера для проектов компании почти 2 года и постоянно занимаемся оптимизацией расходов. Довольно странно, что важная тема оптимизации расходов на Amazon Web Services, очищенная от маркетингового булшита, как-то не особо представлена в сети. Постараюсь предметно поделиться опытом и обозначить явные выгоды и ошибки, которые следует учесть при проектировании веб-систем.

Читать полностью »

Определение высоконагруженных систем и способов их построения

      Нагрузка на сервер — это важный показатель использования серверного оборудования. Хит – это запрос клиента к серверу для получения информации. Нагрузка сервера определяется как отношение количества клиентских запросов (хитов) ко времени, выражается в хитах в секунду. Согласно исследованиям Microsoft в 2010 году высоконагруженным сервером можно считать сервер с нагрузкой 100-150 хитов в секунду.
      В литературе встречаются такие понятия как HPC-система, высоконагруженная система, высоконагруженный кластер, Highload-система, суперкомпьютер, которые порой используются как синонимы. Мы будем понимать сайт с нагрузкой не менее 150 хитов в секунду.
      Кластер – это группа компьютеров, которые работают вместе и составляют единый унифицированный вычислительный ресурс. Каждый узел работает под управлением своей копии операционной системы, в качестве которой чаще всего используются Linux и BSD.
      Чтобы понять каким образом задачи, выполняемые кластером, распределяются по его узлам необходимо дать определение масштабироемости. Масштабируемость — способность системы справляться с увеличением рабочей нагрузки (увеличивать свою производительность) при добавлении ресурсов. Система называется масштабируемой, если она способна увеличивать производительность пропорционально дополнительным ресурсам. Масштабируемость можно оценить через отношение прироста производительности системы к приросту используемых ресурсов. Чем ближе это отношение к единице, тем лучше. Также под масштабируемостью понимается возможность наращивания дополнительных ресурсов без структурных изменений центрального узла системы. Масштабирование архитектуры высоконагруженной системы может быть горизонтальным и вертикальным. Вертикальное масштабирование заключается в увеличении производительности системы за счёт увеличения мощности сервера. Главный недостаток вертикального масштабирования в том, что оно ограничено определённым пределом. Параметры железа нельзя увеличивать бесконечно. Однако на самом деле вертикальная компонента присутствует практически всегда, а универсального горизонтального масштабирования как такового не существует. Горизонтальное масштабирование заключается в увеличении производительности системы за счёт подключения дополнительных серверов. Именно горизонтальное масштабирование является сейчас фактически стандартом. Известен также такой термин, как диагональное масштабирование. Оно подразумевает одновременное использование двух подходов.
      И наконец, необходимо определить основной принцип, использующийся при построении любой кластерной архитектуры. Это — трёхзвенная структура системы (рис. 1). Три звена – это фронтэнд, бэкэнд и хранилище данных. Каждое звено выполняет свои функции, отвечает за различные стадии в обработке запросов и по-разному масштабируется. Первоначально запрос приходит на фронтэнд. Фронтэнды отвечают, как правило, за отдачу статических файлов, первичную обработку запроса и передачу его дальше. Второе звено, куда приходит запрос, уже предварительно обработанный фронтэндом — это бэкэнд. Бэкэнд занимается вычислениями. На стороне бэкэнда, как правило, реализуется бизнес-логика проекта. Следующий слой, который вступает в дело обработки запроса – это хранилище данных, которые обрабатываются бэкэндом. Это может быть база данных или файловая система.Трёхзвенная структура кластерной архитектурыЧитать полностью »

Все идет к тому, что я все таки запущу Oracle Real Application Clusters у себя на ноуте.

Я продолжаю мучатся и ставить на него абсолютно не подъемное Enterprise решение — RAC.
Так же у меня появилось желание проверить отказоустойчивость данного решения под нагрузкой.
После того, как все это заработает конечно…
После окончания установки, я планирую отключить работающий под нагрузкой Oracle node — буду использовать популярный в быту метод «power off».

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

Часть 1 (первый шаг к кластеризации)

Часть 2 перевода, на мой взгляд, уже не чересчур подробной статьи.

Официальный источник: lab128.com
Спасибо автору за проделанную работу.

P.S.Посмотрим, запустится ли все это?
Читать полностью »

RAC на ноуте — мне показалось это интересной темой для экспериментов.
Может не одного меня это заинтересует.
Присылайте поправки и исправления в личку.

Ниже представлен живой пример, того, как получить полноценное Oracle Enterprise решение (Oracle Real Application Clusters) на обычном компьютере.
Это Часть 1 перевода, на мой взгляд очень полезной, статьи в которой очень подробно рассматривается этот вопрос (на мой взгляд, даже чересчур подробно).

Официальный источник: lab128.com
Спасибо автору за проделанную работу.
Oracle кластер на ноуте, это действительно круто!
Читать полностью »

Существует множество компаний, которые продают товары клиентам или оказывают какие-то услуги. Часто продавцы интуитивно принимают решения, какой именно товар из всей существующей линейки лучше подходит клиенту. Также интуитивно определяется, какой массив клиентов более интересен для компании, а для каких клиентов продажа и дальнейшее обслуживание будут слишком затратные и невыгодные.
Для технологичного понимания всех этих вопросов хорошо подходит анализ информации с помощью технологии Data mining. Автоматизируя процесс сегментации клиентов с помощью кластеризации Data mining, компания может найти ответы на множество вопросов.
Рассмотрим вариант, когда компания занимается продажей товаров или услуг и дальнейшим послепродажным обслуживанием. Соответственно у компании есть потенциальные клиенты, которым осуществляются продажи. Также есть клиенты, которые обслуживаются или были ранее на обслуживании, т.е. которым ранее уже продавали. Для простоты будем их называть обслуживаемыми клиентами.
Кратко опишу цель и идею. Для анализа необходимо взять несколько показателей (15-20), которые есть у потенциальных и обслуживаемых клиентов одновременно. Также надо выбрать 2-3 показателя, которые есть только у обслуживаемых клиентов – это целевые показатели. Провести анализ кластеризации Data mining на массиве обслуживаемых клиентов. На выходе получим несколько кластеров со своими характеристиками. Далее кластеры группируем в сегменты по целевым показателям и даем какие-то понятные для маркетологов определения. Полученную модель анализируем, и полученные кластеры проецируем на потенциальных клиентов. На выходе получаем просегментированных потенциальных клиентов. На основании полученных сегментов можно выстроить стратегию и методологию продаж для каждого сегмента клиентов.
Рассмотрим подробнее данную методику и последовательность шагов для достижения результата.
Читать полностью »

Привет всем!

Хочу представить вам Карту Интернета или результат кластеризации более чем 350 тысяч сайтов в соответствии с переходами пользователей между ними. Размер круга определяется посещаемостью сайта, цвет – национальной принадлежностью, а положение на карте – его связями с другими сайтами. Если два сайта имеют стабильный поток пользователей между ними, то они будут «стараться» расположиться ближе друг к другу. После завершения работы алгоритма, на карте можно наблюдать скопления сайтов (кластеры) объединенные общими пользователями.

image

Например, если ввести в поиск habrahabr.ru, то можно увидеть, что dirty.ru и leprosorium.ru в том же «созвездии», а еще подальше livejournal.ru. Это говорит о том, что тот, кто сейчас читает этот текст, также с высокой вероятностью посещает эти сайты (относительно усредненного пользователя Рунета конечно).

Еще более интересный пример кластеризации можно увидеть внизу карты, между фиолетовой Японией и желтоватой Бразилией: там расположилась целая порнострана по размерам сопоставимая со всем Евронетом. Интересно, что будучи достаточно компетентным в рассматриваемом вопросе, внутри большого порнокластера можно различить тематические подкластеры меньшего размера.

Тем, кого интересует краткое техническое описание – добро пожаловать под кат
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js