А вы используете линтеры?✏️
Линтер - программа, которая сделает ваш код как у синьора-помидора🍅
Если на пальцах, для Python - линтер проверит соблюдение правил PEP8 (вы же помните, что они есть или пишите спагетти-код🍝) и выдаст рекомендации по улучшению, ну или сам поправит.
Вводная про линтеры
К чему это всё, прочел статью Груг, против сложности, автор которой потрудился и проверил весь Python-код в статьях на хабре - рекомендую к прочтению, можно найти много практических советов😉
Из полезного:
- у автора есть сервис по авторевью кода (там навороченный линтер, как мелкий брюзга проверить ваш код)
- по результатам есть описание типовых ошибок
- если не хотите ждать авторевью (оно занимает до 24 часов), устанавливаете
......................
Помните в посте выше про
немного кода, я собрал его в py-файл и отправил на проверку, результат по ссылке или кратко:
- отсутствуют аннотации типов (да, еще не добрался до их применения)
- ненужный код
- лишнее создание объектов
Оценка - 2️⃣.7️⃣8️⃣% при общей в по всем ревью 8.5% - отличный результат🥇
В общем готовьте код правильно!
Линтер - программа, которая сделает ваш код как у синьора-помидора🍅
Если на пальцах, для Python - линтер проверит соблюдение правил PEP8 (вы же помните, что они есть или пишите спагетти-код🍝) и выдаст рекомендации по улучшению, ну или сам поправит.
Вводная про линтеры
К чему это всё, прочел статью Груг, против сложности, автор которой потрудился и проверил весь Python-код в статьях на хабре - рекомендую к прочтению, можно найти много практических советов😉
Из полезного:
- у автора есть сервис по авторевью кода (там навороченный линтер, как мелкий брюзга проверить ваш код)
- по результатам есть описание типовых ошибок
- если не хотите ждать авторевью (оно занимает до 24 часов), устанавливаете
flake8, качаете авторский .flake8 и начинаете улучшать свой код......................
Помните в посте выше про
ipython-sql мы писалинемного кода, я собрал его в py-файл и отправил на проверку, результат по ссылке или кратко:
- отсутствуют аннотации типов (да, еще не добрался до их применения)
- ненужный код
- лишнее создание объектов
Оценка - 2️⃣.7️⃣8️⃣% при общей в по всем ревью 8.5% - отличный результат🥇
В общем готовьте код правильно!
Журнал «Код» программирование без снобизма
Линтер: что это такое и зачем нужно — Журнал «Код»
Линтер — это программа, которая автоматизирует всю эту возню и сама «причёсывает» код по определённым правилам. Даёшь ей чумазый и неуклюжий код, она чистит на уровне каких-то простых правил.
👍2
🎙Хей-хей, сегодня небольшой квиз
И не говорите, что вы не любите порешать интересные задачки на Python или SQL🤩
Не часто в описании вакансии встретишь намеки на тестовое, а тут на днях обнаружил такое:
Устроим небольшой SQL challenge💪
В комменты добавлю видео где найти этот датасет 🎥
Буду ждать ваших решений, если возникнут проблемы, смело пишите в комменты, разберемся🙃
Итого в решении должно быть:
- запрос 1 (топ 3 машины)
- запрос 2 (сравнение величины чаевых за месяц с предыдущим в процентах)
- будет круто если график изменения чаевых реализуете в виде дашборд 📈 (варианты: Tableau Public, Google Data Studio, Yandex DataLens, Redash) и поделитесь ссылкой
➖➖➖➖➖➖➖➖➖➖
Ну, что погнали😉
#sql #dashboard #challenge
И не говорите, что вы не любите порешать интересные задачки на Python или SQL🤩
Не часто в описании вакансии встретишь намеки на тестовое, а тут на днях обнаружил такое:
Напишите запрос, который найдет три машины, получившие наибольшее кол-во чаевых в апреле 2022 года.
Выведите, как изменялась эта сумма в последующие месяцы в процентах по сравнению с предыдущим в таблице со столбцами:
- taxi_id
- year_month
- tips_sum
- tips_changes
В качестве источника используйте bigquery-public-data.chicago_taxi_tripsУстроим небольшой SQL challenge💪
В комменты добавлю видео где найти этот датасет 🎥
Буду ждать ваших решений, если возникнут проблемы, смело пишите в комменты, разберемся🙃
Итого в решении должно быть:
- запрос 1 (топ 3 машины)
- запрос 2 (сравнение величины чаевых за месяц с предыдущим в процентах)
- будет круто если график изменения чаевых реализуете в виде дашборд 📈 (варианты: Tableau Public, Google Data Studio, Yandex DataLens, Redash) и поделитесь ссылкой
➖➖➖➖➖➖➖➖➖➖
Ну, что погнали😉
#sql #dashboard #challenge
👍2🐳1
☝️Как говорил известный герой Случайности не случайны
Начав новый рабочий ML проект, через пару дней наткнулся на стартующий курс от ODS - ML System Design Course.
Естественно вписался, думал, послушаю лекции, узнаю чего нового, а тут активностей накидали:
- 🎥 Видео лекции
- 📝 За время курса (до середины января 2023) необходимо подготовить доклад\tutorial (в идеале статья habr\medium) на выбранную тему (например, Airflow или DVC)
- 📆 все студенты собираются в команды и будут пилит pet-project. К окончанию курса, должно быть работающее MVP
- 📚 куча дополнительных материалов, только успевай читать
Первая лекция прошла - она была обо всем по-немногу (что будет в курсе, чего не будет). Тк участвую в достаточном кол-ве ML проектов, то меня привлек слайд про управление ML проектами (рисунок будет в комментариях).
Приглянулся двухфазный подход к ML проектам:
- 🕔 Discovery (фиксированное время). За отведенное время выполняем research по данным, генерим гипотезы, проверяем, формулируем и тд. Так сказать готовим почву для второго этапа
- 🚰 Delivery (фиксированные задачи). Задачи выявленные в ходе research здесь обретают форму и результаты.
Кажется, так просто и понятно, но объяснить заказчику необходимость Discovery бывает очень трудно, тк ему кажется, что всё это как бы прилагается и задача (которую он придумал) точно решается.
Начав новый рабочий ML проект, через пару дней наткнулся на стартующий курс от ODS - ML System Design Course.
Естественно вписался, думал, послушаю лекции, узнаю чего нового, а тут активностей накидали:
- 🎥 Видео лекции
- 📝 За время курса (до середины января 2023) необходимо подготовить доклад\tutorial (в идеале статья habr\medium) на выбранную тему (например, Airflow или DVC)
- 📆 все студенты собираются в команды и будут пилит pet-project. К окончанию курса, должно быть работающее MVP
- 📚 куча дополнительных материалов, только успевай читать
Первая лекция прошла - она была обо всем по-немногу (что будет в курсе, чего не будет). Тк участвую в достаточном кол-ве ML проектов, то меня привлек слайд про управление ML проектами (рисунок будет в комментариях).
Приглянулся двухфазный подход к ML проектам:
- 🕔 Discovery (фиксированное время). За отведенное время выполняем research по данным, генерим гипотезы, проверяем, формулируем и тд. Так сказать готовим почву для второго этапа
- 🚰 Delivery (фиксированные задачи). Задачи выявленные в ходе research здесь обретают форму и результаты.
Кажется, так просто и понятно, но объяснить заказчику необходимость Discovery бывает очень трудно, тк ему кажется, что всё это как бы прилагается и задача (которую он придумал) точно решается.
👍2
Пятница плавно подошла к своему вечеру😎
Люблю когда всё ОК....
Люблю когда всё ОК....
👌2🍾1
Навеяно просмотром фильма Человек, который изменил всё 📺
Хороший однако фильм и посвящен отчасти нашим data-делам.
В общем рекомендую к просмотру, ну и знать статистику тоже рекомендую😉
#mem
Хороший однако фильм и посвящен отчасти нашим data-делам.
В общем рекомендую к просмотру, ну и знать статистику тоже рекомендую😉
#mem
👍3😁2
This media is not supported in your browser
VIEW IN TELEGRAM
Кажется, я нашел, на что еще можно смотреть бесконечно😍
Вот что бывает, когда есть умелые руки и современные технологии:
- Python
- raspberry pi
- шепотка DeepLearning (хотя там может просто библиотека OpenCV)
🐔🐔🐔
https://pikabu.ru/story/turel_protiv_kur_9528819?utm_source=linkshare&utm_medium=sharing
#video #почтимем
Вот что бывает, когда есть умелые руки и современные технологии:
- Python
- raspberry pi
- шепотка DeepLearning (хотя там может просто библиотека OpenCV)
🐔🐔🐔
https://pikabu.ru/story/turel_protiv_kur_9528819?utm_source=linkshare&utm_medium=sharing
#video #почтимем
Пикабу
Турель против кур
Пост пикабушника numbra в сообществе Видеохостинг на Пикабу
Черный лебедь🦢
Недавно со мной произошла поучительная история.
Обсуждая рабочие задачи, коснулись изменения одного из параметров: пока коллеги продолжили обсуждение (оно строилось вокруг гипотезы - параметр измеряется редко, до единиц раз в неделю).
Чтобы обсуждение не ушло далеко, я решил бегло просмотреть данные и понять так ли это. Немного контекста: данные находятся в контуре заказчика, до которого надо пройти небольшие круги ада с VPN + RDS —> то есть не самый приятный и удобный способ посмотреть данные.
Данные просмотрены 👀, говорю коллегам: Параметр изменяется реже 1 раза в неделю, дискуссия прерывается, конфа заканчиватся.
Но сомнения от быстрого просмотра не дали мне покоя, пошел писать SQL для подсчета кол-ва изменений по недельно. Результат ☝️ на картинке: При крайне низкой вероятности 1 изменения в неделю я показаательно попал в эту цифру (это несомненно успешный успех)🙃
.
.
💡 Не делайте поспешных выводов из анализа на скорую руку
Недавно со мной произошла поучительная история.
Обсуждая рабочие задачи, коснулись изменения одного из параметров: пока коллеги продолжили обсуждение (оно строилось вокруг гипотезы - параметр измеряется редко, до единиц раз в неделю).
Чтобы обсуждение не ушло далеко, я решил бегло просмотреть данные и понять так ли это. Немного контекста: данные находятся в контуре заказчика, до которого надо пройти небольшие круги ада с VPN + RDS —> то есть не самый приятный и удобный способ посмотреть данные.
Данные просмотрены 👀, говорю коллегам: Параметр изменяется реже 1 раза в неделю, дискуссия прерывается, конфа заканчиватся.
Но сомнения от быстрого просмотра не дали мне покоя, пошел писать SQL для подсчета кол-ва изменений по недельно. Результат ☝️ на картинке: При крайне низкой вероятности 1 изменения в неделю я показаательно попал в эту цифру (это несомненно успешный успех)🙃
.
.
💡 Не делайте поспешных выводов из анализа на скорую руку
😁2
Неделя черных лебедей🦢
Последний месяц активно использую классный тул - SQLpad (ну почти "ай") для первичного анализа\проверки гипотез.
В кратце - ребята из Авито поняв, что известные клиенты нещадно плодят запросы к метаданным СУБД и приводят к деградации производительности, написали свой клиент - почитать тут.
Чем приглянулся мне: возможностью строить графики 📈 - набор не супер широкий, но для комфортного изучения данных более чем достаточно (иногда вам придется извернутся на SQL, но это отдельная история).
Лебединая песня: в конфиге нет отметки о том, что PostgreSQL поддерживается (текст на черном фоне), поэтому и живу с SQLite. Сегодня в очередной раз гулял по документации и увидел то, что в верхней рамке - а слона-то я и не заметил 🤨
Остаётся только проверить👀
Всем внимательности и мира🌎
Последний месяц активно использую классный тул - SQLpad (ну почти "ай") для первичного анализа\проверки гипотез.
В кратце - ребята из Авито поняв, что известные клиенты нещадно плодят запросы к метаданным СУБД и приводят к деградации производительности, написали свой клиент - почитать тут.
Чем приглянулся мне: возможностью строить графики 📈 - набор не супер широкий, но для комфортного изучения данных более чем достаточно (иногда вам придется извернутся на SQL, но это отдельная история).
Лебединая песня: в конфиге нет отметки о том, что PostgreSQL поддерживается (текст на черном фоне), поэтому и живу с SQLite. Сегодня в очередной раз гулял по документации и увидел то, что в верхней рамке - а слона-то я и не заметил 🤨
Остаётся только проверить👀
Всем внимательности и мира🌎
👍2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
☝️Привет, любителям SQL
Все знают, что ключевые слова (SELECT\FROM\HAVING\....) следует писать в UPPER CASE.
Самому запросу ни тепло ни холодно (лучше от этого он работать не станет), но человеческому глазу приятно и коллеги скажут спасибо. И вот вы в очередной раз исправляете все ключевые слова в трехэтажном запроса....😞
Нет, так делать не стоит. Облегчить себе жизнь можно просто настроив IDE. Я использую DBeaver: заходим в настройки, пара кликов мыши и вуаля -> смотрим в видео 🎥
А в целом вопрос форматирования SQL запросов всегда актуален, для этого рекомендую статью 📒
А вы форматируете, SQL?
Все знают, что ключевые слова (SELECT\FROM\HAVING\....) следует писать в UPPER CASE.
Самому запросу ни тепло ни холодно (лучше от этого он работать не станет), но человеческому глазу приятно и коллеги скажут спасибо. И вот вы в очередной раз исправляете все ключевые слова в трехэтажном запроса....😞
Нет, так делать не стоит. Облегчить себе жизнь можно просто настроив IDE. Я использую DBeaver: заходим в настройки, пара кликов мыши и вуаля -> смотрим в видео 🎥
А в целом вопрос форматирования SQL запросов всегда актуален, для этого рекомендую статью 📒
А вы форматируете, SQL?
👍5
А вот и мерч👕
По осени цыплят считают, а я принял участие в курсе ML System Design от сообщества ods.
Чуть позже расскажу, что было и чем всё закончилось, а пока красивая футболка.
По осени цыплят считают, а я принял участие в курсе ML System Design от сообщества ods.
Чуть позже расскажу, что было и чем всё закончилось, а пока красивая футболка.
👏4
ODS - ML System Design
.
Курс, посвященный проектированию ML систем с точки зрения софта, железа и бизнеса. Говоря проще: как жить дальше после получения обученной модельки.
.
Общее взаимодействие такое:
📍Участники выбирают какую-либо тему (например, бот рекомендаций игр, распознавание SQL, сервис сравнения цен и др)
📍Объединяются в команды
📍Слушают лекции, читают презентации и допматериал
📍🪚 Пилят свой проект в соответствии с полученными знаниями
🪣 Пытаются всеми правдами и неправдами дотащить проект допрода защиты
📍По пути могут разбираются в одной из выбранных тем (отличный прицип научился сам - научи других)
📍Презентуют проект
.
Восторженные крики, радость, мерч и вот это вот всё в конце😎
.
🍩Из приятных бонусов:
- поработать в команде
- получить новые знания\упорядочить старые
- собрать систему вместе
- получить отличный Design Doc
.
🏆Итог: 8 место среди всех проектов, сумевших дойти до конца (~40), отличная футболка и общее понимание устройства ML системы.
#ods #mlsystemdesign #part1
.
Курс, посвященный проектированию ML систем с точки зрения софта, железа и бизнеса. Говоря проще: как жить дальше после получения обученной модельки.
.
Общее взаимодействие такое:
📍Участники выбирают какую-либо тему (например, бот рекомендаций игр, распознавание SQL, сервис сравнения цен и др)
📍Объединяются в команды
📍Слушают лекции, читают презентации и допматериал
📍🪚 Пилят свой проект в соответствии с полученными знаниями
🪣 Пытаются всеми правдами и неправдами дотащить проект до
📍По пути могут разбираются в одной из выбранных тем (отличный прицип научился сам - научи других)
📍Презентуют проект
.
Восторженные крики, радость, мерч и вот это вот всё в конце😎
.
🍩Из приятных бонусов:
- поработать в команде
- получить новые знания\упорядочить старые
- собрать систему вместе
- получить отличный Design Doc
.
🏆Итог: 8 место среди всех проектов, сумевших дойти до конца (~40), отличная футболка и общее понимание устройства ML системы.
#ods #mlsystemdesign #part1
👍3🔥1
ODS - ML System Design 2️⃣
.
Чем занималась команда
.
Громкое название проекта - Voice Teacher - аудио анализ вашей речи с указанием слов филлеров, их процента и возможностью улучшения речи.
.
Удалось реализовать
- прием аудисообщений
- анализ на существование слов-филлеров
- отправка результата пользователю
.
Архитектура
- микросервисы:
- моделька - FastAPI
- база - FastAPI
- бот
- развернуто на YCloud
Для всего используется старый добрый Python🤟
.
Организация совместной работы
1. Кодовая база -
2. Общие идеи, тикеты, рисунки -
3. Документы -
4. Общение\обсуждение - чат Телеграмм, Zoom для онлайн обсуждений
.
#ods #mlsystemdesign #part2
.
Чем занималась команда
.
Громкое название проекта - Voice Teacher - аудио анализ вашей речи с указанием слов филлеров, их процента и возможностью улучшения речи.
.
Удалось реализовать
- прием аудисообщений
- анализ на существование слов-филлеров
- отправка результата пользователю
.
Архитектура
- микросервисы:
- моделька - FastAPI
- база - FastAPI
- бот
- развернуто на YCloud
Для всего используется старый добрый Python🤟
.
Организация совместной работы
1. Кодовая база -
github. Описаны правила создания веток (например, все исследовательские ветки именовались по шаблону exp-author_name-N)2. Общие идеи, тикеты, рисунки -
miro3. Документы -
Google Docs4. Общение\обсуждение - чат Телеграмм, Zoom для онлайн обсуждений
.
#ods #mlsystemdesign #part2
🔥1
ODS - ML System Design 3️⃣
.
Что не получилось
.
🔻не досмотрел все лекции - предновогодний декабрь не давал много времени на просмотр лекций - это будет наверстано
🔺выбранная тема для доклада - workflow фреймворк luigi (тот что разработал Spotify).
Предпочтения были такие:
- хотел про Airflow, но не успел, его уже заняли
- был куплен вводный курс, соответственно хотел и курс добить и оформить в виде статьи
Курс добить удалось, а статья не вышла - это и есть вторая недоделка по курсу ML System Design
.
🤞Торжественно обязуюсь досмотреть все лекции и написать статью про luigi.
.
Какие еще оркестраторы\workflow managers есть:
- prefect
- dagster (один из участников делал доклад)
- airflow
——————————————————-
Познакомится с задачами и инструментами Data Engineer на практике можно в водной части курса DE. А для тех, кто любит зависать в терминале, ковырятся в логах и перекладывать JSONы, можно рекомендовать пройти полностью курс. 😉
#mlsystemdesign #part3 #ods
.
Что не получилось
.
🔻не досмотрел все лекции - предновогодний декабрь не давал много времени на просмотр лекций - это будет наверстано
🔺выбранная тема для доклада - workflow фреймворк luigi (тот что разработал Spotify).
Предпочтения были такие:
- хотел про Airflow, но не успел, его уже заняли
- был куплен вводный курс, соответственно хотел и курс добить и оформить в виде статьи
Курс добить удалось, а статья не вышла - это и есть вторая недоделка по курсу ML System Design
.
🤞Торжественно обязуюсь досмотреть все лекции и написать статью про luigi.
.
Какие еще оркестраторы\workflow managers есть:
- prefect
- dagster (один из участников делал доклад)
- airflow
——————————————————-
Познакомится с задачами и инструментами Data Engineer на практике можно в водной части курса DE. А для тех, кто любит зависать в терминале, ковырятся в логах и перекладывать JSONы, можно рекомендовать пройти полностью курс. 😉
#mlsystemdesign #part3 #ods
👍1
⚪️ Снег КРУ(Г)Жится...
В самом начале был пост про круговые диаграммы.
.
Как бы не хотелось, но используют их чаще чем надо. Нашел интересную статью Why humans love pie charts.
.
Автор объясняет с двух сторон популярность кругов:
- история
- эволюция
.
Выходит так: круги просто не могли быть непопулярны😉
.
Приятного чтения📗
#pie #article
В самом начале был пост про круговые диаграммы.
.
Как бы не хотелось, но используют их чаще чем надо. Нашел интересную статью Why humans love pie charts.
.
Автор объясняет с двух сторон популярность кругов:
- история
- эволюция
.
Выходит так: круги просто не могли быть непопулярны😉
.
Приятного чтения📗
#pie #article
🎥 А чем вы планировали заниматься в выходные
.
Для тех кто давно хотел, но боялся спросить😉
.
В эту субботу, 4 марта в 20:00 (мск) консультант по карьере и релокации Диана https://amo.si/H/TXCU83/BMWVEX проводит вебинар на тему «Планирование релокации».
На вебинаре обсудят:
• как планировать релокацию (с чего начать, какую выбрать стратегию, как это всё включить в планирование, особенно, если вы на текущей работе очень заняты);
• какие бывают подводные камни и как их обойти
Для записи пишите в https://amo.si/H/OXQEF7/DBLH53 Вас запишут, ответят на вопросы и пришлют ссылку на вебинар.
Также рекомендую их телеграмм-канал, там каждый день что-то интересное: https://amo.si/H/Q49JUU/UBL4W3
#вебинар
.
Для тех кто давно хотел, но боялся спросить😉
.
В эту субботу, 4 марта в 20:00 (мск) консультант по карьере и релокации Диана https://amo.si/H/TXCU83/BMWVEX проводит вебинар на тему «Планирование релокации».
На вебинаре обсудят:
• как планировать релокацию (с чего начать, какую выбрать стратегию, как это всё включить в планирование, особенно, если вы на текущей работе очень заняты);
• какие бывают подводные камни и как их обойти
Для записи пишите в https://amo.si/H/OXQEF7/DBLH53 Вас запишут, ответят на вопросы и пришлют ссылку на вебинар.
Также рекомендую их телеграмм-канал, там каждый день что-то интересное: https://amo.si/H/Q49JUU/UBL4W3
#вебинар
🌚1
Когда хочется побыстрее🔥
.
Если вы строите графики по времени и вам хочется их получать быстрее, то вы можете использовать методы гистограмм:
-
-
- аналогичные другие
.
Да, это быстро и удобно, но на этом плюсы заканчиваются и начинаются ошибки. Чтобы их не совершать, подготовил colab, в котором рассмотрел:
- наличие ошибок при использовании методов гистограмм
- зависимость ошибок от данных и выбранных параметров графика по времени
.
Забирайте себе и стройте корректные графики😉
.
#hist #line #timeline #tutorial
.
Если вы строите графики по времени и вам хочется их получать быстрее, то вы можете использовать методы гистограмм:
-
plt.hist-
sns.histplot- аналогичные другие
.
Да, это быстро и удобно, но на этом плюсы заканчиваются и начинаются ошибки. Чтобы их не совершать, подготовил colab, в котором рассмотрел:
- наличие ошибок при использовании методов гистограмм
- зависимость ошибок от данных и выбранных параметров графика по времени
.
Забирайте себе и стройте корректные графики😉
.
#hist #line #timeline #tutorial
👍2
🔥It's a new release of sklearn
.
Если вы частенько работает в
.
- отфильтровать выбросы
- преобразовать шкалу
- преобразовать распределение
- сгенерировать новые признаки
- дискретизировать и тд.
.
Некоторые наиболее известные:
- StandardScaler - стандартизация
- PolynomialFeatures - создание полиномиальных комбинаций
.
Для таких задач в библиотеке есть широкий выбор средств для создания
- make_pipeline
- ColumnTransformer
.
Мы же любим когда данные лежат в пандах 🐼 - там всё удобно и человекочитаемо😍 Но когда начинаются игры с обработкой данных и подготовкой их к обучению моделей, то всё скатывается до массивов
.
Массивы
В одном из последних проектов приходилось страдать от этого😭
.
Но смотрите, что произошло после релиза 1.2. Разработчики подарили нам магию, немного изменим код:
Новинки:
-
-
.
Это лучшее нововведение в библиотеках анализа данных с которыми я работаю за последние несколько лет😉.
.
А для тех, кто много работает с моделями появилась классная фича - PartialDependenceDisplay - очень полезная, тк всем хочется узнать, как влияет одна отдельная фича на прогнозы модели
.
А какие вы можете вспомнить изменения, которые упростили вам анализ данных🤔
Еще больше узнать по кнопке👇
.
Если вы частенько работает в
sklearn, то вам точно понравятся нововведения, которые появились👇.
sklearn - библиотека методов и алгоритмов машинного обучения на Python. Для обучения моделей или использования некоторых методов (например, снижения размерности) данные необходимо подготовить:- отфильтровать выбросы
- преобразовать шкалу
- преобразовать распределение
- сгенерировать новые признаки
- дискретизировать и тд.
.
Некоторые наиболее известные:
- StandardScaler - стандартизация
- PolynomialFeatures - создание полиномиальных комбинаций
.
Для таких задач в библиотеке есть широкий выбор средств для создания
Pipeline, например: - make_pipeline
- ColumnTransformer
.
Мы же любим когда данные лежат в пандах 🐼 - там всё удобно и человекочитаемо😍 Но когда начинаются игры с обработкой данных и подготовкой их к обучению моделей, то всё скатывается до массивов
numpy, вот как это выглядело раньше:X, y = load_iris(as_frame=True, return_X_y=True)
sepal_cols = ["sepal length (cm)", "sepal width (cm)"]
petal_cols = ["petal length (cm)", "petal width (cm)"]
preprocessor = ColumnTransformer(
[
("scaler", StandardScaler(), sepal_cols),
("kbin", KBinsDiscretizer(encode="ordinal"), petal_cols),
("Poly", PolynomialFeatures(degree=2, include_bias=False), sepal_cols)
],
)
pipe = make_pipeline(preprocessor)
X_out = preprocessor.fit_transform(X)
print(type(X_out))
display(X_out[:5, :])
# результат будет на 1 рисунке в комментах
.
Массивы
numpy нетакие юзерфрендли, ладно когда мы не создаем новых фич, можно использовать наименования их исходных данных, но когда мы используем полиномиальные фичи, получаются колонки с названиями x0, x1^2 и тд - крайне неудобно.В одном из последних проектов приходилось страдать от этого😭
.
Но смотрите, что произошло после релиза 1.2. Разработчики подарили нам магию, немного изменим код:
X, y = load_iris(as_frame=True, return_X_y=True)
sepal_cols = ["sepal length (cm)", "sepal width (cm)"]
petal_cols = ["petal length (cm)", "petal width (cm)"]
preprocessor = ColumnTransformer(
[
("scaler", StandardScaler(), sepal_cols),
("kbin", KBinsDiscretizer(encode="ordinal"), petal_cols),
("Poly", PolynomialFeatures(degree=2, include_bias=False), sepal_cols)
],
verbose_feature_names_out=False,
).set_output(transform="pandas")
pipe = make_pipeline(preprocessor)
X_out = preprocessor.fit_transform(X)
X_out.sample(n=5, random_state=0)
Новинки:
-
verbose_feature_names_out=False - добавление префикса к названиям колонок, к какому трансформеру они относятся-
set_output(transform="pandas") - истинная магия 🧙♂️, да-да, теперь выход пайплайна будет DataFrame c человекочитаемыми признаками - 2 рисунок в комментах.
Это лучшее нововведение в библиотеках анализа данных с которыми я работаю за последние несколько лет😉.
.
А для тех, кто много работает с моделями появилась классная фича - PartialDependenceDisplay - очень полезная, тк всем хочется узнать, как влияет одна отдельная фича на прогнозы модели
.
А какие вы можете вспомнить изменения, которые упростили вам анализ данных🤔
Еще больше узнать по кнопке👇
❌ Про ошибки и не только
.
Навеяно статьей 10 первых ошибок в карьере ML-инженера. Богдан, автор статьи, был участником нашей команды в курсе ML System Design, хотя скорее ментором😉
.
Некоторые ошибки (хотя для себя я бы назвал это идеей или откровением🙃) откликнулись:
🔹Не ML единым. Модельки не панацея, особенно в сложных областях (медицина, металлургия), там где человек должен очень хорошо понимать, как принимаются решения. Задачу следует попробовать решать начиная с простых правил, чаще всего такие правила у заказчика уже есть - узнайте их, возможно, их стоит просто улучшить
🔹Не писать дизайн-док. В моей практике я бы расширил: не только дизайн-док, но и фиксировать summary после каждого значимого обсуждения. Как показывает практика, у заказчика может быть много проектов (его внимание рассеяно), заказчик может слабо понимать ML, поэтому фиксация договоренностей в начале (дизайн-док) и на промежуточных этапах - очень важна
🔹Говорить просто о сложном - всем надо тренироваться объяснять простым языком, людям нравится, когда они понимают вас
🔹Жить в Jupyter-тетрадках. Года 1.5 назад съехал с jupyter'a - нет, я конечно его использую, когда надо быстро что-то посмотреть, попробовать, но в остальное время пишу в IDE - тут мой фаворит
- повышается качество кода
- сразу привыкаешь структурировать код по модулям
- и кажется чувствуешь себя немножко круче😎
🔹Браться за любой проект. Тут можно взгрустнуть, да такое бывает, приходится браться за невыигрышные проекты, иногда даже с проведенным ресерчем. Боремся коллеги💪
.
Пишите какие ошибки проходили, а может есть что-то новенькое🙃
#error #article
.
Навеяно статьей 10 первых ошибок в карьере ML-инженера. Богдан, автор статьи, был участником нашей команды в курсе ML System Design, хотя скорее ментором😉
.
Некоторые ошибки (хотя для себя я бы назвал это идеей или откровением🙃) откликнулись:
🔹Не ML единым. Модельки не панацея, особенно в сложных областях (медицина, металлургия), там где человек должен очень хорошо понимать, как принимаются решения. Задачу следует попробовать решать начиная с простых правил, чаще всего такие правила у заказчика уже есть - узнайте их, возможно, их стоит просто улучшить
🔹Не писать дизайн-док. В моей практике я бы расширил: не только дизайн-док, но и фиксировать summary после каждого значимого обсуждения. Как показывает практика, у заказчика может быть много проектов (его внимание рассеяно), заказчик может слабо понимать ML, поэтому фиксация договоренностей в начале (дизайн-док) и на промежуточных этапах - очень важна
🔹Говорить просто о сложном - всем надо тренироваться объяснять простым языком, людям нравится, когда они понимают вас
🔹Жить в Jupyter-тетрадках. Года 1.5 назад съехал с jupyter'a - нет, я конечно его использую, когда надо быстро что-то посмотреть, попробовать, но в остальное время пишу в IDE - тут мой фаворит
PyCharm. Последние полгода использую профессиональную версию - тут сразу есть поддержка Jupyter - поэтому переключаться достаточно просто. Из опыта IDE извлек:- повышается качество кода
- сразу привыкаешь структурировать код по модулям
- и кажется чувствуешь себя немножко круче😎
🔹Браться за любой проект. Тут можно взгрустнуть, да такое бывает, приходится браться за невыигрышные проекты, иногда даже с проведенным ресерчем. Боремся коллеги💪
.
Пишите какие ошибки проходили, а может есть что-то новенькое🙃
#error #article