Все потоки
Поиск
Написать публикацию
Обновить
413.53

Python *

Высокоуровневый язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Конвертеры маршрутов в Django 2.0+ (path converters)

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

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

Меня зовут Александр Иванов, я наставник в Яндекс.Практикуме на факультете бэкенд-разработки и ведущий разработчик в Лаборатории компьютерного моделирования. В этой статье я расскажу о конвертерах маршрутов в Django и покажу преимущества их использования.



Первое, с чего начну, — границы применимости:

  1. версия Django 2.0+;
  2. регистрация маршрутов должна выполняться с помощью django.urls.path.

Итак, когда к Django-серверу прилетает запрос, он сперва проходит через цепочку middleware, а затем в работу включается URLResolver (алгоритм). Задача последнего — найти в списке зарегистрированных маршрутов подходящий.

Для предметного разбора предлагаю рассмотреть следующую ситуацию: есть несколько эндпоинтов, которые должны формировать разные отчёты за определённую дату. Предположим, что эндпоинты выглядят так:
Читать дальше →

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

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

Очень часто в нашей работе встречается такое понятие как «временной ряд». Это определение было придумано очень давно. Тогда, когда люди только стали записывать данные о чем-то двумя значениями: явлением и временем. Наиболее классическим описанием временного ряда является запись температуры на протяжении года или нескольких лет.

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

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

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

Но для чего может использоваться временной ряд в аудите? Для всего!

Операции клиента на протяжении квартала – временной ряд. Расход топлива служебного автомобиля – временной ряд. Даже чтение этой статьи – тоже временной ряд! (мы можем записать — сколько слов в минуту вы читаете, с указанием порядкового времени минуты)

Поэтому, анализ временных рядов мы с вами проводим достаточно часто. И, к сожалению, очень часто можем ошибаться.

Основным методом работы с любым простым временным рядом – это построение графика и его визуальная оценка.

Возьмем простой пример: рассмотрим покупки подарков к праздничному мероприятию для десяти коллег.

Читать далее

Как создавать красивые карты с помощью Python

Время на прочтение4 мин
Количество просмотров24K
Мне всегда нравились карты городов, и несколько недель назад я решил создать свою собственную, художественную версию. Немного погуглив, я обнаружил крутое руководство, написанное Фрэнком Себальосом. Оно увлекательно и полезно, но я предпочитаю более подробные/реалистичные карты-схемы. Из-за этого я решил создать свою собственную версию карт. Итак, давайте посмотрим, как мы можем создавать красивые карты с помощью Python и данных OpenStreetMap.

Приятного чтения!

Оценка важности «фичей» для нелинейных моделей

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

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

В стандартных пакетах для машинного обучения, таких как sklearn, xgboost, lightGBM существуют методы для оценки важности влияния на конечный результат той или иной фичи (параметра). Однако эти метрики важности не дают представление о том, как именно эти признаки влияют на предсказания модели. Например, как время проведенной операции указывает на то, была ли сделка мошеннической? Или как сильно адрес прописки владельца карты смещает предсказание модели? Для ответа на эти вопросы необходимо найти комплексное решение, которое помогло бы повысить интерпретируемость нелинейных моделей. Таким инструментом является библиотека SHAP. В библиотеке SHAP для оценки вклада фичей в итоговое предсказание моделей рассчитываются значения Шэпли. Для оценки важности фичи происходит оценка предсказаний модели, которая была обучена на основе датасета с и без данной фичи.

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

Приведенный ниже код взят с kaggle и доработан для демонстрации функций рассматриваемого инструмента.

Читать далее

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

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

В коммерческой разработке многие сценарии использования машинного обучения подразумевают мультитенантную архитектуру и требуют обучения отдельной модели для каждого клиента и/или пользователя.

В качестве примера можно рассмотреть прогнозирование закупок и спроса на какие-либо продукты с помощью машинного обучения. Если вы управляете сетью розничных магазинов, вы можете использовать данные истории покупок клиентов и итогового спроса на эти продукты для прогнозирования расходов и объёмов закупок для каждого магазина по отдельности.

Чаще всего в таких случаях для развёртывания моделей пишут службу Flask и помещают её в контейнер Docker. Примеров одномодельных серверов машинного обучения очень много, но когда дело доходит до развёртывания нескольких моделей, у разработчика остаётся не так много доступных вариантов для решения проблемы.

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

Читать далее

Как строить красивые графики на Python с Seaborn

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

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

Есть множество инструментов для визуализации данных, таких как Tableau, Power BI, ChartBlocks и других, которые являются no-code инструментами. Они очень мощные и у них есть своя аудитория. Однако для работы с сырыми данными, требующими обработки, а также качестве песочницы, Python подойдет лучше всего.

Графики на Python

25 полезных однострочников Python, которые вы должны знать

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

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

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

Читать далее

Книга «Секреты Python Pro»

Время на прочтение7 мин
Количество просмотров9.4K
image Привет, Хаброжители! Код высокого качества — это не просто код без ошибок. Он должен быть чистым, удобочитаемым и простым в сопровождении. Путь от рядового питониста к профи не прост, для этого вам нужно разбираться в стиле, архитектуре приложений и процессе разработки. Книга «Секреты Python Pro» научит проектировать ПО и писать качественный код, то есть делать его понятным, сопровождаемым и расширяемым.

Дейн Хиллард — профессиональный питонист, — с помощью примеров и упражнений он покажет вам как разбивать код на блоки, повышать качество за счет снижения сложности и т. д. Только освоив основополагающие принципы, вы сможете сделать так, чтобы чтение, сопровождение и переиспользование вашего кода не доставляло проблем ни вам ни вашим коллегам.
Читать дальше →

Самая лучшая практика: работа с path в Python

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

В последней статье мы использовали рекурсивную функцию размером менее 10 строк для решения проблемы сканирования папок и ранжирования файлов по дате изменения и размеру.

Теперь я подниму планку и покажу, как можно было сделать лучше.

Читать далее

Нейродайджест: главное из области машинного обучения за январь 2021

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


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

Оценка достоверности отчетов об ошибках с помощью анализа временных рядов

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

Привет, Хабр! Меня зовут Илья Селицер. В DINS мы участвуем в разработке продукта для UCaaS-провайдера RingCentral, которая объединяет много функций — от звонков и факса до корпоративного мессенджера и видеоконференций. Я, среди прочего, отвечаю за качество этого сервиса. В повседневной практике мне постоянно приходится анализировать взаимодействие различных сетевых элементов, которые участвуют в предоставлении той или иной услуги абонентам.

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

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

Читать далее

Собираем нейросети. Классификатор животных из мультфильмов. Без данных и за 5 минут. CLIP: Обучение без Обучения + код

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

Туториал: Собираем нейронную сеть на примере классификации нарисованных животных в режиме "обучения без обучения".

Цель: Научиться быстро создавать классификаторы для множества задач, без данных и без разметки, используя нейросеть CLIP от OpenAI.

Уровень: Туториал подходит под любой уровень: от нулевого до профи.

Совсем недавно я писал статью про нейронную сеть CLIP от OpenAI — классификатор изображений, решающий практически любую задачу, и который вообще не нужно обучать! Теперь давайте посмотрим, как CLIP работает на практике. Собираем CLIP из рубрики: Разбираем и Собираем Нейронные Сети на примере мультфильмов. На написание кода, и создание готового обученного классификатора у меня, и у любого, даже не знакомого с Python, уйдет именно пять минут. Интересно как? На самом деле все очень просто.

Туториал + Рабочий код: Читай и запускай! Приятного прочтения!

Поехали!

Уроки компьютерного зрения на Python + OpenCV с самых азов

Время на прочтение3 мин
Количество просмотров52K
Оглавление.

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

Ближайшие события

L-системы и что они себе позволяют

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

Вперёд за кроликом, всё ниже и ниже…

Давайте начнём с азов, если брать определение из всем известной и всеми любимой Википедии, то L-система (или же система Линденмайера) — это параллельная система переписывания и вид формальной грамматики. Если говорить простым языком, то L-система состоит из алфавита символов, которые могут быть использованы для создания строк, набора порождающих правил, которые задают правила подстановки вместо каждого символа, начальной строки ( “аксиомы” ), с которой начинается построение, и механизм перевода образованной строки в геометрические структуры. Самым простым примером L-системы может служить задача построения дерева.

Вводные данные:

Строка (далее Аксиома): A B

Переменные (которые мы можем задействовать в построении дерева): A B C

Правило (правило по которому каждая переменная на последующие строке меняется):

Читать далее

10 удивительно полезных базовых функций Python

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

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

В качестве примера можно привести NumPy. Инструменты работы с матрицами хороши и в базовом Python, но использование NumPy улучшает все во много раз. Кроме того, у этого языка есть несколько крутых возможностей, которые делают его еще более функциональным. Используя эти возможности, вы можете уменьшить количество зависимостей, освободить время и упростить сам процесс разработки. Давайте посмотрим, что это за возможности.
Читать дальше →

Выжать максимум: Cloud Composer как fully-managed решение для Airflow

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

Привет, Хабр! Меня зовут Сергей, я Lead Software Engineer/Stream Lead в ЕРАМ, сертифицированный Google Cloud инженер и архитектор. Уже более 10 лет занимаюсь коммерческой разработкой для различных всемирно известных компаний, в основном с фокусом на бэкенд. А еще я очень люблю делиться своими знаниями. Сегодня хочу рассказать про Apache Airflow, который, на мой взгляд, является хорошим инструментом для построения ваших пайплайнов. 

Начнем!

«Любовь. Python. C++». Доклад Яндекса

Время на прочтение8 мин
Количество просмотров9.4K
Что связывает языки Python и C++? Как извлечь из этого выгоду лично для себя? На большой конференции Pytup Александр Букин показал способы, благодаря которым можно оптимизировать свой код, а также выбирать и эффективно использовать сторонние библиотеки.

— Всем привет, меня зовут Александр Букин, я разрабатываю Яндекс.Погоду. Вы еще можете знать меня как сооснователя Pytup. Также я состою в программных комитетах таких классных конференций, как PyCon.ru и YaTalks.

Сегодня мы с вами поговорим о любви Python и C++. А точнее — о том, что же их объединяет, эти два прекрасных языка и, на самом деле, еще C, и что мы можем почерпнуть из этих прекрасных отношений.
Читать дальше →

Телеграм бот для поддержки своими руками

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

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

Проблем много, а решение одно: сделать Телеграм бот, который будет работать посредником между вашими пользователями/клиентами и вашей командой поддержки.

Я расскажу, как запустить такого бота бесплатно в 1 клик, и поделюсь кодом.

Читать далее

Строгая десериализация YAML в Python c библиотекой marshmallow

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

Исходная задача


  • Необходимо прочитать нетривиальный конфиг из .yaml файла.
  • Структура конфига описана с помощью дата-классов.
  • Необходимо, чтобы при десериализации были выполнены проверки типов, и, если данные невалидны, было брошено исключение.

То есть, проще говоря, нужна функция вида:


def strict_load_yaml(yaml: str, loaded_type: Type[Any]):
    """
    Here is some magic
    """
    pass

И эта функция будет использоваться следующим образом:

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

Автоматическое обучение взаимодействию функций с помощью самонастраиваемых нейронных сетей

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

Прогноз кликабельности (CTR), цель которого - предсказать вероятность того, что пользователь нажмет на объявление или товар, имеет решающее значение для многих онлайн-приложений, таких как онлайн-реклама и рекомендательные системы. Эта проблема очень сложна, поскольку: 1) входные функции (например, идентификатор пользователя, возраст пользователя, идентификатор элемента, категория элемента) обычно разрежены; 2) эффективное предсказание опирается на комбинаторные функции высокого порядка (они же кросс-функции), которые очень трудоемки для ручной обработки экспертами предметной области и не перечислимы. Поэтому были предприняты усилия по поиску низкоразмерных представлений разреженных и высокоразмерных необработанных объектов и их значимых комбинаций. 

Читать далее

Вклад авторов