Pull to refresh
0
Vadim Glukhov@educauchyread⁠-⁠only

Machine Learning Engineer

Send message

Web scraping с помощью R. Сравнение оценок фильмов на сайтах Кинопоиск и IMDB

Reading time6 min
Reach and readers11K

image


Всемирная паутина — это океан данных. Здесь можно посмотреть практически любую интересующую Вас информацию. Однако, "вытащить" эту информацию из интернета уже сложнее. Есть несколько способов получить данные и web-scraping один из них.

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

Начинаем работать с Google Analytics: App + Web

Reading time14 min
Reach and readers14K
Google недавно выпустила в публичный доступ новую версию Google Analytics под названием App + Web. Симо Ахава уже написал отличную пошаговую инструкцию о том, как начать работать с инструментом, поэтому я решила перевести ее на русский язык. От себя добавлю, что продукт только-только появился в бете и судя по всему еще будет существенно допиливаться. Мы уже начали тестировать новую структуру данных и возможности встроенной функции экспорта данных в Google BigQuery и надеемся вскоре рассказать подробнее о преимуществах и недостатках. В целом аналитики сегодня оценивают нововведения положительно. Например, Влад Флакс из OWOX BI считает, что этим обновлением Google упростил процесс сбора данных и их доставку из Google Analytics в BigQuery для тех проектов, которые готовы изменить структуру своих данных. К тому же, это повышает ценность Google BigQuery как DWH для маркетинг-данных.
Читать дальше →

12 английских слов, которые часто пишут и произносят неправильно

Reading time2 min
Reach and readers29K


В английском языке полно довольно непростых слов, которые не так-то легко правильно произнести и написать. Мне на глаза попался пост, в котором собраны 12 таких слов, в которых многие делают ошибки, и даны рекомендации о том, как их избежать. Я подготовила перевод этого материала.
Читать дальше →

Удаление зубов мудрости: как это делается?

Reading time6 min
Reach and readers349K
image
Уважаемые друзья, в прошлый раз мы с вами говорили о том, какие же бывают зубы мудрости, когда их нужно удалять, а когда нет. А сегодня я подробно и во всех деталях расскажу, как непосредственно проходит удаление «приговорённых» зубов. С картинками. Поэтому рекомендую особо впечатлительным людям и беременным женщинам нажать сочетание клавиш «Ctrl +». Шутка.
Читать дальше →

Умножение матриц: эффективная реализация шаг за шагом

Reading time14 min
Reach and readers124K


Введение


Умножение матриц — это один из базовых алгоритмов, который широко применяется в различных численных методах, и в частности в алгоритмах машинного обучения. Многие реализации прямого и обратного распространения сигнала в сверточных слоях неронной сети базируются на этой операции. Так порой до 90-95% всего времени, затрачиваемого на машинное обучение, приходится именно на эту операцию. Почему так происходит? Ответ кроется в очень эффективной реализации этого алгоритма для процессоров, графических ускорителей (а в последнее время и специальных ускорителей матричного умножения). Матричное умножение — один из немногих алгоритмов, которые позволяет эффективно задействовать все вычислительные ресурсы современных процессоров и графических ускорителей. Поэтому не удивительно, что многие алгоритмы стараются свести к матричному умножению — дополнительная расходы, связанные с подготовкой данных, как правило с лихвой окупаются общим ускорением алгоритмов.

Так как реализован алгоритм матричного умножения? Хотя сейчас существуют множество реализаций данного алгоритма, в том числе и в открытых исходных кодах. Но к сожалению, код данных реализаций (большей частью на ассемблере) весьма сложен. Существует хорошая англоязычная статья, подробно описывающая эти алгоритмы. К моему удивлению, я не обнаружил аналогов на Хабре. Как по мне, этого повода вполне достаточно, чтобы написать собственную статью. С целью ограничить объем изложения, я ограничился описанием однопоточного алгоритма для обычных процессоров. Тема многопоточности и алгоритмов для графических ускорителей явно заслуживает отдельной статьи.

Процесс изложения будет вестись ввиде шагов с примерами по последовательному ускорению алгоритма. Я старался писать максимально упрощая задачу, но не более того. Надеюсь у меня получилось…
Читать дальше →

Математика для Data Scientist: необходимые разделы

Reading time3 min
Reach and readers102K
Математика — это краеугольный камень Data Science. Хотя некоторые теоремы, аксиомы и формулы кажутся слишком абстрактными и далекими от практики, на самом деле без них невозможно по-настоящему глубоко анализировать и систематизировать огромные массивы данных.

Для специалиста Data Science важны следующие направления математики:

  • статистика;
  • теория вероятностей;
  • математический анализ;
  • линейная алгебра.

В предыдущей статье «Data Science: книги для начального уровня» специалисты Plarium Krasnodar рекомендовали литературу по программированию на Python, а также по визуализации результатов и machine learning. В этой статье они предлагают подборку материалов и книг по математике, полезных в Data Science.


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

6 настольных игр для прокачки английского

Reading time7 min
Reach and readers42K


Геймификация обучения — это отличный способ поднять мотивацию ученика и повысить получаемые результаты.

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

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

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

Все эти настолки можно приобрести в онлайн-магазинах без особых проблем. Готовы? Поехали!
Читать дальше →

Пять советов о том, как научиться спокойно принимать обратную связь на работе

Reading time6 min
Reach and readers24K


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

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

Не поймите превратно: критика никогда не безболезненна. Это и беспокойство, и страх, и тревога.

«Ко мне станут относиться хуже?»
«Если мой код плох, не подумают ли, что я недостаточно умен?»
«О нет! Теперь все знают, что я в седьмом классе завалил тест по истории».


Не волнуйтесь — такая реакция совершенно естественна!

По словам Кимберли Лейтч, лицензированного клинического социального работника из компании Talkspace, получение обратной связи вызывает стрессовую реакцию — из-за суждения, которое часто исходит от человека, обладающего властными полномочиями.

Получается, если это естественный ответ организма на обратную связь и критику, то мы обречены? Как можно преодолеть такую инстинктивную реакцию?

Я не буду приукрашивать правду и обманывать — это сложно, но возможно: столкнувшись с надвигающимся страхом критики, вполне можно сохранять полный контроль над собой. Приведенные далее пять советов помогут отложить свой психологический щит и научиться принимать отрицательные и положительные замечания с распростертыми объятиями.

Переведено в Alconost
Читать дальше →

Использование вычислительных возможностей R для проверки гипотезы о равенстве средних

Reading time4 min
Reach and readers4K

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


Но рассуждать с бизнесом о нулевых гипотезах и значении p-value совершенно бесполезно и контрпродуктивно.


Как можно по состоянию на февраль 2019 года сделать это максимально просто и быстро имея под руками ноутбук «средней руки»? Заметка реферативная, формул нет.


Является продолжением предыдущих публикаций.

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

Основы статистики: просто о сложных формулах

Reading time6 min
Reach and readers349K

Статистика вокруг нас


Статистика и анализ данных пронизывают практически любую современную область знаний. Все сложнее становится провести границу между современной биологией, математикой и информатикой. Экономические исследования и регрессионный анализ уже практически неотделимы друг от друга. Один из известных методов проверки распределения на нормальность — критерий Колмогорова-Смирнова. А вы знали, что именно Колмогоров внес огромный вклад в развитие математической лингвистики?

Еще будучи студентом психологического факультета СПбГУ, я заинтересовался когнитивной психологией. Кстати, Иммануил Кант не считал психологию наукой, так как не видел возможности применять в ней математические методы. Мои текущие исследования посвящены моделированию психических процессов, и я надеюсь, что такие направления в современной когнитивной психологии, как вычислительные и коннективисткие модели, смягчили бы его отношение!
Читать дальше →

Динамическое программирование или «Разделяй и Властвуй»

Reading time9 min
Reach and readers38K
В этой статье рассматриваются сходства и различия двух подходов к решению алгоритмических задач: динамического программирования (dynamic programing) и принципа «разделяй и властвуй» (divide and conquer). Сравнение будем производить на примере, соответственно, двух алгоритмов: бинарного поиска (как быстро найти число в отсортированном массиве) и расстояния Левенштейна (как преобразовать одну строку в другую с минимальным количеством операций).

Хочу сразу заметить, что данное сравнение и объяснение не претендует на исключительную правильность. И возможно даже некоторые преподаватели в университетах захотели бы меня отчислить :) Эта статья является всего-лишь моей персональной попыткой разложить себе же все по полочками и понять что такое динамическое программирование и каким образом в нем участвует принцип «divide and conquer».

Итак, приступим…

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

Реализация алгоритма k-means (k-средних) на примере работы с пикселями

Reading time12 min
Reach and readers41K
Всем привет! Недавно нужно было написать код для реализации сегментации изображения с помощью метода k – средних (англ. k-means). Ну, первым делом Google в помощь. Нашел много информации, как и с математической точки зрения (всякие там сложные математические каракули, хрен поймёшь, что там написано), так и некоторые программные реализации, которые есть в английском интернете. Эти коды конечно прекрасны – спору нет, но саму суть идеи сложно поймать. Как – то оно там все сложно, запутано, да и пока сам, ручками, не пропишешь код, ничего не поймешь. В этой статье хочу показать простую, не производительную, но, надеюсь, понятную реализацию этого чудесного алгоритма. Ладно, погнали!
Читать дальше →

Сортировки слиянием

Reading time5 min
Reach and readers72K

Сортировки слиянием работают по такому принципу:

  1. Ищутся (как вариант — формируются) упорядоченные подмассивы.
  2. Упорядоченные подмассивы соединяются в общий упорядоченный подмассив.
Траффик

Преобразование Фурье. The Fast and the Furious

Reading time6 min
Reach and readers26K
Зачастую при разработке алгоритмов мы упираемся в предел вычислительной сложности, который, казалось бы, преодолеть невозможно. Преобразование Фурье имеет сложность $O(n^2)$, а быстрый вариант, предложенный около 1805 года Гаусом1 (и переизобретенный в 1965 году Джеймсом Кули и Джоном Тьюки) $O(nlog(n))$. В данной статье хочу вам показать, что можно получить результаты преобразования за линейное время $O(n)$ или даже достичь константной сложности $O(1)$ при определенных условиях, которые встречаются в реальных задачах.

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

Как работает метод главных компонент (PCA) на простом примере

Reading time10 min
Reach and readers334K


В этой статье я бы хотел рассказать о том, как именно работает метод анализа главных компонент (PCA – principal component analysis) с точки зрения интуиции, стоящей за ее математическим аппаратом. Максимально просто, но подробно.
Читать дальше →

Что не так с GraphQL

Reading time6 min
Reach and readers55K

В последнее время GraphQL набирает всё большую популярность. Изящный синтаксис запросов, типизация и подписки.


Кажется: "вот оно — мы нашли идеальный язык обмена данными!"...


Я разрабатываю с использованием этого языка уже больше года, и скажу вам: всё далеко не так гладко. В GraphQL есть как просто неудобные моменты, так и действительно фундаментальные проблемы в самом дизайне языка.


С другой стороны, большая часть таких "дизайнерских ходов" была сделана не просто так — это было обусловлено теми или иными соображениями. По факту, GraphQL — не всем подойдет, и может оказаться совсем не тем инструментом, который вам нужен. Но обо всём по порядку.

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

Обучение с подкреплением на языке Python

Reading time12 min
Reach and readers48K
Привет, коллеги!



В последней публикации уходящего года мы хотели упомянуть о Reinforcement Learning — теме, книгу на которую мы уже переводим.

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

Приятного чтения!
Читать дальше →

Заметки фитохимика. Зеленый банан, или Не забудь покормить микробиоту

Reading time20 min
Reach and readers109K

Как то уж так повелось со времен голодной студенческой юности, что я чаще на остатки денег покупал себе бананы, а не чипсы или гречку. Причин этому наверное может быть много, от "в Беларуси бананы дешевле картошки", до "банан как и шоколад способствует мозговой активности". Но факт остается фактом. Если хурма фрукт сезонный, то банан — это такая штука которая сопровождает нас по жизни постоянно. Как не отдать долг и не черкнуть заметку. Кроме того, про проведенному мной среди знакомых мини-опросу, одним из основных фруктов, которые с вероятностью 99% будут практически на каждом Новогоднем столе, также является банан. А ведь правильный банан еще нужно найти...


В общем, для "разогрева" предлагаю экспресс-тест. Как вы думаете, какой из бананов на картинке обладает максимальными лечебным эффектом по версии китайских исследователей? Для начала просто выберите и запомните число под понравившейся картинкой.



Ну а за ответом — традиционно, под кат.

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

Мой переезд в Норвегию

Reading time12 min
Reach and readers126K


Я решил написать эту статью, потому что в интернете мало информации именно о переезде в Норвегию. Люди в основном описывают жизнь, процесс поиска работы и тому подобное. Ниже я постарался рассказать о подготовке документов, регистрации в стране, открытии банковского счёта, аренде квартиры и т.п. Надеюсь, это будет полезно.

Продолжение.

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

Курс лекций по JavaScript и Node.js в КПИ

Reading time2 min
Reach and readers126K

100 лекций по программированию в Киевском политехническом институте


Товарищи инженеры, как и было обещано в анонсе, половина лекций (а это 51) уже доступны для просмотра на ютюбе и я продолжу их записывать в 2019 году. Часть из нужно будет перезаписать, потому, что в первых лекциях не самый лучший звук и потому, что очень простые темы у меня пока не очень хорошо получаются. Лучше вышли сложные и актуальные темы, которые мне и самому более интересно рассказывать. Я бы не сказал, что это курс для начинающих, скорее, это курс для тех, кто уже знает синтаксис. За это время поступило множество предложений, как улучшить способ подачи материала: делить на более короткие лекции, подготовить задачи для практического освоения, записывать семинары и ответы на вопросы студентов, добавить в программу разбор целого ряда спорных и холиварных тем. Но не все сразу, я и так посвящаю этому треть жизни.

Читать дальше →
1
23 ...

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Works in
Registered
Activity

Specialization

ML разработчик
Старший
Git
Python
SQL
Docker
Bash
CI/CD