Обновить
43.29

Data Mining *

Глубинный анализ данных

Сначала показывать
Порог рейтинга
Уровень сложности

HOLO — Система анализа музыки — Версия 2

Время на прочтение5 мин
Количество просмотров46K
image

Введение



Чуть менее чем год назад я писал на Хабре статью про разрабатываемую мной программу под названием HOLO.image
Если кратко, то программа «слушает» вашу музыкальную коллекцию и затем позволяет визуально исследовать массив собранных данных, а также составлять плейлисты похожих на заданные образцы композиций.
Позитивные отзывы позволили сохранить энтузиазм. На связь даже выходил один человек, который предпринял попытку переписать приложение из .NET WinForms в WPF, но после некоторых промежуточных успехов внезапно скрылся из поля зрения. Я его не виню, так как понимаю что проект содержательно весьма тяжёлый, и будучи программистом по основной работе, уделять достаточно времени на HOLO было затруднительно.
Тем не менее, я и сам затянул с релизом новой версии, но этому есть более позитивные причины, чем банальная лень.

Возможности

Вообще говоря, с точки зрения психологии восприятия звука, задача является очень субьективной. Каждый человек будет по-своему оценивать похожи ли Жанна Агузарова и Земфира, Led Zeppelin и Iron Maiden, System of a Down и Metallica. Но интенсивное тестирование на себе и знакомых показало что кое-какие вещи всё-таки можно выразить цифрами. Для каких-то жанров музыки лучше, для каких-то хуже.
Читать дальше →

Архитектура интеллектуального Интернет-паука

Время на прочтение4 мин
Количество просмотров16K

Понадобилось как-то выудить информацию из Интернета. Нашёл подходящий сайт, посмотрел на устройство страниц. Оказалось, что скрыто многое от ока всё скачивающего wget. Не помогла и стандартная сборка HTTrack. Хотел было паука для Scrapy написать, но не пришло ощущение надёжности и масштабируемости. Стал думу думать, да и велосипед изобретать, точнее свой web crawler писать.

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

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

Упрощения ради повествования было имя выбрано «ИнКр» (InCr), что является сокращением от Intellectual Crawler, а также является началом слова Incredible (невероятный).

ИнКр должен представлять собой платформу, которая сама реализует базовые функции по управлению заданиями, скачиванию и хранению документов. Со стороны же разработчика требуется написание парсеров для конкретного сайта. В ходе анализа были сформулированы следующие основные требования:
1. Возможность гибкой настройки загрузки: ограничение количества потоков, приостановка обработки для аутентификации, распознаванию captcha и т.п.;
2. Независимость загрузки страниц и их разбора, возможность повторного разбора ранее скаченных страниц;
3. Поддержка процесса разработки парсера: отдельно отмечаются все документы, которые не смогли быть полностью разобраны;
4. Возможность дополнения данных, полученных на основе информации нескольких страниц;
5. Продолжение процесса загрузки страниц после остановки;
6. Корректная обработка изменений;
7. Одновременная работа сразу с несколькими сайтами и наборами правил.

Продолжение

Данные в MarkLogic Server [Part1]

Время на прочтение5 мин
Количество просмотров2.4K
MarkLogic Server – это документо-ориентированная native XML база данных. Как и в любой документо-ориентированной DB в MarkLogic Server данные можно представить как файлово-фолдерную структуру. Кстати, при доступе к хранилищу через WebDAV данные именно так и представляются. Помимо собственно XML в MarkLogic Server можно хранить и любые бинарные данные в виде файлов.

Внутренне представление XML данных в MarkLogic Server довольно сложное и будет рассмотрено позже. Сейчас же стоит сказать о том, что поместить в MarkLogic Server можно только well formed XML так как хранится он не в виде простого текста, а как объект данных типа XML. Кодировкой внутреннего представления XML данных является Unicode, что избавляет от множества проблем с разными языками. Все Entity в XML данных разворачиваются в цифровые еntity. Если в документе используются только они, то это не доставит никаких проблем, в противном случае MarkLogic Server должен «знать» о всех используемых entity.
Читать дальше →

Profiler в MarkLogic Server

Время на прочтение5 мин
Количество просмотров1.4K
Профилирование – это очень важный аспект при разработке и поддержке почти любого приложения. Не в меньшей мере это относится и к базам данных. Особенно при больших объёмах информации производительность запросов к хранилищу данных является очень критичным. Что же касается производительности запросов в MarkLogic Server и их профилирования, можно сказать что эти вопросы являются одними из самых важных так как XQuery используемый в MarkLogic Server позволяет писать не только очень сложные запросы к самой DB но и довольно сложные приложения.
Читать дальше →

Бутстрап, или прикладная статистика почти без формул

Время на прочтение4 мин
Количество просмотров88K
BootstrapВ институтах студентов учат интегрировать аналитически, а потом обнаруживается, что на практике интегралы почти все считают численными методами. Ну или по крайней мере проверяют таким образом аналитическое решение.

В статистике тоже есть нечестный метод, который позволяет получить примерный ответ на многие практические вопросы без анализа, грубой компьютерной силой: бутстрап (англ. bootstrap). Придумал и опубликовал его в 1979 году Брэдли Эфрон.
Простой пример

Следим за голосованием на «Россия 10»

Время на прочтение3 мин
Количество просмотров18K
Как и многие россияне, в последнее время я каждый день захожу проголосовать на сайт 10russia.ru. Если кто не в курсе, Россия 10 — всероссийский проект, в рамках которого каждый может проголосовать за свой любимый географический или архитектурный объект в России. Задача проекта – выбор десяти новых визуальных символов России.
Мне показались странными цифры в ТОП2 в голосовании, и я решил посмотреть, как они меняются.
Подробности

Система персонализации News360: ранжирование кластеров информации

Время на прочтение11 мин
Количество просмотров9.1K
Когда система рекомендаций работает с большим количеством контента, основной задачей становится не фильтрация этого контента, а его ранжирование. Если говорить о новостях — каждый день выходят сотни тысяч статей, тысячи из которых могут затрагивать интересы каждого человека, читающего новости. Но в основном пользователи не читают больше 5-10 статей в день (по данным News360). Какие статьи показать первыми?

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

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

News360 - Everything you want to read

Читать дальше →

Число Данбара и пользователи ВКонтакте

Время на прочтение3 мин
Количество просмотров131K
Robin Dunbar with a Neaderthal skullНедавно я наткнулся на такую удивительную штуку как число Данбара.
История такова. 20 с лишним лет назад, когда выражение «британские учёные» ещё не было мемом, антрополог Робин Данбар, изучая данные по человекообразным обезьянам, обнаружил, что численность их стаи подчиняется определённому закону. Есть максимальное количество членов стаи. Если стая разрастается и её численность превышает порог, она разделяется на две. Причём для разных видов этот предельный размер получается разным.
Читать дальше →

Вероятностные модели: борьба с циклами и вариационные приближения

Время на прочтение8 мин
Количество просмотров16K
В четвёртой серии цикла о графических вероятностных моделях (часть 1, часть 2, часть 3) мы продолжим разговор о том, как справляться со сложными фактор-графами. В прошлый раз мы изучили алгоритм передачи сообщений, который, правда, работает только в тех случаях, когда фактор-граф представляет собой дерево, и в каждом узле можно без проблем пересчитать распределения грубой силой. Что делать в по-настоящему интересных случаях, когда в графе есть большие содержательные циклы, мы начнём обсуждать сегодня – поговорим о паре относительно простых методов и обсудим очень мощный, но непростой в использовании инструмент – вариационные приближения.


Читать дальше →

Решение задачи кластеризации методом градиентного спуска

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

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

Время на прочтение8 мин
Количество просмотров20K
image
Доброго времени суток. Этот топик рассчитан на тех, кто имеет представление об ограниченных машинах Больцмана (restricted Boltzmann machine, RBM) и их использовании для предобучения нейронных сетей. В нем мы рассмотрим особенности применения ограниченных машин Больцмана для работы с изображениями, взятыми из реального мира, поймем, почему стандартные типы нейронов плохо подходят для этой задачи и как их улучшить, а также немного пораспознаем выражения эмоций на человеческих лицах в качестве эксперимента. Те, кто представления o RBM не имеет, могут его получить, в частности, отсюда:

Реализация Restricted Boltzmann machine на c#,
Предобучение нейронной сети с использованием ограниченной машины Больцмана
Читать дальше →

Вероятностные модели: искусство расставлять скобки

Время на прочтение5 мин
Количество просмотров26K
После большого перерыва продолжаем цикл о графических вероятностных моделях (часть 1, часть 2). Сегодня мы наконец-то от постановок задач перейдём к алгоритмам; поговорим мы о самом простом, но часто полезном алгоритме вывода на фактор-графах – алгоритме передачи сообщений. Или, как его ещё можно назвать, алгоритме правильной расстановки скобок.


by sergey-lesiuk
Читать дальше →

PRISM — недремлющее око или золотой клад?

Время на прочтение2 мин
Количество просмотров11K
Многие из нас на сегодня уже слышали про проект PRISM от Агенства Hациональной Безопасности США. Вкратце, данный проект собирает всю информацию о так называемых «подозреваемых пользователях». Зашифрованные email-ы хранятся у этих ребят без срока давности до расшифровки, по нажатию кнопки сотрудник АHБ может получить доступ к вашему Фейсбук аккаунту, ко всем данным Гугла (например вашим поисковым запросам), и даже к удалённым вами письмам. Данная ситуация подвергает надруганию не только нашу и вашу личную жизнь (на что сотрудникам АHБ в принципе наплевать), но и личную жизнь граждан США (с чем сотрудникам АHБ приходится считаться). Но давайте отступим на минутку от истерики и вооружившись здоровой паранойей взглянем на ситуацию под другим углом.
Читать дальше →

Ближайшие события

Фильтрация смс спама с помощью наивного байесовского классификатора (код на R)

Время на прочтение8 мин
Количество просмотров29K
Привет. В этом посте мы рассмотрим простую модель фильтрации спама с помощью наивного байесовского классификатора с размытием по Лапласу, напишем несколько строк кода на R, и, наконец, протестируем на англоязычной базе данных смс спама. Вообще, на хабре я нашел две статьи посвященные данной теме, но ни в одной не было наглядного примера, чтобы можно было скачать код и посмотреть результат. Также не было упоминания про размытие, что существенно увеличивает качество модели, без особых затрат усилий, в отличие, скажем, от сложной предобработки текста. Но вообще, запилить очередной пост про наивного байеса меня побудило то, что я пишу методичку для студентов с примерами кода на R, вот и решил поделиться инфой.

Читать дальше →

Поиск наиболее влиятельных объектов подмножества социальной сети

Время на прочтение4 мин
Количество просмотров4.4K
В современном мире отношения между людьми, кроме социального уровня, заняли еще один — цифровой. С распространением виртуальных социальных сетей появилась тенденция иметь собственную страницу с персональными данными, искать друзей по интересам, создавать группы и пр. На одной IT Talk встрече, проводимой DataArt, я познакомился с человеком, занимавшимся исследованием топологий социальных сетей. В этот день я полностью определился с темой магистерской диссертации, которая представлена заголовком статьи. Дело в том, что количество информации в соцсетях постоянно увеличивается, и бо́льшая часть этой информации представлена в сыром виде. Сама по себе она не представляет интереса. Возникла мысль обработать подобные данные и получить результаты, которые вполне могли бы послужить благому делу.

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

Метод опорных векторов для нахождения полиморфизмов в геноме

Время на прочтение4 мин
Количество просмотров9.8K
Статья 2013-ого года «A support vector machine for identification of single-nucleotide polymorphisms from next-generation sequencing data» (O'Fallon, Wooderchak-Donahue, Crockett) предлагает новый метод определения полиформизмов в геноме на основе применения метода опорных векторов (SVM). Хотя ранее в статье 2011-ого года «A framework for variation discovery and genotyping using next-generation DNA sequencing data» уже описывалось применение методов машинного обучения для определения однонуклеотидных полиморфизмов (SNP-ов, снипов), подход, основанный на использовании SVM, описан впервые в данной статье.

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

Улучшения XQuery в MarkLogic Server

Время на прочтение6 мин
Количество просмотров1.1K
В MarkLogic Server реализован собственный диалект XQuery, который называется XQuery 1.0-ml. Не трудно догадаться, что это — тот самый XQuery 1.0 с некоторыми дополнениями от MarkLogic, призванными сделать жизнь разработчика лучше.
Читать дальше →

Создание OLAP куба в MS SQL Server 2012

Время на прочтение1 мин
Количество просмотров44K
Здравствуйте.

Понадобилось мне использовать для анализа данных OLAP кубы. Эту технологию я активно изучал и использовал в 2001-2002 годах и даже сертифицировался по ней. Но потом долгое время не прикасался к ней. И вот совсем недавно попробовал воспользоваться 2012 SQL Server’ом, но не тут то было: многое и того что появилось в новом сервере оказалось мне совершенно не знакомым.

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

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



Читать дальше →

Ларри Пейдж о программе PRISM: «What the ...?»

Время на прочтение3 мин
Количество просмотров73K

Штаб-квартира АНБ

Как известно, 6 июня газета The Washington Post опубликовала слайды из 41-страничной презентации PowerPoint, в которой речь идёт о секретной программе АНБ по наблюдению за гражданским населением. Якобы, в рамках программы PRISM девять интернет-компаний предоставляли АНБ прямой доступ к своим серверам для получения информации о пользователях: Microsoft, Yahoo, Google, Facebook, PalTalk, YouTube, Skype, AOL и Apple.
Читать дальше →

Классификация документов по их внешнему виду и содержанию

Время на прочтение4 мин
Количество просмотров12K
imageСегодня мы расскажем вам, как и зачем можно применять классификаторы для разделения и сортировки разных документов по их типам.

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

Но на этом работа классификаторов не заканчивается.
Читать дальше →