Pull to refresh
2
0

User

Send message

Кластеризация графов и поиск сообществ. Часть 1: введение, обзор инструментов и Волосяные Шары

Reading time10 min
Views47K
Привет, Хабр! В нашей работе часто возникает потребность в выделении сообществ (кластеров) разных объектов: пользователей, сайтов, продуктовых страниц интернет-магазинов. Польза от такой информации весьма многогранна – вот лишь несколько областей практического применения качественных кластеров:

  1. Выделение сегментов пользователей для проведения таргетированных рекламных кампаний.
  2. Использование кластеров в качестве предикторов («фичей») в персональных рекомендациях (в content-based методах или как дополнительная информация в коллаборативной фильтрации).
  3. Снижение размерности в любой задаче машинного обучения, где в качестве фичей выступают страницы или домены, посещенные пользователем.
  4. Сличение товарных URL между различными интернет-магазинами с целью выявления среди них групп, соответствующих одному и тому же товару.
  5. Компактная визуализация — человеку будет проще воспринимать структуру данных.

С точки зрения машинного обучения получение подобных связанных групп выглядит как типичная задача кластеризации. Однако не всегда нам бывают легко доступны фичи наблюдений, в пространстве которых можно было бы искать кластеры. Контентые или семантические фичи достаточно трудоемки в получении, как и интеграция разных источников данных, откуда эти фичи можно было бы достать. Зато у нас есть DMP под названием Facetz.DCA, где на поверхности лежат факты посещений пользователями страниц. Из них легко получить количество посещений сайтов, как каждого в отдельности, так и совместных посещений для каждой пары сайтов. Этой информации уже достаточно для построения графов веб-доменов или продуктовых страниц. Теперь задачу кластеризации можно сформулировать как задачу выделения сообществ в полученных графах.
Читать дальше →
Total votes 38: ↑36 and ↓2+34
Comments17

Шкворень: школьники переводят книгу про хакеров

Reading time9 min
Views87K
Кевин Поулсен, редактор журнала WIRED, а в детстве blackhat хакер Dark Dante, написал книгу про «одного своего знакомого».

Пролог
Глава 1. «The Key»
Глава 3. «The Hungry Programmers»
Глава 4. «The White Hat»
Глава 5. «Cyberwar!»
Глава 6. «I miss crime»
Глава 8. «Welcome to America»
Глава 34. «DarkMarket»



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

Когда я рассказал ребятам в лагере про подвиг Кевина, который выиграл Porsche 944, взломав дозвонившись на радиостанцию KIIS-FM, и как он разоблачил несколько сотен педофилов, школьники окрестили его «американским хакером-тесаком».

Несколько добровольцев вызвались перевести пролог и прикоснуться к миру писательства на Хабре и компьютерной безопасности.
Ведь будущие blackhat/whitehat хакеры должны знать своего друга/врага.

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

Предлагаю хабрсообществу присоединиться и перевести по одной главе (они по 2-3 страницы). Пишите в личку или в комментах кто что взял, буду оперативно обновлять раздел «Оглавление».

Начало истории о том, как крышевать миллиардный подпольный хакерский бизнес
Читать дальше →
Total votes 23: ↑16 and ↓7+9
Comments21

Как легко понять логистическую регрессию

Reading time5 min
Views205K
Логистическая регрессия является одним из статистических методов классификации с использованием линейного дискриминанта Фишера. Также она входит в топ часто используемых алгоритмов в науке о данных. В этой статье суть логистической регрессии описана так, что она станет понятна даже людям не очень близким к статистике.

image
Читать дальше →
Total votes 25: ↑19 and ↓6+13
Comments2

DIY робот для пайки

Reading time1 min
Views23K
image

Брайан Дори (Brian Dorey) занимается производством плат расширения для Raspberri Pi. И вот для платы Serial Pi Plus ему понадобился робот, который бы запаивал двухрядную гребенку пинов. Процесс это не то чтобы сложный, но при производстве больших партий руками делать сие не шибко приятно.

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

Взвесив все за и против, Брайан приступил к разработке собственного робота, выполняющего требуемую работу. Процесс занял пару месяцев. Робот выполняет узкоспециализированную задачу, за счет чего и удалось добиться достаточной простоты конструкции и относительно низкой стоимости.
Читать дальше →
Total votes 27: ↑27 and ↓0+27
Comments18

Создание gulp-плагина на примере построения графа зависимостей для модулей Angular JS

Reading time4 min
Views10K

Предисловие


В данной статье я поделюсь с вами опытом, как быстро и безболезненно создавать простые плагины для gulp. Статья ориентирована на таких же чайников, как и я. На тех, кто до сих пор лишь использовал готовые плоды gulp, срывая их с великого Древа Познания NPM, и не имел серьезного опыта работы с Node JS и его стримами.

Я не буду отвечать на вопросы вида «А зачем создавать свои плагины, если уже написано все, что только возможно?». Придет время, и вам за полчаса нужно будет написать что-то очень специфичное для вашего проекта. Перерыв весь npm, вы найдете один заброшенный плагин с убогим функционалом, автор которого недоступен, код ужасен и так далее. А может быть, это будет настолько специфичная задача, что вы не найдете абсолютно ничего.

Такой задачей для меня стала визуализация большого проекта, использующего Angular JS. Было огромное количество angular-модулей, связи между которыми были для меня уже не столь очевидными. Плюс мне хотелось видеть «диверсантов» — модули, которые каким-либо образом нарушали общую концепцию проекта (например, лезли в другой модуль не через провайдера, а напрямую).

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

Если читателя интересует лишь этот плагин, а не сама статья, то вот ссылка на проект на github и на npm. Всем остальным — добро пожаловать под кат.
Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments2

Архитектура приложения малой кровью

Reading time3 min
Views110K
Маленькая зарисовка на тему того, как разработать высокоуровневую архитектуру приложения.

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

Возьмите лист бумаги и карандаш. Если не сильно уверены в своих силах, то ещё и резинку, чтобы править схему. Более продвинутые читатели могут обратиться к профессиональным инструментам для проектирования архитектуры в электронном виде.

Теперь выясните, кто будет обращаться к вашей системе, чтобы передать или забрать данные, а к чему будет обращаться Ваша программа. Те системы или пользователи, которые обращаются к программе сами, нарисуйте схематически на листе бумаги вверху. Те, к которым будет обращаться программа (включая БД), — снизу.

Теперь нарисуйте под каждым нарисованным сверху субъектом прямоугольник с названием UI или API — это интерфейсы, к которым будет обращаться пользователь или внешняя управляющая система. Иногда UI тоже может обращаться к API. Объедините все прямоугольники с UI одним контуром и обзовите слоем представления. Объедините все прямоугольники с API и обзовите слоем сервисов.

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

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

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

Вы получили логическую архитектуру приложения. Разбросайте слои по серверам — получите физическую архитектуру.

Теперь вам остаётся детально проработать каждый маленький квадратик.

Маленький практический пример запрячу под кат.
Читать дальше →
Total votes 32: ↑19 and ↓13+6
Comments89

Дениел Таммет — Различные способы познания

Reading time1 min
Views11K


У Дениела Таммета лингвистическая, числовая и визуальная синестезия. Его восприятие слов, цифр и цветов смешано. Эта особенность создает новый способ восприятия и понимания мира. Автор книги «Рожденный в синий день» делится своими картинами и своей страстью к изучению языков и позволяет ненадолго заглянуть в свой необычный ум.


Оригинальное видео

P.S. В комментариях вы можете предложить интересное видео на перевод и озвучивание.
Total votes 22: ↑20 and ↓2+18
Comments3

3D-ручка: прототипировать или нет?

Reading time6 min
Views51K
Как вы помните из моих предыдущих постов, мы плавно движемся в сторону возможности собирать интересные штуки самостоятельно. Для тренировки мы уже собрали робота из конструктора DIY, увлекательно спаяли пару схем, и впереди у меня запланированы ещё пара интересных постов для таких же совсем-совсем начинающих. А сегодня немного отдохнём и посмотрим, достаточно ли будет 3D ручки для прототипирования наших идей?


Читать дальше →
Total votes 42: ↑39 and ↓3+36
Comments23

Учёные улучшили творческие способности людей при помощи электрического воздействия на мозг

Reading time2 min
Views11K
image

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

«Это исследование – пока доказательство возможности,- говорит Флавио Фрохлич, ассистент-профессор психиатрии, клеточной биологии и физиологии, биомедицинской инженерии и неврологии, ведущий эксперт в данной работе. – Мы получили доказательство того, что усиления альфа-колебаний влияют на сложное поведение – в нашем случае, творческую активность».

Главная цель учёных – не сделать всех художниками, а помочь людям, страдающим от депрессии и психиатрических заболеваний. Есть сведения, согласно которым альфа-ритм при депрессии нарушается. Однако, несмотря на то, что эксперимент проводился достаточно аккуратно – было применено двойное слепое тестирование с применением плацебо, вовсе не факт, что эту методику можно будет использовать для лечения депрессий. Хотя, есть основания полагать, что мы можем помочь людям выйти из подавленного состояния недорогим и неинвазивным способом.
Читать дальше →
Total votes 11: ↑10 and ↓1+9
Comments13

Компьютерная эмуляция мозга пчелы управляет дроном

Reading time2 min
Views15K


В то время, как некоторые специалисты продолжают работать над созданием искусственного интеллекта, а еще кто-то пытается создать киборга, ученые из Университета Шеффилда и Университета Сассекса ставят перед собой куда более приземленные задачи. Их цель — поставить управление дроном под управление мозгом пчелы. Проект Green​ Brain Project работает, начиная с 2012 года. Основная задача проекта — создание компьютерной модели мозга пчелы, и перенос «мозга» в управляющую систему дрона.

Кроме того, исследователи планируют еще выяснить принцип работы мозга пчелы, узнать, как он работает, и продвинуться в понимании концепции искусственного интеллекта. Задача, которую поставили перед собой исследователи, гораздо более простая, чем, например, эмуляция работы мозга человека — такой проект тоже существует, но вряд ли он будет реализован в ближайшее время. Создать компьютерную модель мозга пчелы — также чрезвычайно сложная задача. Но в основном нервном узле пчелы всего 960 тысяч нейронов, в то время, как у человека и млекопитающих мозг состоит из десятков и сотен миллионов нейронов.
Читать дальше →
Total votes 17: ↑15 and ↓2+13
Comments8

OSSIM — разворачиваем комплексную open source систему управления безопасностью

Reading time12 min
Views142K


OSSIM (Open Source Security Information Management) — система управления, контроля и обеспечения информационной безопасности.
OSSIM «из коробки» включает в себя такой функционал как:
  • Сбор, анализ и корреляция событий — SIEM
  • Хостовая система обнаружения вторжений (HIDS) — OSSEC
  • Сетевая система обнаружения вторжений (NIDS) — Suricata
  • Беспроводная система обнаружения вторжений (WIDS) — Kismet
  • Мониторинг узлов сети- Nagios
  • Анализ сетевых аномалий – P0f, PADS, FProbe, Arpwatch и др.
  • Сканер уязвимостей – OpenVAS
  • Мощнейшая система обмена информацией об угрозах между пользователями OSSIM — OTX
  • Более 200 плагинов для парсинга и корреляции логов со всевозможных внешних устройств и служб

Читать дальше →
Total votes 30: ↑30 and ↓0+30
Comments37

Дайджест статей по анализу данных №4 (23.06.2014 —06.07.2014)

Reading time2 min
Views7.8K

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

Читать дальше →
Total votes 20: ↑17 and ↓3+14
Comments0

63-летнюю женщину арестовали в Румынии за использование торрентов

Reading time1 min
Views21K
imageРумынская полиция арестовала 63-летнюю женщину за нарушение авторских прав с помощью BitTorrent. Арест произошел в городе Клуж-Напока, возбуждено уголовное дело.
Читать дальше →
Total votes 26: ↑23 and ↓3+20
Comments26

Pocketsphinx. Распознавание речи и голосовое управление в Linux

Reading time11 min
Views124K
— Всё в порядке, Лёня?
Динамики отрегулированы на максимум, я морщусь, отвечаю:
— Да. Тише звук.
— Звук — тише, — соглашается «Виндоус-Хоум», — тише, тише…
— Хватит, Вика
С.Лукьяненко, «Лабиринт отражений»

Введение


В 1997-ом году Лукьяненко пророчил для десктопа сочетание CLI и голосового управления. Однако сейчас голосовое управление — достаточно узкая ниша.
Голосовое управление — взаимодействие с устройством при помощи звуковых команд. Не путайте это понятие с распознаванием речи. Для голосового управления достаточно, чтобы устройство реагировало на единственную нужную команду (ведь ваша собака не может работать машинисткой?). Распознавание речи — гораздо более глобальная проблема: в этом случае устройство должно преобразовывать в текстовый формат все слова, произнесенные вами. Как легко догадаться, распознавание речи на данный момент реализовано поверхностно относительно человеческих возможностей.
Функционал, рассмотренный в статье, может быть применен, к примеру, для организации модного сейчас «умного дома» или просто управления компьютером. Честно говоря, для описания управления компьютером хватило бы пары абзацев, но я попытаюсь показать вам основы работы с CMU Sphinx.
Кстати, процентов 70 описанного здесь подойдет и пользователям Windows.
Научим Linux слушаться?
Total votes 72: ↑63 and ↓9+54
Comments37

Введение в fetch

Reading time5 min
Views297K

Прощай, XMLHttpRequest!


fetch() позволяет вам делать запросы, схожие с XMLHttpRequest (XHR). Основное отличие заключается в том, что Fetch API использует Promises (Обещания), которые позволяют использовать более простое и чистое API, избегать катастрофического количества callback'ов и необходимости помнить API для XMLHttpRequest.
Читать дальше →
Total votes 35: ↑30 and ↓5+25
Comments145

Самые нужные плагины для Gulp

Reading time6 min
Views161K


Это пост можно сказать является дубликатом моей предыдущей подборки “Самые нужные плагины для Grunt”. Дело в том, что спустя много часов поиска я не нашел крутых плагинов для Gulp, которых нет для Grunt за исключением пары весьма специфичных утилит. Всё как раз наоборот, но проигнорировать множество пользователей Gulp я не мог. Все недостающие плагины я выделил, потому что Gulp умеет использовать их из Grunt, как и Grunt из Gulp.

Доброго времени суток, всем! Кто-то умный, не помню в какой статье именно на Хабре, буквально недавно размышлял о процессе разработки с явным призывом автоматизировать все, что только можно автоматизировать. И лучше один раз потратить время на автоматизацию, чтобы потом экономить его на протяжении всего проекта.

У веб-разработчиков есть прекрасный инструмент для автоматизации массы задач, который называется Gulp. И моя страсть к таксономии заставила себя собрать огромную коллекцию почти из 100 ценных плагинов для этого сборщика. Думаю многие кто уже использует Gulp найдут для себя что-то нужное, а кто нет, глядя на возможности, получит хорошую мотивацию установить его и понять как эта штука работает.

А еще я выложил подборку на GitHub, чтобы каждый мог пополнить коллекцию.
Читать дальше →
Total votes 54: ↑46 and ↓8+38
Comments30

Пишем свой нагрузочный тестер на Node.js

Reading time4 min
Views18K
В посте речь пойдет о написании утилиты для нагрузочного тестирования HTTP сервисов на Node.js, а также описание самого инструмента и области его использования.
Читать дальше →
Total votes 26: ↑22 and ↓4+18
Comments12

Простой парсинг сайтов с помощью SlimerJS

Reading time2 min
Views68K
В виду отсутствия хорошего материала по парсингу с помощью скриптового браузера SlimerJS и наличия свободного времени решил написать небольшую статью.


Читать дальше →
Total votes 47: ↑41 and ↓6+35
Comments15

Работа с COM портом в web-проекте

Reading time4 min
Views49K

Пролог


Один из клиентов нашего web-проекта захотел использовать для поиска заказов в системе сканер штрихкодов. Но, к сожалению, полностью отказался от идеи работы с ними в режиме имитации клавиатуры — только эмуляция COM-порта.
Вариантов решения было не особенно много:
  • отдельное нативное приложение, которое бы отправляло запрос на наш сервер, а сервер бы отдавал команду в браузер
  • работа с COM портом непосредственно из браузера

К счастью, есть способ решения проблемы вторым путём.

Читать дальше →
Total votes 52: ↑51 and ↓1+50
Comments31

Какой могла бы быть программа ИИ

Reading time4 min
Views3.1K
Ниже я написал небольшое рассуждение о том, какой могла бы быть компьютерная программа ИИ. Во-первых, на мой взгляд, нужно отделить собственно разум, который отвечает на вопрос «КАК достичь цели?», от желаний, которые определяют цель, иными словами, разум решает задачи, которые ставят эмоции. Далее под разумом понимается программа или алгоритм, который может находить ответы на вопросы, когда ответы заранее неизвестны. Но как могла бы работать эта программа, как она выясняет последовательность действий, нужных для достижения цели?
Читать дальше →
Total votes 19: ↑4 and ↓15-11
Comments2
1
23 ...

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity