Обновить
525.85

Python *

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

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

Оптимизация при помощи линейного поиска на Python

Время на прочтение10 мин
Охват и читатели18K

Линейный поиск — это алгоритм оптимизации, который может использоваться для целевых функций с одной или несколькими переменными. Он предоставляет возможность использовать алгоритм одномерной оптимизации, например поиск методом деления пополам (бисекции) для многомерной целевой функции, работая с линейным поиском для определения оптимального размера шага в каждом измерении от известной точки до оптимума. Мы уже делились переводами Джейсона Браунли, например статьёй о смешанных ансамблях, а в этом учебном руководстве, которое мы перевели к старту курса о машинном и глубоком обучении, рассказывается об основах: вы узнаете, как на Python с помощью линейного поиска выполнить оптимизацию.

Читать далее

Проецирование положения объектов с камеры видеонаблюдения на карту, используя лишь школьную геометрию

Время на прочтение4 мин
Охват и читатели15K

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

Сегодня я расскажу о том, как можно спроецировать координаты с плоского изображения на карту. Эта короткая статья будет своеобразным продолжением первой статьи, в которой я рассказывал о базовых возможностях Mask R-CNN.

Начать конвертацию

Как я программировал шахматную партию против брата

Время на прочтение12 мин
Охват и читатели21K


Это история о том, как я попытался выиграть у брата партию в шахматы. Всего лишь гребаную одну игру. Что в этом особенного? Хорош ли я в шахматах? Вовсе нет. Научился ли я чему-то в процессе игры? Тоже нет. Может, это история о путешествии ради путешествия, а не цели? Не совсем. Получил ли я хотя бы удовольствие от этого? Не уверен.

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

5 разных библиотек Python, которые сэкономят ваше время

Время на прочтение5 мин
Охват и читатели23K

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

Читать далее

Погружаемся в статистику вместе с Python. Часть 3. Тестов много, принцип один

Время на прочтение18 мин
Охват и читатели38K

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

О чем мне следует вас предупредить перед погружением на такую глубину? Во-первых, я предполагаю, что вы уже почитали книгу Сары Бослаф "Статистика для всех", а еще покопались в официальной документации модуля stats библиотеки SciPy. Уж простите меня за мое следующее предположение, но мне кажется, что вы скорее всего были немного ошарашены огромным количеством тестов, которые там имеются, и были ошарашены еще больше, когда поняли, что это на самом деле только верхушка айсберга. Ну, а если вы еще не столкнулись со всеми прелестями этого чудесного "пубертатного периода", то рекомендую раздобыть книгу Александра Ивановича Кобзаря "Прикладная математическая статистика. Для инженеров и научных работников". Ну, а если вы "в теме", то все равно загляните под кат, почему? Потому что изложение и интерпретация фактов порой важнее и интереснее самих фактов.

Ну что, погружаемся еще глубже?

Сортируем файлы с помощью Python

Время на прочтение6 мин
Охват и читатели36K

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

Действительно

Борьба с несбалансированностью классов с помощью модуля NEARMISS

Время на прочтение3 мин
Охват и читатели11K

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

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

Метод NearMiss — это метод недостаточной выборки. Он пробует сбалансировать распределение классов путём случайного исключения наблюдений из бо́льших классов. Если экземпляры из двух разных классов очень похожи между собой, метод удаляет наблюдение из мажоритарного класса.

Давайте рассмотрим работу этого метода на практике. Для начала установим необходимые нам библиотеки через стандартный pip в cmd:

Читать далее

angelspie — управление окнами в X11, глобальные и не только горячие клавиши

Время на прочтение2 мин
Охват и читатели2.2K

Название - отсылка к devilspie, похожей утилитой. Она примечательна тем, что конфиг пишется на диалекте лисп, несмотря на это у неё весьма ограниченные возможности. Тем более у утилит типа wmctl и т.п.

С помощью библиотеки wnck можно делать куда больше, а ещё больше если задействовать gdk.

Для глобальный горячих клавиш я использовал libkeybinder, раньше я делал такое на "голой" xlib, но так удобней(и переносимей). Впрочем xlib/xtest тоже используется - чтобы эмулировать нажатие кнопок. Но эти функции опциональны.

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

В детали реализации я вдаваться не буду. Там много магии и метапрограммирования, часть кода сгенерирована.

Лучше покажу пример конфига, который использует часть возможностей. Кстати, новые правила можно генерировать из командной строки, оно возьмет name и class_group активного окна.

Читать далее

Распознаем номера автомобилей. Разработка multihead-модели в Catalyst

Время на прочтение5 мин
Охват и читатели8.1K

Фиксация различных нарушений, контроль доступа, розыск и отслеживание автомобилей – лишь часть задач, для которых требуется по фотографии определить номер автомобиля (государственный регистрационный знак или ГРЗ). 

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

Сделать модель для распознавания можно с помощью разных подходов, например, путем поиска и определения отдельных символов, или в виде задачи image-to-text. Мы рассмотрим модель с несколькими выходами (multihead-модель). В качестве датасета возьмём датасет с российскими номерами от проекта Nomeroff Net. Примеры изображений из датасета представлены на рис. 1.

Читать далее

Django Rest Framework для начинающих: создаём API для чтения данных (часть 1)

Время на прочтение11 мин
Охват и читатели206K

Меня зовут Стас Гаранжа, я выпускник курса «Python-разработчик» в Яндекс.Практикуме. Я хочу помочь начинающим разработчикам, которые приступили к изучению Django Rest Framework (DRF) и хотят разобраться, как устроен этот фреймворк.


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


В этой статье разберёмся, как сделать REST API на базе Django Rest Framework, чтобы получить по GET-запросу набор записей из базы данных (БД). Иными словами, рассмотрим, как DRF работает на чтение (о том, как с помощью него создавать, изменять и удалять записи в БД, поговорим в отдельной статье).


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


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

DataScience Digest — 10.06.21

Время на прочтение3 мин
Охват и читатели2.2K

Приветствую всех!

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

Встречайте свежий выпуск дайджеста полезных материалов из мира Data Science & Machine Learning и не забывайте подписываться на наш Telegram-канал.

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

Абстрактные синглтоны, фабрики или 665 принцип ООП

Время на прочтение4 мин
Охват и читатели9K

В современном мире ООП стало неотъемлимой частью разработки. Многие популярные языки, такие как Pyhon, Jaba, Hachkell, GOO и C== поддерживают данную парадигму. В этой статье я постараюсь раскрыть смысл таких архитектурных конструкций, как абстрактный синглтон и фабрика абстрактных синглтонов.

Читать далее

Оптимизации портфеля с помощью Python и PyPortfolioOpt

Время на прочтение6 мин
Охват и читатели29K

Портфельная теория Марковица(далее ПТМ) (Modern portfolio theory) — разработанная Гарри Марковицем методика формирования инвестиционного портфеля, направленная на оптимальный выбор активов, исходя из требуемого соотношения доходность/риск. Сформулированные им в 1950-х годах идеи составляют основу современной портфельной теории.

Основные положения портфельной теории были сформулированы Гарри Марковицем при подготовке им докторской диссертации в 1950—1951 годах.

Рождением же портфельной теории Марковица считается опубликованная в «Финансовом журнале» в 1952 году статья «Выбор портфеля». В ней он впервые предложил математическую модель формирования оптимального портфеля и привёл методы построения портфелей при определённых условиях. Основная заслуга Марковица состояла в предложении вероятностной формализации понятий «доходность» и «риск», что позволило перевести задачу выбора оптимального портфеля на формальный математический язык. Надо отметить, что в годы создания теории Марковиц работал в RAND Corp., вместе с одним из основателей линейной и нелинейной оптимизации — Джорджем Данцигом и сам участвовал в решении указанных задач. Поэтому собственная теория, после необходимой формализации, хорошо ложилась в указанное русло.

Читать далее

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

Как использовать Python для проверки протокола Signal

Время на прочтение12 мин
Охват и читатели5K

Galois работает над повышением удобства SAW, инструмента для верификации программ на C и Java, исходный код которого открыт. Основным способом взаимодействия пользователей с SAW является его спецификация и язык программирования сценариев. Чтобы сделать SAW как можно более доступным, в качестве языка программирования SAW теперь можно использовать Python! Для демонстрации этой новой возможности в Galois создали пример, выполнив проверку части реализации протокола Signal на языке С. В частности, как спецификация SAW определяются условия, при которых сообщение протокола Signal будет успешно аутентифицировано. К старту курса о Fullstack-разработке на Python мы перевели материал об этом примере.

Читать далее

ML глазами практикующего трейдера

Время на прочтение12 мин
Охват и читатели20K

Сразу скажу что назвать себя программистом или знатоком машинном обучении у меня язык не поворачивается, скажем так - программирую я лучше 90% трейдеров и разбираюсь в трейдинге лучше 99% программистов и datascientists. Это не к тому что я такой молодец, это скорей к вопросу какая дыра непонимания существует между областями знаний, которую я попытаюсь немножко устранить.

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

Написать свой первый пост на хабре меня сподвигла 2 статьи на хабре на тему прогнозирования активов, одна совсем древняя, другая свежая, я даже ее откаментировал. Так часто бывает когда что то хорошее вызывает желание алаверды. А статья хороша хотя бы тем, что там совершенно верный подход к трейдингу на финансовых рынках: "выдвигаем гипотезу-тестируем на истории". Ничего лучше не придумано (хотя наверно есть гении которые могут познав суть предмета, прогнозировать его дальнейшее состояние, даже такое, которое раньше не существовало в истории). Многие трейдеры вообще этого не понимают, предпочитая торговать по книжкам гуру или избитым техиндикаторам. Можно было бы бомбить эту статью комментариями, но справедливее, помимо критики было бы написать что то полезное для всех ребят из IT ("критикуешь?! А ты предложи что то взамен!"), которые вооружившись инструментарием ML хотят попробовать реализовать свои знания на финансовых рынках. А этот интерес очевидный, так как финансовый рынок как своего рода интеллектуальное казино предоставляет возможность капитализировать свои знания, трудолюбие, талант, осталось дело за малым - создать рабочий алгоритм позволяющий выносить денюжки с рынка. На языке трейдеров называется это алготрейдингом. Но много ли вы слышали о удачном применении ML в трейдинге? Я лично нет, хотя можно самоуспокоиться тем, что удачные реализации никто светить не будет, и все на самом деле работает и пока мы тут пишем и читаем, кто то удачно вооружившись градиентным бустингом или сверточной сетью делает профиты мозолистыми пальцами, холодной головой и горячим сердцем. Но сдается мне не так все просто. Помимо того что фондовый рынок вообще нельзя прогнозировать (ога!), тут есть некоторые проблемы реализации, которые я попытаюсь, путанно, но изложить.

Читать далее

Анализ сообщений коммерческого чата на предмет игнорирования вопроса клиента на основе модели nlp

Время на прочтение8 мин
Охват и читатели3.4K

Задача – «Провести анализ сообщений коммерческого чата на предмет игнорирования вопроса клиента менеджером компании»

На входе: лог чатов с клиентом компании в csv формате.

Читать далее

Обучаем качественные модели без DensePose разметки

Время на прочтение2 мин
Охват и читатели2.1K

Возможно ли обучить качественную модель, которая предсказывает 3D координаты поверхности тела животного по фотографии, без соответствующей DensePose разметки?

В предверии CVPR2021 вспомним, что исследователи из Facebook Artificial Intelligence Research смогли предложить на конференции по машинному зрению годом ранее.

Читать далее

SQLAlchemy: а ведь раньше я презирал ORM

Время на прочтение10 мин
Охват и читатели44K

Так вышло, что на заре моей карьеры в IT меня покусал Oracle -- тогда я ещё не знал ни одной ORM, но уже шпарил SQL и знал, насколько огромны возможности БД.

Знакомство с DjangoORM ввело меня в глубокую фрустрацию. Вместо возможностей -- хрена с два, а не составной первичный ключ или оконные функции. Специфические фичи БД проще забыть. Добивало то, что по цене нулевой гибкости мне продавали падение же производительности -- сборка ORM-запроса не бесплатная. Ну и вишенка на торте -- в дополнение к синтаксису SQL надо знать ещё и синтаксис ORM, который этот SQL сгенерирует. Недостатки, которые я купил за дополнительную когнитивную нагрузку -- вот уж где достижение индустрии. Поэтому я всерьёз считал, что без ORM проще, гибче и в разы производительнее -- ведь у вас в руках все возможности БД.

Так вот, эта история с SQLAlchemy -- счастливая история о том, как я заново открыл для себя ORM. В этой статье я расскажу, как я вообще докатился до такой жизни, о некоторых подводных камнях SQLAlchemy, и под конец перейду к тому, что вызвало у меня бурный восторг, которым попытаюсь с вами поделиться.

SELECT article FROM habr

«A/B-тест» в инженерно-геологических изысканиях на языке Python

Время на прочтение7 мин
Охват и читатели7.8K

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

При данной постановке задачи можно применить методику A/B-тестирования.

Читать далее

Ptpython: улучшенный REPL для Python

Время на прочтение4 мин
Охват и читатели12K
Возникало ли у вас когда-нибудь желание быстро испытать какую-нибудь свежую идею, прибегнув к интерфейсу командной строки Python, к REPL? Вероятно, если речь идёт об эксперименте буквально с несколькими строками кода, вам просто не захочется создавать для этого новый «блокнот» Jupyter.

Но в подобной ситуации, возможно, вас не особенно порадует и перспектива использования классической консоли Python, так как она, в отличие от Jupyter Notebook, не поддерживает автодополнение ввода и не умеет работать с документационными строками. В REPL, кроме того, нельзя, после нажатия на Enter, исправлять ошибки в коде.

Что если можно было бы превратить довольно-таки скучную командную строку Python в многофункциональный инструмент, вроде того, запись работы с которым показана ниже?


Продвинутая командная строка Python

Собственно, именно на тех, у кого возникает подобное желание, и ориентирован проект ptpython.
Узнать подробности

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