Хочу поделиться с вами своим опытом анализа данных и машинного обучения на примере интересной и полезной задачи — классификации грибов на съедобные и ядовитые. А именно, в данной статье я расскажу о том, как обучал различные модели машинного обучения отличать съедобные грибы от несъедобных, с какими сложностями столкнулся в процессе и какие интересные наблюдения про грибы и ML открыл по пути.
Python *
Высокоуровневый язык программирования
Новости
Бесплатный курс VK Education: углублённый Python для студентов и недавних выпускников
Всем привет! Меня зовут Анастасия Скуйбедина, я менеджер образовательных проектов VK. Недавно мы рассказали о трёх бесплатных образовательных курсах, которые VK Education запускает этой осенью. Один из них — «Углублённый Python», о котором я расскажу подробнее в этом посте.
Книга «Python. Лучшие практики и инструменты. 4-е изд.»
Python — простой, но мощный язык, поэтому он используется в самых разных областях. Написать код на Python легко, но сделать его удобочитаемым и пригодным для повторного использования и сопровождения может оказаться проблемой. Четвертое издание этой книги дополнено лучшими практиками, полезными инструментами и стандартами, которые применяют профессиональные разработчики, что поможет вам не только преодолеть эти затруднения, но и освоить новейшие возможности и расширенные концепции языка.
Книга начинается с легкой разминки, которая познакомит вас с последними улучшениями Python, элементами синтаксиса и полезными инструментами, делающими разработку эффективнее. Кроме того, начальные главы помогут программистам с опытом работы на других языках успешно влиться в экосистему Python.
Следующие главы посвящены распространенным паттернам проектирования и методологиям программирования — таким как событийно-ориентированное программирование, параллелизм и метапрограммирование. Также вы разберете сложные примеры кода и будете решать содержательные задачи, связывая Python с C и С++ и создавая расширения, сочетающие сильные стороны разных языков. В заключительных главах рассматривается полный жизненный цикл приложения после ввода в эксплуатацию.
К концу книги вы освоите разработку эффективного и простого в сопровождении кода на Python.
Нужна ли вам Kafka? Разбираемся в технологии и собираем простое приложение на базе managed-решения
Kafka – стильная, модная, молодежная технология, которую разработала в 2011 году компания LinkedIn и значительно усовершенствовал Apache Software Foundation. Представляет собой надежный, масштабируемый и устойчивый инструмент для обработки и передачи данных в режиме реального времени — шину данных.
Но нужно ли внедрять технологию в угоду моде или амбициям вашего продуктового менеджера? Под катом расскажу про сильные стороны Kafka и задачи, в которых она раскрывается по максимуму. Также напишем быстрое приложение на базе Kafka-as-a-service, которую мы недавно релизнули в Selectel.
Истории
Первые шаги в ML на обучающем хакатоне: обнаружение птиц на фотографиях yolov8s + sahi
Несколько месяцев я пытался разбираться в ML и когда мне под руку попался легенький хакатон для школьников, связанный с CV, я решил, что это мой шанс!
Изучая задачу, я понял, что мне нужно обнаруживать чаек по фотографиям. Для решения задачи я решил использовать yolov8s, потому что он мне показался оптимальнейшим из линейки yolov8 для моего случая. Также, мне как-то рассказывали про sahi (Slicing Aided Hyper Inference), и я решил, что это мой шанс попробовать этот инструмент в качестве улучшения конечного результата.
Итак, у меня был датасет, включающий фотографии, уже разбитые на train, validation, test, запакованные в zip архив. Первым делом, я клонирую репозиторий для yolov8, устанавливаю и импортирую необходимые на первых парах библиотеки и распаковываю то, что нужно распаковать.
Знакомимся с RepkaPi.GPIO SysFS. Установка и управление GPIO через Python 3. Теоретические основы работы GPIO портов
Начнем знакомство с подключаемой библиотекой RepkaPi.GPIO, данная библиотека написана на Python 3 и для управления GPIO использует методы, реализованные через SysFS.
Профилирование Python — почему и где тормозит ваш код
Представьте ситуацию: вы написали скрипт для обработки каких-то данных на ноутбуке, ушли попить кофе, а когда пятнадцать минут спустя вернулись, завершилось едва ли 10%.
Почему скрипт работает так медленно? Какая его часть тормозит? Дело в чтении данных, их обработке или сохранении? Как ускорить исполнение? Действительно ли скрипт вообще медленный?
Ответить на все эти вопросы поможет инструмент под названием «профилировщик» (profiler).
Анализ текстовых данных с использованием тематического моделирования
Анализ текстовых данных становится все более важным в наше время, когда огромные объемы информации генерируются и обмениваются каждую секунду. От социальных медиа до новостных порталов, от клиентских отзывов до академических статей — текстовые данные содержат бесценные знания и инсайты. Однако извлечение значимой информации из таких объемов текста может быть огромным вызовом.
Компании хотят понимать общественное мнение о своих продуктах и брендах, но анализировать миллионы постов и комментариев вручную практически невозможно. Вот где анализ текстовых данных и тематическое моделирование приходят на помощь. Эти методы позволяют автоматически выявлять темы, тональность и структуру текста, делая процесс анализа эффективным и масштабируемым.
Разбираемся в «базовых» алгоритмах для проекта
Меня зовут Александр Певненко, я Java developer в СберТехе. Вместе с командой развиваю Platform V DataSpace — BaaS-продукт, обеспечивающий базовые сервисы для работы с данными.
В этой статье я собрал примерный список алгоритмов, которые использую в работе с высоконагруженным проектом с большой кодовой базой. Материал будет интересен всем, кто на практике решает задачи оптимизации и вообще задумывается, обязательно ли разработчику глубоко погружаться в математику.
Если скорость и производительность критичны для системы, то оптимизация кода перестает быть пустой тратой времени. А использование сторонних библиотек без понимания их устройства становится риском, так как может обернуться падением производительности.
Поэтому здесь я приведу несколько «базовых» алгоритмов, знание которых помогает мне работать с прицелом на эффективность кода, и дополню примерами на Python и Java.
Использование конечных автоматов с несколькими активными состояниями для автоматизации бизнес-процессов
Производственная деятельность предприятия связана с работой ответственных должностных лиц над одним или несколькими документами, включая электронные. Порядок прохождения документов определён нормативными актами. Каждое должностное лицо заполняет ту или иную часть документа, согласовывает, утверждает документ, возвращает его на доработку, участвует в выполнении работ по документу.
Бизнес процессы, описывающие производственную деятельность принято представлять в формате BPMN, а системы, автоматизирующие бизнес-процессы, часто создают с использованием ИТ-платформ типа Camunda. Camunda выступает в роли BPMN-движка.
Camunda довольно специфический продукт, требующий привлечения специалистов соответствующей квалификации. Можно предложить подход к автоматизации бизнес-процессов, не требующий специальной подготовки аналитиков и разработчиков.
JSON и XML для новичков
Краткое описание понятий json и xml, а также работа с ними на языке python.
Всем привет! Это моя первая статья, немного волнительно, но потными ладошками все же пишу. Идея написания пришла ко мне после задачи на работе, которая была связана с направлением xml - файлов в ЦБ. Думаю, многие аналитики, работающие в банке, сталкивались или еще столкнутся с подобными задачами, поэтому хочу помочь будущим поколениям.
Просто о Deep #1
Боль в написании backend
Разберем, какие есть боли у backend разработчика и как deep.foundation решает данную проблему и что предлагает для разработчика.
Создание красивого Desktop-приложения на Python (customtkinter)
Если Вы как и я решили впервые взглянуть в сторону Python после нескольких попыток изучения С++/C# то скорее всего первым проектом станет desktop-приложение. Отходя от темы скажу что тяга к изучению этих языков была безнадежно утрачена в виду классического преподавания в духе "лишь бы сдали" и бесчисленных однотипных и монотонных лекций. Как я сказал выше хоть и на начальном уровне, но я всё же касался разработки приложений для шинды и поэтому мне хотелось посмотреть на принципы работы питона сначала отсюда(а не прыгать в django и прочие мощные фреймворки).
Ближайшие события
Развертывание docker контейнера с easyocr в закрытом контуре предприятия
Привет, Хабр! На просторах интернета, да и на самом Хабре есть огромное количество статей про OCR. Сегодня я бы хотел рассказать не про процесс распознавания текста а про методику развертывания решения в закрытом контуре (проще говоря - без интернета).
Чтобы ускорить работу Numba и кода NumPy, нужно понять, как работают процессоры
Если вам нужно ускорить обработку NumPy или просто сократить использование памяти, попробуйте компилятор Numba just-in-time. С его помощью можно писать код на языке Python, который во время выполнения компилируется в машинный код. Это позволяет получить прирост скорости, сопоставимый с приростом, который можно получить на C, Fortran или Rust.
По крайней мере, так считается в теории. На практике же код на Numba может быть не быстрее, чем эквивалент NumPy. Но если лучше понимать, как работают процессоры, можно добиться большего. Эти знания помогут более широко использовать любой компилируемый язык. В этой статье мы:
• Рассмотрим простую задачу обработки изображений.
• Попытаемся (поначалу безуспешно) ускорить ее с помощью Numba.
• Рассмотрим, почему современные процессоры такие быстрые, и каковы возможности компиляторов.
• Опираясь на полученные знания, скорректируем наш код так, чтобы он выполнялся в 25 раз быстрее по сравнению с первоначальной версией.
Метаданные как обезбол при миграции
Привет! Меня зовут Наташа Красильникова, я старший аналитик команды Operations Analytics в Skyeng. Мы завязаны на работе с сотней сервисов компании: забираем данные из сервисов и интегрируем много локальных документов с бизнесовыми маппингами, таргетами, а иногда и просто какими-то дополнительными данными.
Когда пришло время мигрировать наше многолетнее легаси на новый DWH… что ж, мы пережили целый спектр острых эмоций. И, конечно, выработали ноу-хау, чтобы сгладить переход и сделать его менее болезненным. В статье расскажу, что придумали и как применяли.
Пятифакторный тест личности — бот в Телеграм
В качестве повышения собственного уровня в программировании я решил написать бота в Телеграм, который проводит тестирование по 5-Factor Model of Personality. Простыми словами, это тест, в котором участники отвечают в формате от "Полностью согласен" до "Полностью не согласен" на ~50 вопросов, на подобие "я душа компании" или "я часто беспокоюсь". На выходе, мы получаем результаты от 1 до 100 по пяти факторам - Открытость к опыту, Сознательность, Экстраверсия, Доброжелательность, Невротизм (эмоциональная стабильность).
Интерпретировать результаты можно таким нехитрым способом. Например, мы получаем 70 по экстраверсии - это означает, что, если бы в комнате находились 100 человек, расположенных в порядке возрастания их экстраверсии, то мы стояли бы на 70 месте. То есть, мы были бы более общительны, чем 70% людей в комнате. Надеюсь, что звучит нетрудно.
Думаю, что выбор языка python для написания бота в Телеграм является незамысловатым решением, так как большинство ботов написаны на питоне и обилие библиотек на питоне для работы с API Телеграм сильно упрощает работу и позволяет сконцентрироваться на предмете работы. Библиотеку использовал python-telegram-bot.
Правильность подсчета результатов является основой любого теста. Для данного бота я взял эти данные. Там содержатся более миллиона итогов прохождений данного тестирования другими людьми. Что нам нужно, это:
Как правильно дифференцировать дискретные функции (Часть 2. Все-таки, МКЭ?)
Публикация является продолжением обсуждения алгоритмов вычисления первой производной дискретной функции (функции, заданной массивом {аргумент: значение}, или массивом узловых значений). В части первой обсуждались функции из библиотеки NumPy, и был предложен альтернативный алгоритм, повышающий точность расчетов на границах области определения функции. В настоящей публикации предложены 2 алгоритма на основе метода конечных элементов (МКЭ, Finite Elements Method), один из которых показал на тестовых функциях лучшие результаты в сравнении с альтернативами.
Строим пайплайн в sсikit-learn — пошаговое руководство
Привет, Хабр! Меня зовут Иван Сивков, я наставник на курсе «Специалист по Data Science» в Яндекс Практикуме. В этой статье покажу, как построить пайплайн в библиотеке scikit-learn на базе встроенных инструментов и сократить количество кода при преобразовании данных. Эта статья рассчитана на новичков, которые только начинают изучать Data Science, но уже знают основные понятия.
Архитектурные нюансы OpenStack. Принципы работы компонентов Nova
OpenStack — широко распространенная облачная платформа. На ее базе построены десятки, а то и сотни проектов: приватных и публичных. Ее многочисленные модули позволяют достаточно просто наращивать функциональность конечного решения: от понятных DBaaS (Database as a Service) до специфичных AXaaS (Acceleration as a Service).
По мере развития CLO возникла необходимость доработки платформы под собственные нужды. В процессе написания патчей мне сильно не хватало понимания архитектурных принципов OpenStack. Часть информации я смог найти в документации, часть мне приходилось вытаскивать из исходников, поэтому я решил систематизировать знания и поделиться с сообществом.
В цикле статей мы рассмотрим основные компоненты OpenStack, механизмы их взаимодействия и как именно разработчиками был реализован основной функционал. Статья будет интересна инженерам, разработчикам облачных сервисов и всем тем, кто хотел заглянуть под капот, но стеснялся.
А так как Nova (он же Compute) является едва ли не основным сервисом, который эксплуатируют все остальные, с него и начнем.