Как стать автором
Обновить
1
0

Data analyst

Отправить сообщение

Как мы делали олимпиаду по SQL

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

В самом начале осени 2016 года руководство поставило мне задачу подготовить техническую часть олимпиады по SQL. Обсудив ситуацию с коллегами, в том числе с бывшими, я был ткнут (ткнён?) в статью, где в декларативном стиле на SQL решалась задача по построению кратчайшего выхода из лабиринта. Собрав в одну кучку части запроса и запустив его на настоящей базе, я прошептал "магия!.." и понял, что олимпиаде быть.


Думаю, что типичный читатель Хабра на олимпиадах хоть раз да бывал, но скорее в роли участника, а не организатора. Я тоже бывал на разных, и мне всегда было удивительно, почему на одних олимпиадах интересно, а на других тоска смертная. Могу показать, как выглядит этот театр с другой стороны занавеса, и как я старался, чтобы эта олимпиада оказалась из тех, которые интересные. Интриги, скандалы, расследования — ничего этого не будет. Зато расскажу как готовились задания, что от них ожидали и что получалось в результате.

В кроличью норку сюда
Всего голосов 21: ↑19 и ↓2+17
Комментарии16

Регулярные выражения в Python от простого к сложному. Подробности, примеры, картинки, упражнения

Время на прочтение25 мин
Количество просмотров1.5M

Регулярные выражения в Python от простого к сложному




Решил я давеча моим школьникам дать задачек на регулярные выражения для изучения. А к задачкам нужна какая-нибудь теория. И стал я искать хорошие тексты на русском. Пяток сносных нашёл, но всё не то. Что-то смято, что-то упущено. У этих текстов был не только фатальный недостаток. Мало картинок, мало примеров. И почти нет разумных задач. Ну неужели поиск IP-адреса — это самая частая задача для регулярных выражений? Вот и я думаю, что нет.
Про разницу (?:...) / (...) фиг найдёшь, а без этого знания в некоторых случаях можно только страдать.

Плюс в питоне есть немало регулярных плюшек. Например, re.split может добавлять тот кусок текста, по которому был разрез, в список частей. А в re.sub можно вместо шаблона для замены передать функцию. Это — реальные вещи, которые прямо очень нужны, но никто про это не пишет.
Так и родился этот достаточно многобуквенный материал с подробностями, тонкостями, картинками и задачами.

Надеюсь, вам удастся из него извлечь что-нибудь новое и полезное, даже если вы уже в ладах с регулярками.
Читать дальше →
Всего голосов 99: ↑98 и ↓1+97
Комментарии66

Пол Грэм. Все статьи на русском. Два года спустя

Время на прочтение8 мин
Количество просмотров28K
«Лучший способ писать — это переписывать»
— Пол Грэм, «The Age of the Essay»

image

Первую подборку на русском всех статей Пола Грэма (а их 176) меня вдохновили сделать ребята из tceh.com (60 переводов).
Вторую — Edison Software (125 переводов).
ТретьюФилтех-акселератор (134 перевода и еще несколько в процессе).
На четвертую… уже закончатся эссе Грэма, буду переводить его Twitter (там, кстати, много полезного).

Недавно я подключился к проекту, цель которого содействовать «филантропическим стартапам» (это такие, которые «за добро во всем мире», типа GNU/Linux, Wikipedia и WebArchive). Я вношу свои 5 копеек подборкой самых полезных концептуальных/теоретических материалов про стартапы и стартаперское (хакерское) мировоззрение.

А для тех, у кого все же стартап, а не ICO:

До 16 января 2018 идет прием заявок, предакселератор PhilTech.
С 5 по 23 февраля будет акселерация «по-полной».
С 19 по 25 мая — финальный интенсив в Москве.

Есть время подучить матчасть, особенно для CEO.

Кто такой Пол Грэм?
Если вы хоть как-то связаны со стартапами у вас возник такой вопрос, то вам обязательно под кат.

Подборка из серии «добавить в избранное и читать по одному эссе в день».
(хватит на полгода, кстати)
Читать дальше →
Всего голосов 27: ↑25 и ↓2+23
Комментарии8

Долой таблички! Как выучить английские времена

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


Времена в английском языке традиционно считаются одной из самых сложных тем в обучении. Они прочно ассоциируются с зазубриванием длинных малопонятных таблиц и запоминанием неочевидных правил. На самом деле, все не так. Рассказываем, как быстро овладеть временами и их аспектами, чтобы начать говорить по-английски, не спотыкаясь.
Читать дальше →
Всего голосов 77: ↑72 и ↓5+67
Комментарии97

Материалы открытого курса OpenDataScience и Mail.Ru Group по машинному обучению и новый запуск

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

Недавно OpenDataScience и Mail.Ru Group провели открытый курс машинного обучения. В прошлом анонсе много сказано о курсе. В этой статье мы поделимся материалами курса, а также объявим новый запуск.



UPD: теперь курс — на английском языке под брендом mlcourse.ai со статьями на Medium, а материалами — на Kaggle (Dataset) и на GitHub.


Кому не терпится: новый запуск курса — 1 февраля, регистрация не нужна, но чтоб мы вас запомнили и отдельно пригласили, заполните форму. Курс состоит из серии статей на Хабре (Первичный анализ данных с Pandas — первая из них), дополняющих их лекций на YouTube-канале, воспроизводимых материалов (Jupyter notebooks в github-репозитории курса), домашних заданий, соревнований Kaggle Inclass, тьюториалов и индивидуальных проектов по анализу данных. Главные новости будут в группе ВКонтакте, а жизнь во время курса будет теплиться в Slack OpenDataScience (вступить) в канале #mlcourse_ai.

Всего голосов 80: ↑79 и ↓1+78
Комментарии24

Введение в машинное обучение с tensorflow

Время на прочтение12 мин
Количество просмотров196K
Если мы в ближайшие пять лет построим машину с интеллектуальными возможностями одного человека, то ее преемник уже будет разумнее всего человечества вместе взятого. Через одно-два поколения они попросту перестанут обращать на нас внимание. Точно так же, как вы не обращаете внимания на муравьев у себя во дворе. Вы не уничтожаете их, но и не приручаете, они практически никак не влияют на вашу повседневную жизнь, но они там есть.
Сет Шостак

Введение.


Серия моих статей является расширенной версией того, что я хотел увидеть когда только решил познакомиться с нейронными сетями. Он рассчитан в первую очередь на программистов, желающих познакомится с tensorflow и нейронными сетями. Уж не знаю к счастью или к сожалению, но эта тема настолько обширна, что даже мало-мальски информативное описание требует большого объёма текста. Поэтому, я решил разделить повествование на 4 части:

  1. Введение, знакомство с tensorflow и базовыми алгоритмами (эта статья)
  2. Первые нейронные сети
  3. Свёрточные нейронные сети
  4. Рекуррентные нейронные сети

Изложенная ниже первая часть нацелена на то, чтобы объяснить азы работы с tensorflow и попутно рассказать, как машинное обучение работает впринципе, на примере tensorfolw. Во второй части мы наконец начнём проектировать и обучать нейронные сети, в т.ч. многослойные и обратим внимание на некоторые нюансы подготовки обучающих данных и выбора гиперпараметров. Поскольку свёрточные сети сейчас пользуются очень большой популярность, то третья часть выделена для подробного объяснения их работы. Ну, и в заключительной части планируется рассказ о рекуррентных моделях, на мой взгляд, — это самая сложная и интересная тема.
Читать дальше →
Всего голосов 54: ↑49 и ↓5+44
Комментарии9

Сверточная сеть на python. Часть 1. Определение основных параметров модели

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

Несмотря на то, что можно найти не одну статью, объясняющую принцип метода обратного распространения ошибки в сверточных сетях (раз, два, три и даже дающих “интуитивное” понимание — четыре), мне, тем не менее, никак не удавалось полностью понять эту тему. Кажется, что авторы недостаточно внимания уделяют обычным примерам либо же опускают какие-то хорошо понятные им, но не очевидные другим особенности, и весь материал по этой причине становится неподъемным. Мне хотелось разложить все по полочкам для самого себя и в итоге конспекты вылились в статью. Я постарался исключить все недостатки существующих объяснений и надеюсь, что эта статья ни у кого не вызовет вопросов или недопониманий. И, может, следующий новичок, который, также как и я, захочет во всем разобраться, потратит уже меньше времени.
Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии10

Airflow — инструмент, чтобы удобно и быстро разрабатывать и поддерживать batch-процессы обработки данных

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

image


Привет, Хабр! В этой статье я хочу рассказать об одном замечательном инструменте для разработки batch-процессов обработки данных, например, в инфраструктуре корпоративного DWH или вашего DataLake. Речь пойдет об Apache Airflow (далее Airflow). Он несправедливо обделен вниманием на Хабре, и в основной части я попытаюсь убедить вас в том, что как минимум на Airflow стоит смотреть при выборе планировщика для ваших ETL/ELT-процессов.


Ранее я писал серию статей на тему DWH, когда работал в Тинькофф Банке. Теперь я стал частью команды Mail.Ru Group и занимаюсь развитием платформы для анализа данных на игровом направлении. Собственно, по мере появления новостей и интересных решений мы с командой будем рассказывать тут о нашей платформе для аналитики данных.

Читать дальше →
Всего голосов 29: ↑26 и ↓3+23
Комментарии26

Решение задачи коммивояжёра методом ближайшего соседа на Python

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

Быстрый и простой алгоритм требующий модификации


Среди методов решения задачи коммивояжёра метод ближайшего соседа привлекает простотой алгоритма. Метод ближайшего соседа в исходной формулировке заключается в нахождении замкнутой кривой минимальной длины, соединяющей заданный набор точек на плоскости [1]. Моё внимание привлекла наиболее распространённая реализация данного алгоритма в пакете Mathcad, размещённая в сети на ресурсе [2]. Сама реализация не совсем удобна, например, нельзя вывести матрицу расстояний между пунктами или проанализировать альтернативные маршруты.

На ресурсе [2] приведена следующая вполне справедливая критика данного метода. «Маршрут не оптимальный (не самый короткий) и сильно зависит от выбора первого города. Фактически не решена задача коммивояжера, а найдена одна гамильтонова цепь графа». Там же предложен путь некоторого усовершенствования метода ближайшего соседа. «Следующий возможный шаг оптимизации — «развязывание петель» (ликвидация перекрестий). Другое решение — перебор всех городов (вершин графа) в качестве начала маршрута и выбор наикратчайшего из всех маршрутов». Однако реализация последнего предложения не приведена. Учитывая все перечисленные обстоятельства, я решил реализовать приведенный алгоритм на Python и при этом предусмотреть возможность выбора начального пункта по критерию минимальной длины маршрута.
Читать дальше →
Всего голосов 14: ↑12 и ↓2+10
Комментарии1

Варим ML Boot Camp III: Starter Kit

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

16 марта закончилось соревнование по машинному обучению ML Boot Camp III. Я не настоящий сварщик, но, тем не менее, смог добиться 7го места в финальной таблице результатов. В данной статье я хотел бы поделиться тем, как начать участвовать в такого рода чемпионатах, на что стоит обратить внимание в первый раз при решении задачи, и рассказать о своем подходе.

Читать дальше →
Всего голосов 27: ↑26 и ↓1+25
Комментарии4

Чат-бот для ВКонтакте на Python на Callback API

Время на прочтение10 мин
Количество просмотров123K
Чат-боты стали уже очень распространенным явлением, и появляются во всех мессенджерах ежедневно.

В этой статье по шагам разберем создание бота с набором простых команд и узнаем, как в дальнейшем можно расширить его функционал. Статья будет полезна для самых новичков, которые никогда не пробовали создавать чат-ботов.
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии10

Как написать чат-бота для vk.com за 3 минуты

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

К сожалению, на данный момент нет хороших библиотек на Python2, для того, чтобы быстро создать чат-бота. Ниже я покажу, как легко можно написать примитивного чат бота для VK, используя API VK.


Статья написана для новичков, чтобы показать, что ничего сложного в написании ботов на Python нет.

Читать дальше →
Всего голосов 24: ↑15 и ↓9+6
Комментарии16

Сторонние проекты разработчика

Время на прочтение6 мин
Количество просмотров24K
Об авторе. Джоэл Спольски — сооснователь Trello и Fog Creek Software, исполнительный директор Stack Overflow.

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

Рассмотрим такой вопрос: если вы программист, который работает на компанию-разработчика программного обеспечения, то принадлежит ли компании то, что вы пишете в свободное время?

Сразу оговорюсь: будьте осторожны, слушая юридические советы из интернета. Я вижу достаточно много неправильной информации, которая может принести вам проблемы. Читатели за пределами США также должны понимать, что законы и юридическая практика в их стране могут кардинально отличаться.
Читать дальше →
Всего голосов 57: ↑56 и ↓1+55
Комментарии19

Ещё одна аппроксимация полиномом функции нескольких переменных

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


Обобщим эту формулу на случай функции нескольких переменных
Читать дальше →
Всего голосов 21: ↑12 и ↓9+3
Комментарии12

Трудности и радости разработки первой игры на андроид

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

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

Предыстория


Начнем с того, что меня зовут Евгений, мне 26 лет. Всю свою сознательную жизнь я пытался сделать игру. В детстве это были самодельные настольные игры с кубиками; в юности попытки разобраться в бейсике и программах для создания игр на ZX Spectrum; в подростковом возрасте, до того как у меня появился персональный компьютер, я придумывал и рисовал лабиринты, в которых можно было собирать ключи, убивать врагов и т.д.
Читать дальше →
Всего голосов 30: ↑27 и ↓3+24
Комментарии34

Что именно заставляет глубинное обучение и нейронные сети работать хорошо?

Время на прочтение6 мин
Количество просмотров35K
Сейчас очень много статей, рапортующих об успехах нейронных сетей, в частности, в интересующей нас области понимания естественного языка. Но для практической работы важно еще и понимание того, при каких условиях эти алгоритмы не работают, или работают плохо. Отрицательные результаты по понятным причинам часто остаются за рамками публикаций. Часто пишут так — мы использовали метод А вместе с Б и В, и получили результат. А нужен ли был Б и В остается под вопросом. Для разработчика, внедряющего известные методы в практику эти вопросы очень даже важны, поэтому сегодня поговорим об отрицательных результатах и их значении на примерах. Примеры возьмем, как известные, так и из своей практики.
Читать дальше →
Всего голосов 40: ↑33 и ↓7+26
Комментарии42

Зaчем мне AshleyMadison, если я не курю?

Время на прочтение5 мин
Количество просмотров31K
Как вы все уже наверное знаете, недавно были выложены дампы баз AshleyMadison. Я решил не упускать возможность и проанализировать реальные данные дейтинг платформы. Попробуем предсказать платежеспособность клиента по его характиристикам таким как возраст, рост, вес, привычки и т.д.



Попробуем?
Читать дальше →
Всего голосов 32: ↑26 и ↓6+20
Комментарии26

В помощь аналитику: пишем свою автоматическую выгрузку отчетов Яндекс.Метрики с помощью AWS бесплатно

Время на прочтение7 мин
Количество просмотров20K
В своей практике работы аналитиком мне часто приходится сталкиваться с ситуациями, когда коллеги ежедневно тратят много времени на нудную выгрузку данных для очередной отчетности. Если для Google Analytics и других продуктов Google написано множество плагинов, сервисов и надстроек для Excel, то для Яндекс Метрики и других аналитических систем удалось найти только пару-тройку библиотек 2013 года.

При работе с рекламными системами типа Adfox ситуация не менее «тяжелая». Многочисленные выгрузки вручную могут со временем вогнать в депрессию кого угодно, совершенно не оставив времени на полезную часть этого действия: анализ и выводы на основе этих данных. Иногда выходом является обращение за помощью к разработчикам, которые могут помочь с настройкой выгрузки необходимых данных. Однако на практике требования к отчетам часто меняются, а постоянно дергать разработчиков не получится.

В этой и следующих статьях я покажу как с помощью Amazon Web Services просто настраивать автоматическую выгрузку данных. На AWS можно в течение 12 месяцев пользоваться бесплатным аккаунтом, в лимиты которого входит описанный в статье алгоритм. Можно выбрать и любой другой сервис аренды вычислительных мощностей, однако совсем бесплатных я не встречал. К тому же на инстансах AWS уже есть питон с нужными библиотеками.
Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии1

Проверять или не проверять — вот в чём вопрос

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

Немало копий поломано в вопросе о том, как следует проверять адрес электронной почты (например, habrahabr.ru/post/175329), но позвольте предоставить вам немного статистики с реального проекта.
Читать дальше →
Всего голосов 25: ↑23 и ↓2+21
Комментарии43

Многострадальный notepad: ошибка, которую не исправляют уже 13 лет

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


В стандартном блокноте для всех версий Windows, начиная примерно с 2001 года, имеется ошибка, про которую практически все знают, но никто не собирается её исправлять. И это понятно, ведь это не критическая уязвимость, ничьей безопасности она не угрожает. Да и пользуется ли кто блокнотом вообще?

Тем не менее, сам факт довольно странный, поэтому мы попробуем найти эту ошибку в коде 64-битного и 32-битного notepad.exe от windows 7, исправим её, и выясним наконец, почему же она возникла. Заключается ошибка в следующем:

Если в блокноте включена опция «перенос по словам» (word wrap), то после сохранения файла начинаются всевозможные глюки: строки начинают разъезжаться, курсор улетает, текст вводится не туда, куда вы ожидаете, и так далее.
Читать дальше →
Всего голосов 146: ↑144 и ↓2+142
Комментарии120

Информация

В рейтинге
Не участвует
Откуда
Sofia, Grad Sofiya, Болгария
Дата рождения
Зарегистрирован
Активность