Как стать автором
Обновить
5
0
Хитрин Сергей @serhit

Бизнес-анализ, управление проектами, разработка

Отправить сообщение

Малоизвестные библиотеки Python для анализа данных, которые сделают вашу жизнь проще

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров27K

Привет Хабр! В этой статье мы рассмотрим некоторые полезные библиотеки Python для задач обработки данных, с которыми, возможно, вы еще не знакомы. Хотя для задач машинного обучения на ум приходят такие библиотеки, как pandas, numpy, scikit-learn, keras, tensorflow, matplotlib и т.д., но всегда полезно знать о других предложениях Python, особенно если это поможет улучшить ваши проекты.

Читать далее
Всего голосов 18: ↑17 и ↓1+20
Комментарии4

Helena.4.0 – новый алгоритм для подбора гиперпараметров

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров9.2K

С целью автоматизации процесса подбора гиперпараметров автором данной статьи разработан алгоритм Helena.4.0. Конечной целью является создание автоматической системы построения моделей (auto-ML), которая бы подбирала гиперпараметры за минимальное время.

С помощью алгоритма Helena.4.0 можно подбирать гиперпараметры для моделей градиентного бустинга, нейросетей, и более того – для генетических алгоритмов. Автор считает, что алгоритмы Helena могут заменить в генетических алгоритмах генеративную часть – т.е. уйти от биологических аналогий, заменив псевдобиологическую генерацию признаков путем процедур «скрещивания» и «мутаций» на генерацию с помощью указанных алгоритмов.

Для поиска максимума функции алгоритм Helena.4.0 использует только ее значения, и  не используют первые и последующие производные. Таким образом, этот алгоритм не требуют ни дифференцируемости, ни непрерывности максимизируемой функции.

Сравнение алгоритма Helena.4.0 с наиболее популярными конкурентами (Optuna, HyperOpt, RandomSearch) показывает его высокую конкурентоспособность.

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

Ниже в статье приведено подробное описание алгоритма Helena.4.0 и результаты сравнительных тестов с алгоритмами-конкурентами.

Читать далее
Всего голосов 13: ↑10 и ↓3+11
Комментарии17

Полный релиз бесплатного интерактивного 700-страничного учебника по тестированию

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров102K

Гуд ньюз эвриван! Спустя полтора года работы восьми айтишников с суммарным опытом в IT 130 лет достигнут результат в виде учебника по тестированию, которого еще никто и никогда не делал.

Читать далее
Всего голосов 131: ↑130 и ↓1+158
Комментарии162

Подслушиваем чат телеграма с помощью своего клиента

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

Захотелось как-то мне, чтобы сообщения одного из чатов телеграма сохранялись у меня на диске (не запуская обычного клиента). Не буду раскрывать своих побудительных мотивов, но возможность эта показалась мне нужной и полезной.


Для этого в телеграме есть боты. На Хабре есть несколько статей, посвященных ботам, например: "Чат-помощник на сайт".


Бот позволяет читать и посылать сообщения, для регистрации бота не нужен телефон и количество ботов может быть любым. Но название бота включает в себя слово "bot", что может вызвать у хозяина чата ненужные вопросы.


Но, как говорится, правильно поставленный вопрос — половина ответа.

Читать дальше →
Всего голосов 20: ↑18 и ↓2+16
Комментарии8

Проработка нефункциональных требований? Нет, проработка аспектов обеспечения качества

Уровень сложностиСредний
Время на прочтение22 мин
Количество просмотров5.3K

При "проработке нефункциональных требований", ИТ аналитик сталкивается с проблемой: "надежность/доступность системы должна быть 99.5%", "время открытия страницы должно быть 3 секунды". А почему не 99.9% или 99.99999% или не 1 или 0.0001 секунды ? В реальности, должен быть достигнут баланс обеспечения качества между потерями бизнеса от необеспечения и расходами на обеспечение.

"Проработка нефункциональных требований" на практике является поиском обеспечения этого баланса, для чего нужно выяснить не только бизнес-потери от необеспечения, но тщательно спроектировать модели обеспечения качества (что часто является работой ИТ-аналитика) и оценить стоимость их создания и владения.

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

Читать далее
Всего голосов 9: ↑8 и ↓1+7
Комментарии1

Эффективное изменение размера картинок при помощи ImageMagick

Время на прочтение12 мин
Количество просмотров87K
В наше время всё чаще сайты сталкиваются с необходимостью введения отзывчивого дизайна и отзывчивых картинок – а в связи с этим есть необходимость эффективного изменения размера всех картинок. Система должна работать так, чтобы каждому пользователю по запросу отправлялась картинка нужного размера – маленькие для пользователей с небольшими экранами, большие – для больших экранов.

Веб таким образом работает отлично, но для доставки картинок разных размеров разным пользователям необходимо все эти картинки сначала создать.

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

Большие картинки == большие проблемы


Средняя веб-страница весит 2 Мб, из них 2/3 – картинки. Миллионы людей ходят в интернет через 3G, или ещё хуже. 2Мб-сайты в этих случаях работают ужасно. Даже на быстром соединении такие сайты могут израсходовать лимиты трафика. Работа веб-дизайнеров и разработчиков – упростить и улучшить жизнь пользователя.

image

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

ImageMagick


Утилита командной строки с 25-летним стажем в то же время является редактором картинок с полным набором функций. В ней огромная куча функций, и среди них – быстрое и автоматическое изменение размера картинок. Но с настройками по умолчанию файлы часто получаются излишне большими – иногда по объёму больше оригинала, хотя в них и меньше пикселей. Сейчас я объясню, в чём проблема, и покажу, какие настройки необходимы для её решения.
Читать дальше →
Всего голосов 32: ↑29 и ↓3+26
Комментарии11

Сети ZigBee. Зачем и почему?

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

Чего «репу» чешешь?
На золотую рыбку другая сеть нужна!


Собственно, я собирался продолжить серию топиков, посвященных работе RTLS – системы позиционирования в реальном времени. А именно, рассказать о беспроводной инфраструктуре системы, основанной на сетях ZigBee. Но вдруг с удивлением обнаружил, что на Хабрахабре нет публикаций, посвященных стандарту IEEE 802.15.4 и спецификации ZigBee. Есть лишь немногочисленные упоминания, связанные с тем или иным приложением. Попытаюсь по мерее сил заполнить этот пробел.

В последнее время все большее распространение и значение приобретают беспроводные сенсорные сети. Сети, которые по своему назначению, параметрам, спецификациям существенно отличаются от сетей связи – WiFi, GSM, LTE и т.п. Среди прочих, используемых в сенсорных сетях, выделяется спецификация ZigBee – наиболее продвинутая надстройка к стандарту IEEE 802.15.4
В этом году исполнилось 10 лет со времени основания ZigBee альянса, а в октябре исполняется 5 лет с момента утверждения действующей в настоящее время спецификации ZigBee Pro Feature Set 2006. Так что публикацию можно считать юбилейной.

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


Читать дальше →
Всего голосов 47: ↑43 и ↓4+39
Комментарии32

Торговый робот с использованием нейросетей

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров16K

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

Эта тема последовательно раскрывается в этой статье, сразу приведу основные этапы по созданию такого торгового робота:

1) получение исторических данных по торговым инструментам;

2) подготовка датасета из этих исторических данных по определенной логике для нейросети;

3) обучение нейросети и выбор лучшей обученной модели по параметрам loss, accuracy, val_loss, val_accuracy;

4) проверка предсказаний сделанных нейросетью;

5) проверка подключения к API Финама;

6) определение торговой логики для открытия позиций;

7) запуск live стратегии с использованием выбранной лучшей модели обученной нейросети с нашей торговой логикой.

Читать далее
Всего голосов 8: ↑3 и ↓50
Комментарии24

Препарирование нейронок, или TSNE и кластеризация на терабайтах данных

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

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

Читать далее
Всего голосов 13: ↑8 и ↓5+7
Комментарии5

Открытый курс машинного обучения. Тема 7. Обучение без учителя: PCA и кластеризация

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

Привет всем! Приглашаем изучить седьмую тему нашего открытого курса машинного обучения!


Данное занятие мы посвятим методам обучения без учителя (unsupervised learning), в частности методу главных компонент (PCA — principal component analysis) и кластеризации. Вы узнаете, зачем снижать размерность в данных, как это делать и какие есть способы группирования схожих наблюдений в данных.


UPD 01.2022: С февраля 2022 г. ML-курс ODS на русском возрождается под руководством Петра Ермакова couatl. Для русскоязычной аудитории это предпочтительный вариант (c этими статьями на Хабре – в подкрепление), англоговорящим рекомендуется mlcourse.ai в режиме самостоятельного прохождения.


Видеозапись лекции по мотивам этой статьи в рамках второго запуска открытого курса (сентябрь-ноябрь 2017).

Читать дальше →
Всего голосов 53: ↑52 и ↓1+51
Комментарии8

Патч от Intel для ускорения алгоритмов библиотеки scikit-learn

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров3.5K

Уведомление о возможности ускорить работу появляется при установке scikit-learn, поэтому пишу для тех, кто давно не переустанавливал эту библиотеку.

Подробное описание ускорителя – по ссылке https://intel.github.io/scikit-learn-intelex/

Ниже перечислил важные моменты и результаты испытаний по повышению производительности.

Установка

Устанавливать можно с помощью pip или conda. Важный момент: ускоритель пока не работает с версиями python 3.10 и новее, поэтому лучше ставить в окружение с версией 3.9. Например, так:

conda create -n env python=3.9 scikit-learn-intelex

Сама библиотека scikit-learn при этом устанавливается автоматически.

Работа с GPU поддерживается.

Использование

Предусмотрено несколько вариантов применения «заплатки». Например, при запуске своего приложения без изменения его кода:

python -m sklearnex my_application.py

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

Важно загружать запускать ускоритель до загрузки самой библиотеки:

from sklearnex import patch_sklearn

patch_sklearn()

from sklearn import…

Если нужно отменить, то после отмены снова загружаем sklearn:

sklearnex.unpatch_sklearn()

from sklearn import …

Ограничения

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

Полный список ограничений: https://intel.github.io/scikit-learn-intelex/algorithms.html

Тест на скорость

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии7

О модифицирующих командах

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

На волне нынешнего хайпа про инфраструктурные платформы каждый, наверное, слышал о книге Team Topologies, вышедшей года 3 назад.

Я ее сейчас пересказывать не буду, поэтому если какие-то термины или рассуждения ниже вам окажутся непонятными я рекомендую прочитать сперва ее, а затем вернуться к моему посту.

Из всех тем, рассматриваемых в Team Topologies наиболее непонятная тема — это Enabling team, “модифицирующая” или “преобразующая” команда. Я буду использовать слово Модифицирующая Команда, потому что такой же перевод используется в Platen.

Читать далее
Всего голосов 11: ↑2 и ↓9-6
Комментарии4

Neural Network Optimization: океан в капле

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров14K

Всех приветствую, меня зовут Антон Рябых, работаю в Doubletapp. Вместе с коллегой Данилом Гальпериным мы написали статью про важный этап в процессе обучения нейронных сетей и получения необходимых нам результатов —  оптимизацию модели. Зачем нужно оптимизировать модель, если и так все работает? Но как только вы начнете разворачивать модель на устройстве, которое будет ее обрабатывать, перед вами встанет множество проблем.

Более крупные модели занимают больше места для хранения, что затрудняет их распространение. Более крупные модели требуют больше времени для работы и могут потребовать более дорогого оборудования. Это особенно важно, если вы создаете модель для приложения, работающего в реальном времени.

Оптимизация моделей направлена на уменьшение размера моделей при минимизации потерь в точности и производительности.

Методы оптимизации

Pruning — устранение части параметров нейронной сети.
Quantization — уменьшение точности обрабатываемых типов данных.
Knowledge distillation — обновление топологии исходной модели до более эффективной, с уменьшенным количеством параметров и более быстрым выполнением.
Weight clustering — сокращение количества уникальных параметров в весах модели.
OpenVino, TensorRT — фреймворки, с помощью которых можно оптимизировать модели.

Читать далее
Всего голосов 28: ↑28 и ↓0+28
Комментарии3

Python Дайджест: как актуализировать всю кодовую базу с помощью pre-commit

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

Продолжаю рассказывать, как open source проект Python Дайджест спустя 5 лет без обновлений удалось актуализировать по всему стэку технологий. В первой части рассказал, как удалось outdated проект с Python 3.4 обновить до Python 3.11 и Django 4.1.


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


Читать дальше →
Всего голосов 10: ↑9 и ↓1+10
Комментарии0

Как воспитать GPT модель в домашних условиях [LLaMA Update]

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров55K

Мы решили проверить технологию, на которой основан ChatGPT, посмотреть актуальное состояние open-source GPT-like моделей и ответить на вопрос — можно ли обучить GPT-like модель в домашних условиях?

Для эксперимента выбрали LLaMA и GPT-J и не самый мощный ПК с видеокартой Nvidia GTX 1080TI с 11 GB VRAM. Оказалось, что этого достаточно не только, чтобы загрузить модель, но и дообучить ее (fine-tune). Рассказываем — как мы это сделали.

Читать далее
Всего голосов 42: ↑40 и ↓2+44
Комментарии25

Описательная статистика перформанс-распределений

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

Нужна ли разработчику математика? Если анализировать замеры производительности, то матстатистика понадобится. Но оказывается, о ней полезно знать не совсем то, что в учебниках. А что тогда?

Андрей Акиньшин @DreamWalker поговорил об этом в докладе на нашей конференции Heisenbug. И теперь, пока мы готовим следующий Heisenbug (где тоже будут доклады о производительности), решили опубликовать текстовую версию его выступления (а для тех, кому удобнее другие форматы, прикрепляем видеозапись и слайды). Предупреждаем: много букв, цифр, графиков и формул!

Читать далее
Всего голосов 51: ↑51 и ↓0+51
Комментарии2

Центры компетенций. Что может пойти не так?

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

Матричные структуры управления известны с 1960 годов. Тогда для полета в космос потребовалось объединить усилия предприятий из разных отраслей, сохраняя единую точку ответственности за проект.

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

Матричные организации состоят из кросс‑функциональных команд проектов (или команд продуктов или команд потоков ценности), в которые входят специалисты самых разных профилей: продуктологов, дизайнеров, маркетологов, архитекторов, аналитиков, проектировщиков, разработчиков, тестировщиков, специалистов по внедрению и развертыванию, лояльных клиентов, сотрудников сопровождения и мониторинга, продавцов, специалистов контакт‑центров, аккаунт‑менеджеров, юристов, специалистов по информационной безопасности для того, чтобы организация быстрее адаптировалась к изменениям.

Центрами компетенций в данной структуре принято называть ее функциональную часть — например, центр компетенций архитектуры, центр компетенций маркетинга или центр компетенций по управлению проектами.

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

На практике эта идея часто не взлетает и все идет совсем не так, как хотелось бы. Как именно и почему? Обсудим в статье.

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

Читать далее
Всего голосов 7: ↑5 и ↓2+7
Комментарии2

Сколько получают российские разработчики: наше исследование

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров84K


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


Будет полезно тем, кто хочет быть в курсе рынка. Или иметь лишний повод обратиться к своему работодателю за повышением. Мы знаем, что подобные исследования проводит сам Хабр, но вряд ли дополнительная информация из других источников кому-то помешает.


Эта статья — с цифрами для разработчиков. Как до, так и после 21 сентября. Исследование по HR, менеджерам и дизайнерам выйдет позже, если этот пост вам понравится.

Читать дальше →
Всего голосов 111: ↑107 и ↓4+136
Комментарии253

Как улучшить ваши A/B-тесты: лайфхаки аналитиков Авито. Часть 1

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

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

Мы не только пытаемся максимизировать выручку Авито, но и думаем про счастье пользователей. Если установить слишком большие цены, то пользователи возмутятся и начнут уходить с площадки, а если сделать цены слишком маленькими, то мы недополучим часть оптимальной выручки. Низкие цены также увеличивают количество «спамовых» объявлений, которые портят поисковую выдачу пользователям. Поэтому нам очень важно уметь принимать математически обоснованные решения — любая наша ошибка напрямую отразится на выручке и имидже компании. 

Одним из инструментов для решения наших задач является A/B-тестирование.

Читать далее
Всего голосов 10: ↑8 и ↓2+7
Комментарии15

Авторская методика количественной оценки сплоченности рабочих групп

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров1.3K

Как количественно оценить степень сплоченности рабочей группы и выразить это в виде измеримого показателя?

Как сравнивать этот показатель с другими рабочими группами (В идеале — иметь возможность отсортировать рабочие группы по степени сплоченности)?

Как заранее спрогнозировать сплоченность для вновь создаваемых рабочих групп?

Как количественно оценить степень вовлеченности каждого сотрудника?

Как делать все это в любой момент времени дешево и быстро (т. е. без проведения специальных опросов, тестов, наблюдения, анкетирования, интервьюирования и т. п.)?

Читать далее
Всего голосов 5: ↑2 и ↓30
Комментарии4

Информация

В рейтинге
4 642-й
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность