Machine Learning/Data Mining/Big Data — TechCave

Машинное обучение (англ Machine Learning) — обширный подраздел искусственного интеллекта, математическая дисциплина, использующая разделы математической статистики, численных методов оптимизации, теории вероятностей, дискретного анализа, и извлекающа

Machine Learning/Data Mining/Big Data

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

Data Mining (рус. добыча данных, интеллектуальный анализ данных, глубинный анализ данных) — собирательное название, используемое для обозначения совокупности методов обнаружения в данных ранее неизвестных, нетривиальных, практически полезных и доступных интерпретации знаний, необходимых для принятия решений в различных сферах человеческой деятельности.

Стена группы

Загрузка...
3 года назад
#
Использование машинного обучения и цепи Маркова в создании музыки

Markov Composer

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

Markov Composer

Подробнее
Загрузка...
3 года назад
#
Определяем веса шахматных фигур регрессионным анализом

Шахматы

В этой статье речь пойдёт о небольшом программистском этюде на тему машинного обучения. Замысел его возник у меня при прохождении известного здесь многим курса «Machine Learning», читаемого Andrew Ng на Курсере. После знакомства с методами, о которых рассказывалось на лекциях, захотелось применить их к какой-нибудь реальной задаче. Долго искать тему не пришлось — в качестве предметной области просто напрашивалась оптимизация собственного шахматного движка.

Вступление: о шахматных программах

Шахматы

Не будем детально углубляться в архитектуру шахматных программ — это могло бы стать темой отдельной публикации или даже их серии. Рассмотрим только самые базовые принципы. Основными компонентами практически любого небелкового шахматиста являются поиск и оценка позиции.

Подробнее
Загрузка...
3 года назад
#
Классификация предложений с помощью нейронных сетей без предварительной обработки

Довольно часто встречается задача классификации текстов — например, определение тональности (выражает ли текст позитивное мнение или отрицательное о чем-либо), или разнесения текста по тематикам. На Хабре уже есть хорошие статьи с введением в данный вопрос.

Сегодня я хочу поговорить о проблеме классификации отдельных предложений. Решение этой задачи позволяет делать много интересного, например, выделять положительные и отрицательные моменты из длинных текстов, определять тональность твитов, является компонентом многих систем отвечающих на естественно-языковые вопросы (классификация типа вопроса), помогает сегментировать веб-страницы на смысловые блоки и многое другое. Однако, классификация отдельных предложений значительно сложнее классификации больших блоков текста — в одном предложении значительно меньше полезных признаков, и велико влияние порядка слов. Например: «как положено фильму ужасов, этот фильм был ну очень жутким» — содержит негативные слова («ужас», «жуткий»), но выражает положительное мнение о фильме, «все было ужасно красиво», или даже «отличный фильм, ничего не скажешь, только зря деньги потратили».

Традиционно это затруднение стараются решать с помощью предварительной обработки текста и ручного выделения признаков. В предварительную обработку могут входить как относительно простые техники (учет отрицания путем приклеивания частицы «не» к следующим словам), там и более сложные наборы правил переключения тональности, а также построение дерева зависимостей, а в ручные признаки — словари положительных и отрицательных слов, место слова в предложении, и другие — насколько хватит фантазии. Ясно, что сей процесс нудный, требующий много сторонних функций (например, нужен парсер для грамматического разбора предложения, словари), и не всегда результативный. Например, если авторы предложений делали много грамматических ошибок, то парсер, строящий дерево зависимостей, начинает сильно путаться, и качество работы всей системы резко снижается.

Но дело даже и не в этом — а в том, что все это делать лень. Я глубоко убежден, что системы машинного обучения должны работать end-to-end – загрузили обучающие данные — получили работающую модель. Пусть даже качество упадет на пару процентов, но трудозатраты снизятся на порядок, и откроется путь для большого числа новых и полезных приложений (например, вот я нашел статью об интересном применении классификатора текстов ).

Читать далее
Загрузка...
3 года назад
#
Машинное обучение — 4: Скользящее среднее

Принято считать, что две базовые операции «машинного обучения» — это регрессия и классификация. Регрессия — это не только инструмент для выявления параметров зависимости y(x) между рядами данных x и y (чему я уже посвятил несколько статей), но и частный случай техники их сглаживания. В этом примере мы пойдем чуть дальше и рассмотрим, как можно проводить сглаживание, когда вид зависимости y(x) заранее неизвестен, а также, как можно отфильтровать данные, которые контролируются разными эффектами с существенно разными временными характеристиками.

Один из самых популярных алгоритмов сглаживания, применяемый, в частности, в биржевой торговле — это скользящее усреднение (включаю его в цикл статей по машинному обучению с некоторой натяжкой). Рассмотрим скользящее усреднение на примере колебаний курса доллара на протяжении нескольких последних недель (опять-таки в качестве инструмента исследования используя Mathcad). Сами расчеты лежат здесь.

Mathcad Express Prime

Приведенный график демонстрирует биржевое значение курса доллара к рублю с интервалом в 1 час. Исходные данные представлены синей кривой, а сглаженные — красной. Даже невооруженным глазом видно, что колебания курса имеют несколько характерных частот, что и является предметом одного из направлений технического анализа рынков.

Читать далее
Загрузка...
3 года назад
#
Машинное обучение — 3. Пуассоновский случайный процесс: просмотры и клики

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

Случайные процессы

Случайный процесс f(t) – это, немного упрощая, случайная величина, зависящая от времени. Множество значений f(t) для некоторого промежутка времени T называют реализацией или выборкой случайного процесса. Например, количество просмотров страницы сайта за сутки – это пример дискретного случайного процесса (или случайной последовательности), для него и аргумент (время), и область значений, т.е. возможные значения f(t) – дискретные величины. Соответственно, выборкой случайного процесса будет вектор f(ti). Пример двух выборок случайных процессов приведены на графике (расчеты, как и все в моем блоге, подготовлены при помощи Mathcad Express и их вы можете взять здесь).

Mathcad Express Prime

Читать далее
Загрузка...
3 года назад
#
Машинное обучение — 2. Нелинейная регрессия и численная оптимизация

Прошел месяц с появления моей первой статьи на Хабре и 20 дней с момента появления второй статьи про линейную регрессию. Статистика по просмотрам и целевым действиям аудитории копится, и именно она послужила отправной точкой для данной статьи. В ней мы коротко рассмотрим пример нелинейной регрессии (а именно, экспоненциальной) и с ее помощью построим модель конверсии, выделив среди пользователей две группы.

Когда известно, что случайная величина y зависит от чего-то (например, от времени или от другой случайной величины x) линейно, т.е. по закону y(x)= Ax+b, то применяется линейная регрессия (так в прошлой статье мы строили зависимость числа регистраций от числа просмотров). Для линейной регрессии коэффициенты A и b вычисляются по известным формулам. В случае регрессии другого вида, например, экспоненциальной, для того чтобы определить неизвестные параметры, необходимо решить соответствующую оптимизационную задачу: а именно, в рамках метода наименьших квадратов (МНК) задачу нахождения минимума суммы квадратов (y(xi) — yi)2.

Итак, вот данные, которые будем использовать в качестве примера. Пики посещаемости (ряд Views, красный пунктир) приходятся на моменты выхода статей. Второй ряд данных (Regs, с множителем 100) показывает число читателей, выполнивших после прочтения определенное действие (регистрацию и скачивание Mathcad Express – с его помощью, к слову, вы сможете повторить все расчеты этой и предыдущих статей). Все картинки — это скриншоты Mathcad Express, а файл с расчетами вы можете взять здесь.

Mathcad Express

Читать далее
Загрузка...
3 года назад
#
Машинное обучение — 1. Корреляция и регрессия. Пример: конверсия посетителей сайта

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

Часть 1. Реальные данные

Чтобы было интереснее, рассказ построен на примерах, причем в качестве данных (и в этой, и в следующих, статьях) я буду стараться брать статистику прямо отсюда, с Хабра. А именно, неделю назад я написал свою первую статью на Хабре (про Mathcad Express, в котором и будем все считать). И вот теперь статистику по ее просмотрам за 10 дней и предлагаю в качестве исходных данных. На графике это ряд Views, синяя линия. Второй ряд данных (Regs, с коэффициентом 100) показывает число читателей, выполнивших после прочтения определенное действие (регистрацию и скачивание дистрибутива Mathcad Prime).

Mathcad Prime

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

Все картинки — это скриншоты Mathcad Express (сами расчеты можете взять здесь, повторить, а при желании изменить и использовать для своих нужд). Исходные данные (три вектора) я ввел руками:

Mathcad Prime

Читать далее
Загрузка...
3 года назад
#
Mathcad Express — бесплатный математический редактор, про который мало кто знает

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

РТС Mathcad – это характерный пример математического ПО, предназначенного для осуществления, как численных, так и аналитических расчетов по формулам и визуализации их результатов в виде графиков. На протяжении последних лет Mathcad стал очень популярным, и его, на мой взгляд, по праву можно считать математическим пакетом №1 в мире.

Сначала несколько фактов о Mathcad, конечно, известных большинству читателей, т.к. Mathcad у нас уже не один десяток лет используется в ВУЗовском обучении, научных и инженерных расчетах. Скорее всего, вы использовали «старую» версию Mathcad (последняя – за номером 15), мало изменившуюся еще с прошлого века. В наши дни она вполне успешно сосуществует с более молодым семейством Mathcad, которое носит имя Mathcad Prime. Таким образом, разработчики несколько лет назад полностью переписали код программы, но заботиться о 100%-й совместимости не стали. Поэтому сейчас они благополучно поддерживают оба семейства – и «старый» Mathcad, и «новый» Mathcad Prime. Дальше и в этой статье, и в моем блоге, будем говорить именно о Mathcad Prime.

Mathcad Prime 3.0

Сразу скажу, что русскоязычный дистрибутив, полнофункциональную 30-дневную версию Mathcad Prime вы можете скачать с сайта русского реселлера РТС. Если вы уже собрались попробовать ее в работе, мой совет – не торопитесь в Мастере установки согласиться с включением тестового 30-дневного периода. Дело в том, что Mathcad Prime, наряду с мощной полнофункциональной версией (окно которой вы видите сверху) имеет бесплатную ограниченную версию, которая называется Mathcad Express. Особенность Mathcad Express заключается в том, что большинство функций в этой версии выключено и являются недоступными. Тем не менее, в программе Mathcad Express остается довольно богатый функционал, достаточный, по крайней мере, для того, чтобы изучать математику в школе и на 1-м курсе технического ВУЗа.

Mathcad Express Prime 3.0

Читать далее
Загрузка...
3 года назад
#
Лекции Техносферы. 1 семестр. Алгоритмы интеллектуальной обработки больших объемов данных

Продолжаем публиковать материалы наших образовательных проектов. В этот раз предлагаем ознакомиться с лекциями Техносферы по курсу «Алгоритмы интеллектуальной обработки больших объемов данных». Цель курса — изучение студентами как классических, так и современных подходов к решению задач Data Mining, основанных на алгоритмах машинного обучения. Преподаватели курса: Николай Анохин (anokhinn), Владимир Гулин (vgulin) и Павел Нестеров (mephistopheies).



Объемы данных, ежедневно генерируемые сервисами крупной интернет-компании, поистине огромны. Цель динамично развивающейся в последние годы дисциплины Data Mining состоит в разработке подходов, позволяющих эффективно обрабатывать такие данные для извлечения полезной для бизнеса информации. Эта информация может быть использована при создании рекомендательных и поисковых систем, оптимизации рекламных сервисов или при принятии ключевых бизнес-решений.

Читать далее
Загрузка...
3 года назад
#
Как попасть в топ на Kaggle, или Матрикснет в домашних условиях

Хочу поделиться опытом участия в конкурсе Kaggle и алгоритмами машинного обучения, с помощью которых добрался до 18-го места из 1604 в конкурсе Avazu по прогнозированию CTR (click-through rate) мобильной рекламы. В процессе работы попытался воссоздать оригинальный алгоритм Мактрикснета, тестировал несколько вариантов логистической регрессии и работал с характеристиками. Обо всём этом ниже, плюс прикладываю полный код, чтобы можно было посмотреть, как всё работает.

Рассказ делю на следующие разделы:
  1. Условия конкурса;

  2. Создание новых характеристик;

  3. Логистическая регрессия – прелести адаптивного градиента;

  4. Матрикснет – воссоздание полного алгоритма;

  5. Ускорение машинного обучения в Python.


1. Условия конкурса

Предоставленные данные:
  • 40.4 млн записей для обучения (10 дней показов рекламы Avazu);

  • 4.5 млн записей для тестирования (1 день).


Читать далее
Загрузка...
3 года назад
#
Deep Learning, NLP, and Representations

Предлагаю читателям «Хабрахабра» перевод поста «Deep Learning, NLP, and Representations» крутого Кристофера Олаха. Иллюстрации оттуда же.

В последние годы методы, использующие глубокое обучение нейросетей (deep neural networks), заняли ведущее положение в распознавании образов. Благодаря им планка для качества методов компьютерного зрения значительно поднялась. В ту же сторону движется и распознавание речи.

Результаты результатами, но почему они так круто решают задачи?

Deep Learning

В посте освещено несколько впечатляющих результатов применения глубоких нейронных сетей в обработке естественного языка (Natural Language Processing; NLP). Таким образом я надеюсь доходчиво изложить один из ответов на вопрос, почему глубокие нейросети работают.

Читать далее
Загрузка...
3 года назад
#
Введение в Apache Spark

habrahabr.ru

Spark

В прошлый раз мы рассмотрели замечательный инструмент Vowpal Wabbit, который бывает полезен в случаях, когда приходится обучаться на выборках, не помещающихся в оперативную память. Напомним, что особенностью данного инструмента является то, что он позволяет строить в первую очередь линейные модели (которые, к слову, имеют хорошую обобщающую способность), а высокое качество алгоритмов достигается за счет отбора и генерации признаков, регуляризации и прочих дополнительных приемов. Сегодня рассмотрим инструмент, который более популярен и предназначен для обработки больших обьемов данных — Apache Spark.

Не будем вдаваться в подробности истории возникновения данного инструмента, а также его внутреннего устройства. Сосредоточимся на практических вещах. В этой статье мы рассмотрим базовые операции и основные вещи, которые можно делать в Spark'е, а в следующий раз рассмотрим подробнее библиотеку MlLib машинного обучения, а также GraphX для обработки графов (автор данного поста в основном для этого и использует данный инструмент — это как раз тот случай, когда зачастую граф необходимо держать в оперативной памяти на кластере, в то время как для машинного обучения очень часто достаточно Vowpal Wabbit'а). В этом мануале не будет много кода, т.к. рассматриваются основные понятия и философия Spark'а. В следующих статьях (про MlLib и GraphX) мы возьмем какой-нибудь датасет и подробнее рассмотрим Spark на практике.

Сразу скажем, что нативно Spark поддерживает Scala, Python и Java. Примеры будем рассматривать на Python, т.к. очень удобно работать непосредственно в IPython Notebook, выгружая небольшую часть данных из кластера и обрабатывая, например, пакетом Pandas — получается довольно удобная связка

Итак, начнем с того, что основным понятием в Spark'е является RDD (Resilient Distributed Dataset), который представляет собой Dataset, над которым можно делать преобразования двух типов (и, соответственно, вся работа с этими структурами заключается в последовательности этих двух действий).

RDD

Читать далее

Загрузка...
3 года назад
#
Введение в машинное обучение с помощью Python и Scikit-Learn

habrahabr.ru

Привет, хабр!

Scikit-Learn

Меня зовут Александр, я занимаюсь машинным обучением и анализом веб-графов (в основном — теоретическим), а также разработкой Big Data продуктов в одном из операторов Большой Тройки. Это мой первый пост — прошу, не судите строго!)

В последнее время ко мне все чаще стали обращаться люди, которые хотят научиться разрабатывать эффективные алгоритмы и участвовать в соревнованиях по машинному обучению с вопросом: «С чего начать?». Некоторое время назад я руководил разработкой инструментов Big Data для анализа медиа и социальных сетей в одном из учреждений Правительства РФ, и у меня остался некоторый материал, по которому обучалась моя команда и которым можно поделиться. Предполагается, что у читателя есть хорошее знание математики и машинного обучения (в команде были в основном выпускники МФТИ и студенты Школы Анализа Данных).

По-сути это было введение в Data Science. В последнее время эта наука стала довольно популярна. Все чаще проводятся соревнования по машинному обучению (например, Kaggle, TudedIT), зачастую с немалым бюджетом. Целью данной статьи является дать читателю быстрое введение инструменты машинного обучения, чтобы он мог как можно скорее участвовать в соревнованиях.

Наиболее распространенными инструментами Data Scientist'а на сегодняшний день являются R и Python. У каждого инструмента есть свои плюсы и минусы, однако, в последнее время по всем параметрам выигрывает Python (это исключительно мнение автора, к тому же пользующегося одновременно и тем и другим). Это стало после того, как появилась отлично документированная библиотека Scikit-Learn, в которой реализовано большое количество алгоритмов машинного обучения.

Сразу отметим, что в статье мы остановимся именно на алгоритмах Machine Learning. Первичный анализ данных лучше обычно проводится средствами пакета Pandas, разобраться с которым можно самостоятельно. Итак, сосредоточимся на реализации, для определенности полагая, что на входе у нас есть матрица обьект-признак, хранящаяюся в файле с расширением *.csv


Загрузка...
4 года назад
#
Hadoop для сетевых инженеров

habrahabr.ru

Apache Hadoop — это набор утилит для построения суперкомпьютера, способного решать задачи, слишком большие для одного сервера. Множество серверов образуют Hadoop-кластер. Каждая машина в кластере носит название узла, или ноды. Если необходимо увеличить производительность системы, то в кластер просто добавляется больше серверов. Ethernet выполняет функции «системной шины» суперкомпьютера. В данной статье будут рассмотрены аспекты дизайна сетевой инфраструктуры, а также архитектура, которую Cisco предлагает использовать для таких систем.

Основы Hadoop

Для понимания принципа работы Hadoop необходимо разобраться с функциями двух основных компонентов: HDFS (Hadoop File System) и MapReduce, которые будут рассмотрены в данной статье подробнее. Другие возможные составляющие системы показаны на Рисунке 1.

Hadoop
Рисунок 1. Экосистема Hadoop

Загрузка...
63 64

Авторизация

Пользователи

NewEXE
Георгiй Москвитинъ
Andpyxa Tutunnik
Andrey_fox
Jane linch
genagy
Pasha Radiuk
KotikBSD
Эрик Имашев

GeekBrains

Нетология

Нетология