Собрали в одном месте самые важные ссылки
консультируем про IT, Python
Хотели представить перевод интересной статьи про обучение с помощью нейронных сетей на табличных данных.
Во время Чемпионата мира по регби в 2019 году я сделал небольшой научный проект Data Science, чтобы попытаться спрогнозировать результаты матчей, написав о нем здесь. Я развил проект до примера от начала до конца, чтобы продемонстрировать, как развернуть модель машинного обучения в виде интерактивного веб-приложения.
Чуть больше года назад перед нами встала задача написать еще одно большое приложение – API к основному хранилищу новостей, и мы сделали это на Rust. В статье мы расскажем о том, что заставило нас отойти от привычного стека технологий, и покажем, какие плюсы по сравнению с Python есть у Rust. Мы не ответим на вопрос, почему выбор пал именно на Rust, а не Go, например, или на какой-либо другой язык. Также мы не будем сравнивать производительность Python- и Rust-приложений – эти темы достойны отдельного обсуждения.
По основной профессии я инженер по разработке нефтяных и газовых месторождений. Я только погружаюсь в Data Sciense и это мой первый пост, в котором хотел бы поделиться опытом применения машинного обучения в нефтяной сфере.
Возможно, глядя на этот старый советский плакат, вы подумаете, что я здесь буду агитировать сознательных граждан России участвовать в переписи населения… Но спешу вас разуверить: статья вовсе не об этом. Скорее это рассказ о том, какая официальная статистика собирается в России, где ее искать и как скачать все данные к себе на компьютер или портативное устройство (отсюда и название) и удобно ей пользоваться. Если вам это интересно, читайте дальше!
В сообществе тестировщиков много спорят о том, сколько assert-ов должно быть в одном автоматизированном тесте пользовательского интерфейса. Некоторые считают, что на один тест должен приходиться один assert, то есть каждый тест должен проверять только один элемент. Другие же вполне довольны тем, что их тест проверяет сразу несколько элементов.
Какой бы подход вы ни выбрали, я думаю, можно с уверенностью сказать, что тесты должны оставаться ясными, краткими, читаемыми и, конечно же, их должно быть просто поддерживать. Лично у меня не возникает проблем с несколькими assert-ами в одном тесте, поскольку я фокусируюсь на одной функциональной области.
На связи команда Datalore by JetBrains. Хотим поделиться с вами результатами анализа нескольких миллионов публично доступных репозиториев Github с Jupyter-ноутбуками. Мы скачали ноутбуки, чтобы немного больше узнать в цифрах о текущем статусе, пожалуй, самого популярного инструмента для data science.
В предыдущих заметках данной серии мы уже успели поговорить о датасетах и инструментах, функциях потерь и примерах прикладных задач, а сейчас пора перейти к “ядру” любой подобласти глубокого обучения — к их архитектурам. Но, прежде чем разбираться с тем как устроены целые архитектуры, стоит разобраться в их составных частях, делающих их пригодными для применения к неевклидовым данным.
При долгой работе с большим проектом так или иначе упираешься в поиск узких мест в коде. Что только программисты не используют для этого — от навороченных профайлеров и брейкпоинтов до выводов print и замеров времени выполнения вручную с выводом таймстампов на консоль.
Всякий раз, как я езжу на такси мне на почту приходит отчет о поездке с разной информацией. В частности, они содержат дату, время поездки, модель автомобиля и ФИО водителя. Меня посетила идея - проанализировать отчеты от яндекс такси и вытащить из них максимум интересной информации. Вам наверняка тоже всегда было интересно сколько раз вы ездили на одной и той же машине или сколько раз вас возил один и тот же водитель?
Задача, которая здесь описана может быть хорошим упражнением для начинающих аналитиков. Тут будет всё: и python c pandas и парсинг HTML и регулярные выражегия и базы данных c SQL.
Я имею самый обычный рабочий график: 5/2, 8ч/день. В настоящий момент удаленно учусь в аспирантуре (коронавирус, все дела) и единственный день, когда я могу вдоволь почувствовать себя человеком-соседом и поделать что-то по дому, – это суббота. Как вы понимаете, здесь что-то пошло не так и вместо обещанных будничных пар, которые должны были проходить по вечерам после работы, нам утрамбовали всю субботу. Но дела ведь себя не переделают, поэтому решено было написать на python простого бота-кликера
Очень часто данные необходимо сравнивать. Например, у нас есть несколько рядов данных из какой-то области деятельности человека (промышленности, медицины, государственного управления, …), и мы хотим сравнить, насколько они похожи или, наоборот, чем одни показатели выделяются по сравнению с другими. Для простоты восприятия возьмем данные более простые, универсальные и нейтральные — высоту в холке и вес нескольких пород собак по сведениям Американского клуба собаководства (American Kennel Club). Данные по размерам пород в среднем можно найти здесь. Прибавим к ним функцию random.uniform из Python-библиотеки numpy, переведем дюймы в сантиметры, а фунты в килограммы, и вот мы получаем реалистично выглядящий набор данных по размерам собак нескольких пород, с которым можно работать. В нашем примере это чихуахуа, бигли, ротвейлеры и английские сеттеры.
Одной из самых интересных наших книг по Python в течение уходящего года оставались "Классические задачи Computer Science на языке Python" от Дэвида Копеца.
В предыдущей статье я писал о том, как сконфигурировать ваше приложение с помощью Sitri, однако, упустил момент с локальной разработкой, так как согласитесь, что не очень удобно разворачивать vault локально, да и хранить локальный конфиг в общем vault, особенно, если над проектом работают несколько человек — неудобнее вдвойне.
Скажу сразу, эта статья не про очередное переписывание монолита на микросервисы, а о применении микросервисных практик в рамках существующего проекта с использованием интересных, как мне кажется, подходов. Наверное, уже нет смысла объяснять, почему многие проекты активно используют микросервисную архитектуру. Сегодня в IT возможности таких инструментов как Docker, Kubernetes, Service Mesh и прочих сильно меняют наше представление об архитектуре современного приложения, вынуждая пересматривать подходы и переписывать целые проекты на микросервисы. Но так ли это необходимо для всех частей проекта?
Традиционные методы очного обучения я оставлю за рамками этой статьи. Скажу только, что у обычных школ есть как неоспоримые преимущества, так и серьезные недостатки, к которым, кстати, в последнее время добавилась вынужденная самоизоляция. Здесь мы рассмотрим варианты дистанционного и семейного образования, которые, по целому ряду причин, в последнее время привлекают все больше родителей.
Итак, рассмотрим ориентированный взвешенный граф. Пусть у графа n вершин. Каждой паре вершин соответствует некоторый вес (вероятность перехода). Стоит отметить, что типичные web-графы – это однородная дискретная марковская цепь, для которой выполняется условие неразложимости и условие апериодичности. Запишем уравнение Колмогорова-Чэпмена: где P – переходная матрица.
Трекинг — это калька с английского слова tracking, которое переводится как «отслеживание». Сразу поясню, что трекинг не означает шпионаж. В качестве всем знакомой аналогии можно привести трекинг почтовых отправлений: на почте посылку регистрируют и присваивают ей уникальный идентификатор, чтобы получатель в дальнейшем мог отслеживать статус ее доставки.
Вспомним, на что и как, кроме читаемости, влияет вид импорта.
Это мой первый пост, где я хочу рассказать про самый известный клеточный автомат "Игра жизнь", а также напишем её на Python с использованием графики Pygame.