IT-новости про Python, которые стоит знать

Собрали в одном месте самые важные ссылки
читайте авторский блог

     17.04.2017       Выпуск 174 (17.04.2017 - 23.04.2017)       Статьи

Открытый курс машинного обучения. Тема 8. Обучение на гигабайтах с Vowpal Wabbit

Вот мы постепенно и дошли до продвинутых методов машинного обучения, сегодня обсудим, как вообще подступиться к обучению модели, если данных гигабайты и десятки гигабайт. Обсудим приемы, позволяющие это делать: стохастический градиентный спуск (SGD) и хэширование признаков, посмотрим на примеры применения библиотеки Vowpal Wabbit. Домашнее задание будет как на реализацию SGD-алгоритмов, так и на обучение классификатора вопросов на StackOverflow по выборке в 10 Гб.

     17.04.2017       Выпуск 174 (17.04.2017 - 23.04.2017)       Статьи

Data science и качественный код

 

Обычно модели машинного обучения строят в jupyter-ноутбуках, код которых выглядит, мягко говоря, не очень — длинные простыни из лапши выражений и вызовов "на коленке" написанных функций. Понятно, что такой код почти невозможно поддерживать, поэтому каждый проект переписывается чуть ли не с нуля. А о внедрении этого кода в production даже подумать страшно.

Поэтому сегодня представляем на ваш строгий суд превью python'овской библиотеки по работе с датасетами и data science моделями. 

     17.04.2017       Выпуск 174 (17.04.2017 - 23.04.2017)       Статьи

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

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

     15.04.2017       Выпуск 173 (10.04.2017 - 16.04.2017)       Статьи

История о том, как парсер превратился в полноценного МРКО бота для Телеграм Telegram

 Недавно я писал статью про то, как написать парсер дневника МРКО, а в конце пообещал написать про интеграцию с Телеграм ботом, о чем очень жалею. Сейчас бот уже готов и полностью функционирует. Хочу рассказать вам, что использовал и с какими трудностями столкнулся в этой работе.

     13.04.2017       Выпуск 173 (10.04.2017 - 16.04.2017)       Статьи

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

 

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

     12.04.2017       Выпуск 173 (10.04.2017 - 16.04.2017)       Видео

django-sitetree: навигация для сайта

Сложно ли реализовать навигацию для сайта? Разместить на его страницах различного вида меню, навигационные цепочки, предоставить пользователю структурную карту. Давайте ознакомимся с подходом, использующемся в sitetree, который позволяет решать подобные задачи минимальными усилиями.

     12.04.2017       Выпуск 173 (10.04.2017 - 16.04.2017)       Статьи

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

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

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

     12.04.2017       Выпуск 173 (10.04.2017 - 16.04.2017)       Статьи

Модель колебательного звена в режиме резонансных колебаний на Python

В статье [1] я в строгом соответствии с общеизвестной теорией колебательных процессов рассмотрел колебательное звено, построив переходные процессы с применением библиотек SymPy и NumPy. 
Первым был рассмотрен случай апериодических и свободных затухающих колебаний, инициируемых бесконечным импульсом силы постоянной амплитуды. 
Вторым был рассмотрен случай отрицательного демпфирования (который я не прокомментировал). Отрицательное демпфирование можно наблюдать, когда под горизонтально подвешенного в центре на двух пружинах кубике движется лента качающееся его одной его гранью. 

     12.04.2017       Выпуск 173 (10.04.2017 - 16.04.2017)       Статьи

Нескучные запросы с Django ORM Annotate и Query Expressions Django

Некоторое время назад передо мной встала задача: выбрать из таблицы значения по пользователям. Причём, эти значения должны соответствовать определённому регулярному выражению. Но и это не конец условия: из выбранных выражений нужно вытащить substring. Опять же, по регулярке. Сделал я это довольно быстро, и захотелось поделиться опытом с тем, кто ещё не может применять Annotate и Query Expressions на практике

     11.04.2017       Выпуск 173 (10.04.2017 - 16.04.2017)       Статьи

Начинаем работу Python + Qt5 + QML урок №1 PyQt Qt

Сегодня познакомимся с QML. Узнаем что это такое и с чем его едят. Создадим небольшое приложение с использованием данной технологии.

     11.04.2017       Выпуск 173 (10.04.2017 - 16.04.2017)       Статьи

Когда GitHub выстреливает вам в голову, создается новый фреймворк. Идея, концепция и реализация «Rutetider»

Готовое архитектурное решение для мобильных устройств, включая iOS, Android, Telegram-bots, а также платформы, поддерживающие обработку http-запросов, выступающее в роли пет-проекта автора статьи, будет интересно желающим реализовать «карманное» расписание занятий для своих университетов и школ. 

     11.04.2017       Выпуск 173 (10.04.2017 - 16.04.2017)       Видео

Текстовые интерфейсы и зачем они нужны

Я расскажу про текстовые интерфейсы (TUI), области их применения и инструменты для создания таких интерфейсов под Python: curses, urwid и др.

     10.04.2017       Выпуск 173 (10.04.2017 - 16.04.2017)       Видео

Питон в малине

В докладе я расскажу об устройстве одноплатного компьютера и его периферии на примере Raspberry Pi.
Установку на него дистрибутива операционной системы, Python 3 и управление с помощью него периферией (i2c, spi, uart и отдельными pin). 
А ещё я это покажу вживую.

     07.04.2017       Выпуск 172 (03.04.2017 - 09.04.2017)       Статьи

Kaggle: Британские спутниковые снимки. Как мы взяли третье место

Так вот, данный текст — это скорее байки по мотивам, в которых, с одной стороны, всё — правда, а с другой, обилие лирических отступлений и прочей отсебятины не позволяет рассматривать его как что-то наукоемкое, а скорее просто как полезное и увлекательное чтиво, цель которого показать, как может происходить процесс работы над задачами в дисциплине соревновательного машинного обучения. Кроме того, в тексте достаточно много лексикона, который специфичен для Kaggle и что-то я буду по ходу объяснять, а что-то оставлю так, например, вопрос про гусей раскрыт не будет. 

     07.04.2017       Выпуск 172 (03.04.2017 - 09.04.2017)       Статьи

Нейронные сети в борьбе с раком

Ниже вы прочитаете обзор статьи The cornucopia of meaningful leads: Applying deep adversarial autoencoders for new molecule development in oncology, которую мы с коллегами из Insilico Medicine и МФТИ подготовили для американского журнала Oncotarget, с упором на реализацию предложенной модели во фреймворке tensorflow. Исходная задача была следующей. Есть данные вида: вещество, концентрация, показатель роста раковых клеток. Нужно сгенерировать новые вещества, которые останавливали бы рост опухоли при определенной концентрации. Датасет доступен на сайте NCI Wiki.

     06.04.2017       Выпуск 172 (03.04.2017 - 09.04.2017)       Статьи

7 вредных советов проектировщику REST API Django

Адаптация статьи REST WORST PRACTICES, © Jacob Kaplan-Moss. Статья написана применительно к Django, но информация будет актуальна для широкого круга специалистов.

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

     06.04.2017       Выпуск 172 (03.04.2017 - 09.04.2017)       Учебные материалы

Книга «Программируем на Python»

Вы наверняка слышали о книге Майкла Доусона (Michael Dawson), в которой он учит языку программирования Python тем же самым путем, то есть через программирование несложных игр. Учиться, создавая свои собственные развлекательные программы. 

Несмотря на развлекательный характер примеров, демонстрируется вполне серьезная техника программирования. Ниже приведен отрывок из главы «Объектно-ориентированное программирование. Игра «Блек-джек»»

     05.04.2017       Выпуск 172 (03.04.2017 - 09.04.2017)       Статьи

Байесовские многорукие бандиты против A/B тестов

 У компании есть веб-сайт, на котором есть красная кнопка в форме прямоугольника с закругленными краями. Если пользователь нажимает на эту кнопку, то где-то в мире мурлычет от радости один котенок. Задача компании — максимизация мурлыкания. Также есть отдел маркетинга, который усердно исследует формы кнопок и то, как они влияют на конверсию показов в клико-мурлыкания. Потратив почти весь бюджет компании на уникальные исследования, отдел маркетинга разделился на четыре противоборствующие группировоки. У каждой группировки есть своя гениальная идея того, как должна выглядеть кнопка. В целом никто не против формы кнопки, но красный цвет раздражает всех маркетологов, и в итоге было предложено четыре альтернативных варианта. На самом деле, даже не так важно, какие именно это варианты, нас интересует тот вариант, который максимизирует мурлыкания. Маркетинг предлагает провести A/B/n-тест, но мы не согласны: и так на эти сомнительные исследования спущено денег немерено. Попробуем осчастливить как можно больше котят и сэкономить на трафике. Для оптимизации трафика, пущенного на тесты, мы будем использовать шайку многоруких байесовских бандитов (bayesian multi-armed bandits). Вперед.

     04.04.2017       Выпуск 172 (03.04.2017 - 09.04.2017)       Статьи

Модель колебательного звена с применением символьного и численного решений дифференциального уравнения на SymPy и NumPy

В статье использованы возможности пакета SymPy совместно с пакетом NumPy. Всё сводиться к преобразованию символьных выражений в функции способные работать с другими модулями Python.

Процесс решения дифференциальных уравнений становиться наглядным и хорошо контролируемым на каждом этапе вычислений. Следует отметить, что колебательное звено в разных интерпретациях обсуждается в сетях [1,2]. Например, в [3] приводиться модель колебательного звена с подробным исследованием переходных процессов.

Надеюсь, что подобные исследования колебательного звена на Python найдут своих сторонников.

     03.04.2017       Выпуск 172 (03.04.2017 - 09.04.2017)       Статьи

Открытый курс машинного обучения. Тема 6. Построение и отбор признаков

В рамках сегодняшней статьи хочется обзорно описать три похожих, но разных задачи:

  • feature extraction and feature engineering – превращение данных, специфических для предметной области, в понятные для модели векторы;
  • feature transformation – трансформация данных для повышения точности алгоритма;
  • feature selection – отсечение ненужных признаков.

Отдельно отмечу, что в этой статье почти не будет формул, зато будет относительно много кода.