#python #books
Ссылки на посты по книжке "Л. Рамальо. Python – к вершинам мастерства: Лаконичное и эффективное программирование" (в оригинале - Fluent Python, 2nd Edition). Содержат материал, который показался мне интересным и вошёл в категорию #codegems.
Затрагиваются механизмы сопоставления (match), классы данных и их аналоги, аннотирование типами, инструменты itertools, работа с классами/ООП, генераторы, контекстные менеджеры, асинхронка, дескрипторы классов.
Пробегитесь по темам, если есть незнакомые слова, возможно, есть смысл перечитать актуальную доку Питон )
1. [], {} и ()/match/ChainMap/MappingProxyType
2. class init/dict/json
3. unicode: NFC/NDF, strxfrm/NamedTuple/dataclass
4. more dataclass/typehints
5. weakrefs/functional programming/more typehints
6. Any/|/TypeVar/TypeAlias/typing.Protocol
7. positional-only/closures/singledispath/decorator via class
8. getattr/reduce via initializer/zip,zip_longest/principle of failing fast
9. goose typing/vurtual subclass/Hashable/ABC/Decimal
10. UserDict, UserList, UserString/MRO/mixin/get_annotations
11. (sub)generator/coprogram/type: ignore/with/@contextmanager
12. else in for,while,try/scientific sins/GIL/getswitchinterval/asyncio
13. asyncio.to_thread/asyncpg/asyncio.Semaphore/async with/keyword.iskeyword
14. property/vars/metaprogramming
15. class denoscriptors
Если решите читать книгу - ТОЛЬКО в оригинале, русский перевод плох.
Ссылки на посты по книжке "Л. Рамальо. Python – к вершинам мастерства: Лаконичное и эффективное программирование" (в оригинале - Fluent Python, 2nd Edition). Содержат материал, который показался мне интересным и вошёл в категорию #codegems.
Затрагиваются механизмы сопоставления (match), классы данных и их аналоги, аннотирование типами, инструменты itertools, работа с классами/ООП, генераторы, контекстные менеджеры, асинхронка, дескрипторы классов.
Пробегитесь по темам, если есть незнакомые слова, возможно, есть смысл перечитать актуальную доку Питон )
1. [], {} и ()/match/ChainMap/MappingProxyType
2. class init/dict/json
3. unicode: NFC/NDF, strxfrm/NamedTuple/dataclass
4. more dataclass/typehints
5. weakrefs/functional programming/more typehints
6. Any/|/TypeVar/TypeAlias/typing.Protocol
7. positional-only/closures/singledispath/decorator via class
8. getattr/reduce via initializer/zip,zip_longest/principle of failing fast
9. goose typing/vurtual subclass/Hashable/ABC/Decimal
10. UserDict, UserList, UserString/MRO/mixin/get_annotations
11. (sub)generator/coprogram/type: ignore/with/@contextmanager
12. else in for,while,try/scientific sins/GIL/getswitchinterval/asyncio
13. asyncio.to_thread/asyncpg/asyncio.Semaphore/async with/keyword.iskeyword
14. property/vars/metaprogramming
15. class denoscriptors
Если решите читать книгу - ТОЛЬКО в оригинале, русский перевод плох.
Telegram
Aspiring Data Science
#python #codegems
По умолчанию любой экземпляр пользовательского класса считается истинным, но положение меняется, если реализован хотя бы один из методов bool или len. Функция bool(x), по существу, вызывает x.bool() и использует полученный результат. Если…
По умолчанию любой экземпляр пользовательского класса считается истинным, но положение меняется, если реализован хотя бы один из методов bool или len. Функция bool(x), по существу, вызывает x.bool() и использует полученный результат. Если…
⚡1
Forwarded from Data Secrets
Media is too big
VIEW IN TELEGRAM
У CEO Anthropic Дарио Амадея вышло новое интересное интервью. Краткое содержание:
➡️ По мнению Дарио, в будущем большие и мощные ИИ-модели будут порождать и координировать более мелкие для помощи в выполнении задач. Этот процесс будет похож на создание роевого интеллекта, и необходимость человеческого участия в нем будет близка к нулю.
➡️ Если масштабирование не выйдет на плато и мы не наткнемся на ранее не учтенные трудности, то, учитывая реалии, модель стоимостью 100 миллиардов долларов должна иметь интеллект уровня лауреата Нобелевской премии.
➡️ Ну и классика: ИИ может увеличить скорость научных открытий в 100 раз. Тем самым мы можем пройти путь, соразмерный прогрессу 20-го и 21-го века вместе взятых, всего за несколько лет.
Полностью интервью можно посмотреть здесь
Полностью интервью можно посмотреть здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
#gpt #llms #ai
"Испугался роботов".
Есть такой учёный, астроном, Владимир Сурдин. Классно рассказывает об астрономии, читает много лекций, в т.ч. не просто научно-популярных для широкой аудитории, но и на высоком техническом уровне для студентов-астрономов. При этом задаёт аудитории вопросы, на которые та зачастую затрудняется найти ответ.
Ну я возьми и напиши ему, мол, Владимир Георгиевич, используете ли современный ИИ в работе, если нет, попробуйте, может помочь на многих фронтах. На что он ответил: "Обращаться к ИИ за новыми идеями - значит перестать тренировать свою голову."
Я пишу, мол, ну мы же перестали делать умножение в столбик на бумаге, потом даже и калькуляторы забросили, стали вычислять на компьютерах - значит ли это, что мы перестали тренировать свою голову и всё плохо? Мы же стали заниматься более сложными задачами, сложив рутинную работу на машину, нет?
Дай, думаю, покажу ему возможности того же чатгпт в понимании естественного языка. Попросил сервис (на русском) сгенерить фотографию астероида Оумуамуа, улетающего от Земли на фоне Солнца и космоса. потом спросил, кто такой Владимир Сурдин, на что получил достаточно полное резюме, сгенерировал несколько астрономических шуток, спросил ИИ, почему этот учёный избегает помощи ИИ и какие аргументы ему привести (на что получил отличный ответ).
Ну, думаю, всё, человек сейчас в изумлении ответит: Ого, вот это инструмент, ОНО НАС ПОНИМАЕТ! Как же это ускорит мою работу по подготовке планов выступлений, иллюстраций, кода для вычислений, перевода, генерации новых идей! В ответ он придрался к тому, что в саммари о нём была указана неверная дата рождения, а астероид на фотографии оказался не сигарообразным (это и правда был косяк генерации, в промпте я просил сигарообразный. возможно, английский промпт сработал бы лучше, или дело просто в том, что генерация картинок пока в бете), да и шутки плоские. И заключил: "Нет, с роботами мне обсуждать нечего".
Первым порывом было попросить его придумать самому тонкую шутку, ну или предложить спросить у его студентов его дату рождения, но потом дошло, что бесполезно продолжать.
И я с ужасом подумал, батюшки, а я же этого человека считал отличным кандидатом на должность главы Роскосмоса, или чего-то подобного. А он, оказывается, отвергает прогресс, не понимает, боится его.
Пришла такая мысль: неужели это общая закономерность, и на управляющих должностях НЕЛЬЗЯ держать людей старше лет 50? Неужели они все цепляются за прошлое и не способны к инновациям?
"Испугался роботов".
Есть такой учёный, астроном, Владимир Сурдин. Классно рассказывает об астрономии, читает много лекций, в т.ч. не просто научно-популярных для широкой аудитории, но и на высоком техническом уровне для студентов-астрономов. При этом задаёт аудитории вопросы, на которые та зачастую затрудняется найти ответ.
Ну я возьми и напиши ему, мол, Владимир Георгиевич, используете ли современный ИИ в работе, если нет, попробуйте, может помочь на многих фронтах. На что он ответил: "Обращаться к ИИ за новыми идеями - значит перестать тренировать свою голову."
Я пишу, мол, ну мы же перестали делать умножение в столбик на бумаге, потом даже и калькуляторы забросили, стали вычислять на компьютерах - значит ли это, что мы перестали тренировать свою голову и всё плохо? Мы же стали заниматься более сложными задачами, сложив рутинную работу на машину, нет?
Дай, думаю, покажу ему возможности того же чатгпт в понимании естественного языка. Попросил сервис (на русском) сгенерить фотографию астероида Оумуамуа, улетающего от Земли на фоне Солнца и космоса. потом спросил, кто такой Владимир Сурдин, на что получил достаточно полное резюме, сгенерировал несколько астрономических шуток, спросил ИИ, почему этот учёный избегает помощи ИИ и какие аргументы ему привести (на что получил отличный ответ).
Ну, думаю, всё, человек сейчас в изумлении ответит: Ого, вот это инструмент, ОНО НАС ПОНИМАЕТ! Как же это ускорит мою работу по подготовке планов выступлений, иллюстраций, кода для вычислений, перевода, генерации новых идей! В ответ он придрался к тому, что в саммари о нём была указана неверная дата рождения, а астероид на фотографии оказался не сигарообразным (это и правда был косяк генерации, в промпте я просил сигарообразный. возможно, английский промпт сработал бы лучше, или дело просто в том, что генерация картинок пока в бете), да и шутки плоские. И заключил: "Нет, с роботами мне обсуждать нечего".
Первым порывом было попросить его придумать самому тонкую шутку, ну или предложить спросить у его студентов его дату рождения, но потом дошло, что бесполезно продолжать.
И я с ужасом подумал, батюшки, а я же этого человека считал отличным кандидатом на должность главы Роскосмоса, или чего-то подобного. А он, оказывается, отвергает прогресс, не понимает, боится его.
Пришла такая мысль: неужели это общая закономерность, и на управляющих должностях НЕЛЬЗЯ держать людей старше лет 50? Неужели они все цепляются за прошлое и не способны к инновациям?
👍2
#principles #wisdom #philosophy
Т.к. в бложике есть новые подписчики, потрачу место, но напомню важные, на мой взгляд, принципы, которыми стараюсь руководствоваться в работе.
Из них для меня самые значимые
Innovation over safe bets
Experiment over opinion
Long-term over short term
Я только сейчас осознал, что в нашем языке эти принципы реализованы в пословицах:
"Кто не рискует, тот не пьёт шампанского"
"Лучше один раз увидеть, чем сто раз услышать"
"Лучше с умным потерять, чем с дураком найти".
Самые сложно дающиеся мне это
Focus over context switching
Fast feedback over silent failure.
Есть такой принцип fail fast, с другой стороны, Джеймс Cаймонс добавлял: .. but don't give up too easily.
Т.к. в бложике есть новые подписчики, потрачу место, но напомню важные, на мой взгляд, принципы, которыми стараюсь руководствоваться в работе.
Из них для меня самые значимые
Innovation over safe bets
Experiment over opinion
Long-term over short term
Я только сейчас осознал, что в нашем языке эти принципы реализованы в пословицах:
"Кто не рискует, тот не пьёт шампанского"
"Лучше один раз увидеть, чем сто раз услышать"
"Лучше с умным потерять, чем с дураком найти".
Самые сложно дающиеся мне это
Focus over context switching
Fast feedback over silent failure.
Есть такой принцип fail fast, с другой стороны, Джеймс Cаймонс добавлял: .. but don't give up too easily.
#astronomy
"Американский экспериментальный космический аппарат Advanced Composite Solar Sail System (ACS3) отправился на земную орбиту 24 апреля этого года, и сейчас операторы миссии подтвердили, что ему удалось успешно развернуть солнечный парус в космосе, сообщили в NASA.
Испытания ACS3 будут проводиться в течение ближайших недель — инженеры проведут наблюдение за манёвренностью паруса в космосе. Регулируя орбиту, они получат данные, которые смогут использоваться в проектировании и эксплуатации будущих миссий аппаратов с солнечными парусами. Сейчас ACS3 находится на орбите примерно вдвое выше МКС. Если посмотреть на него сверху, он выглядит как квадрат размером почти в половину теннисного корта — около 80 м²."
https://3dnews.ru/1110290/nasa-uspeshno-razvernulo-solnechniy-parus-na-orbite
"Американский экспериментальный космический аппарат Advanced Composite Solar Sail System (ACS3) отправился на земную орбиту 24 апреля этого года, и сейчас операторы миссии подтвердили, что ему удалось успешно развернуть солнечный парус в космосе, сообщили в NASA.
Испытания ACS3 будут проводиться в течение ближайших недель — инженеры проведут наблюдение за манёвренностью паруса в космосе. Регулируя орбиту, они получат данные, которые смогут использоваться в проектировании и эксплуатации будущих миссий аппаратов с солнечными парусами. Сейчас ACS3 находится на орбите примерно вдвое выше МКС. Если посмотреть на него сверху, он выглядит как квадрат размером почти в половину теннисного корта — около 80 м²."
https://3dnews.ru/1110290/nasa-uspeshno-razvernulo-solnechniy-parus-na-orbite
3DNews - Daily Digital Digest
NASA успешно развернуло экспериментальный солнечный парус на орбите
Американский экспериментальный космический аппарат Advanced Composite Solar Sail System (ACS3) отправился на земную орбиту 24 апреля этого года, и сейчас операторы миссии подтвердили, что ему удалось успешно развернуть солнечный парус в космосе, сообщили…
#intel #management
Похоже, с назначением Гелсингера в своё время не угадали (
"По словам источников, со временем Тан начал разочаровываться в подходе к контрактному производству и бюрократической культуре Intel, не склонной к риску. Также он назвал раздутым штат компании. Согласно финансовому отчёту за последний квартал, в Intel работало 125 300 сотрудников по всему миру. Как сообщается, Патрик Гелсингер (Patrick Gelsinger), возглавивший Intel в 2021 году, добавил не менее 20 000 сотрудников в штат к 2022 году.
По словам источников, вопрос сокращения рабочих мест был одним из поводов для напряжённости между Таном и другими членами совета директоров. Taн хотел конкретных сокращений, включая менеджеров среднего звена, которые не вносят вклад в инженерные усилия Intel. По его словам, команды по некоторым проектам были в пять раз больше, чем выполняющие сопоставимую работу у конкурентов, таких как Advanced Micro Devices (AMD)."
https://3dnews.ru/1110085/sovet-direktorov-intel-pokinul-odin-iz-uchastnikov-izza-nesoglasiya-s-planom-ozdorovleniya-kompanii
Похоже, с назначением Гелсингера в своё время не угадали (
"По словам источников, со временем Тан начал разочаровываться в подходе к контрактному производству и бюрократической культуре Intel, не склонной к риску. Также он назвал раздутым штат компании. Согласно финансовому отчёту за последний квартал, в Intel работало 125 300 сотрудников по всему миру. Как сообщается, Патрик Гелсингер (Patrick Gelsinger), возглавивший Intel в 2021 году, добавил не менее 20 000 сотрудников в штат к 2022 году.
По словам источников, вопрос сокращения рабочих мест был одним из поводов для напряжённости между Таном и другими членами совета директоров. Taн хотел конкретных сокращений, включая менеджеров среднего звена, которые не вносят вклад в инженерные усилия Intel. По его словам, команды по некоторым проектам были в пять раз больше, чем выполняющие сопоставимую работу у конкурентов, таких как Advanced Micro Devices (AMD)."
https://3dnews.ru/1110085/sovet-direktorov-intel-pokinul-odin-iz-uchastnikov-izza-nesoglasiya-s-planom-ozdorovleniya-kompanii
3DNews - Daily Digital Digest
Из Intel ушёл один из директоров из-за проблем с раздутым штатом и несогласия с планом оздоровления компании
Совет директоров Intel покинул Лип-Бу Тан (Lip-Bu Tan), бывший гендиректор компании по разработке программного обеспечения для микросхем Cadence Design.
#sklearn #codegems
Прошло больше года, и только сейчас в сайкит-лёрн замёрджили ГОТОВУЮ ветку, которая втрое ускоряет расчёт classification_report.
Adrin Jalali закодил решение в течение суток с момента, как я нашёл дублирующие вызовы в sklearn. Остальное время заняли бюрократические согласования.
Вывод: open-source это страшная бюрократия, не надейтесь, что вам что-то быстро исправят, делайте сами. Вместе с тем, не ленитесь создавать хотя бы багрепорты, чтобы следующие поколения DS-ов хоть немного могли почиллить 😅
Примерно с той же эффективностью можно оставлять багрепорты или запросы функциональности для catboost - да, сделают в течение года-полутора (что по сути вечность), но я таким путём за последние N лет пропихнул улучшений 4-5 туда.
Прошло больше года, и только сейчас в сайкит-лёрн замёрджили ГОТОВУЮ ветку, которая втрое ускоряет расчёт classification_report.
Adrin Jalali закодил решение в течение суток с момента, как я нашёл дублирующие вызовы в sklearn. Остальное время заняли бюрократические согласования.
Вывод: open-source это страшная бюрократия, не надейтесь, что вам что-то быстро исправят, делайте сами. Вместе с тем, не ленитесь создавать хотя бы багрепорты, чтобы следующие поколения DS-ов хоть немного могли почиллить 😅
Примерно с той же эффективностью можно оставлять багрепорты или запросы функциональности для catboost - да, сделают в течение года-полутора (что по сути вечность), но я таким путём за последние N лет пропихнул улучшений 4-5 туда.
GitHub
Speed up classification_report · Issue #26808 · scikit-learn/scikit-learn
Describe the workflow you want to enable I'm concerned with slow execution speed of the classification_report procedure which makes it barely suitable for production-grade workloads. On a 8M sa...
🔥3
#sins #philosophy
Жесть, конечно, полная, но... Неужели ад, если существует, и правда для дата-сайентистов (и вообще айтишников) выглядит так?!
https://www.youtube.com/watch?v=qArWARodu_g
Жесть, конечно, полная, но... Неужели ад, если существует, и правда для дата-сайентистов (и вообще айтишников) выглядит так?!
https://www.youtube.com/watch?v=qArWARodu_g
YouTube
Giuditta Parolini - The Hell, According to a Data Scientist | PyData Global 2023
www.pydata.org
The talk takes inspiration from a famous literary piece, Dante Alighieri's "Inferno" (in Italian, the Hell) to offer data scientists a moral revenge on the data sinners they constantly encounter in their professional life. While Dante populates…
The talk takes inspiration from a famous literary piece, Dante Alighieri's "Inferno" (in Italian, the Hell) to offer data scientists a moral revenge on the data sinners they constantly encounter in their professional life. While Dante populates…
Forwarded from asisakov
Что перепробовать для улучшения моделей
Сегодня на работе обсуждали мл модельку и накидали возможные варианты ее улучшения. Предположим, что все возможные данные мы собрали и обучаем логистическую регрессию по специфичным соображениям.
Не думаю, что предложения прям сильно улучшат метрики, но думаю это будет полезно проговорить. Далее оригинальный текст от меня.
Какие варианты улучшения предложили:
1. Рассматриваем корреляцию наших признаков с таргетом, а так же попарно
2. При работе с OHE (one-hot-encoding):
2.1. Удаляем один из сгенерированных признаков, чтобы убрать мультиколлинеарность
2.2. Смотрим корреляцию друг с другом
2.3. Вместо OHE для дней недели предполагаем sin/cos с fourier_order = 2, либо делаем нолики или единички для выходной/не выходной
2.4. Пробуем WOE-преобразование для категориальных переменных
2.5. Делаем проверку на VIF-score для того, чтобы избежать мультиколлинеарности в наших признаках, которые попадают в модель
3-4 дропнул
5. (опционально) Предполагаем дополнительную генерацию степеней признаков не дискретно = 1.1, 1.2, 1.3
6. При работе с фолдами в кросс-валидации рассматриваем пристально бакеты, где сильно разлетелись по метрикам на тесте (сравниваем распределения и средние у каждого признака и таргета, тут можно применить PSI)
7. Для проверки на важность рассматриваем следующее:
7.1. Накатываем Катбуст / lightgbm:
7.1.1. Смотрим важность по GAIN
7.1.2. Смотрим важность по SHAP-values
7.1.3. Смотрим важность по permutation importance
7.1.4. Отбираем фичи, которые попали в условный топ-N каждого из способов и предполагаем, что они самые крутые - далее смотрим, насколько сильно их скор разлетается
7.2. Делаем Recursive Feature Elimination
7.3. На сформированном финальном списке признаков пробуем найти дата-лики на будущее и смотрим просто по логике и выкидываем те, которые совсем не подходят.
7.4. (опционально) Если фичей меньше N, делаем полный перебор по всем вариантам применения этих признаков
Дополнительно про отбор признаков тут
Про генерацию признаков для временных рядов тут
Уверен, это вам точно пригодится при работе над вашими модельками. В комментариях кидайте ваши предположения по тому, что я мог упустить.
@asisakov_channel
#ml
Сегодня на работе обсуждали мл модельку и накидали возможные варианты ее улучшения. Предположим, что все возможные данные мы собрали и обучаем логистическую регрессию по специфичным соображениям.
Не думаю, что предложения прям сильно улучшат метрики, но думаю это будет полезно проговорить. Далее оригинальный текст от меня.
Какие варианты улучшения предложили:
1. Рассматриваем корреляцию наших признаков с таргетом, а так же попарно
2. При работе с OHE (one-hot-encoding):
2.1. Удаляем один из сгенерированных признаков, чтобы убрать мультиколлинеарность
2.2. Смотрим корреляцию друг с другом
2.3. Вместо OHE для дней недели предполагаем sin/cos с fourier_order = 2, либо делаем нолики или единички для выходной/не выходной
2.4. Пробуем WOE-преобразование для категориальных переменных
2.5. Делаем проверку на VIF-score для того, чтобы избежать мультиколлинеарности в наших признаках, которые попадают в модель
3-4 дропнул
5. (опционально) Предполагаем дополнительную генерацию степеней признаков не дискретно = 1.1, 1.2, 1.3
6. При работе с фолдами в кросс-валидации рассматриваем пристально бакеты, где сильно разлетелись по метрикам на тесте (сравниваем распределения и средние у каждого признака и таргета, тут можно применить PSI)
7. Для проверки на важность рассматриваем следующее:
7.1. Накатываем Катбуст / lightgbm:
7.1.1. Смотрим важность по GAIN
7.1.2. Смотрим важность по SHAP-values
7.1.3. Смотрим важность по permutation importance
7.1.4. Отбираем фичи, которые попали в условный топ-N каждого из способов и предполагаем, что они самые крутые - далее смотрим, насколько сильно их скор разлетается
7.2. Делаем Recursive Feature Elimination
7.3. На сформированном финальном списке признаков пробуем найти дата-лики на будущее и смотрим просто по логике и выкидываем те, которые совсем не подходят.
7.4. (опционально) Если фичей меньше N, делаем полный перебор по всем вариантам применения этих признаков
Дополнительно про отбор признаков тут
Про генерацию признаков для временных рядов тут
Уверен, это вам точно пригодится при работе над вашими модельками. В комментариях кидайте ваши предположения по тому, что я мог упустить.
@asisakov_channel
#ml
Telegram
asisakov
Корреляция
Во время выступления на датафесте я продемонстрировал слайд с определенной воронкой отбора признаков. Один из вариантов отбора был связан с корреляцией. Очевидно, что она помогает понять взаимосвязи между различными переменными (или таргетом)…
Во время выступления на датафесте я продемонстрировал слайд с определенной воронкой отбора признаков. Один из вариантов отбора был связан с корреляцией. Очевидно, что она помогает понять взаимосвязи между различными переменными (или таргетом)…
👍1
Forwarded from Aleksandr
Возможно кэпство, но тем не менее:
- в доставшихся мне проектах частенько не дропаются константные/квазиконстантные (где > 99% значений одинаковые) фичи + дублированные фичи
- для снижения кардинальности кат фичей можно сливать редкие категории в одну "Others", удобно делать это вот этой тулзой. В целом рекомендую использовать feature-engine, в ней оч много преобразователей, делающих много рутинной работы
- автобиннинг: бьет вещ фичи на интервалы, на которых достигается максимальная дискр. способность фичи. Кат фичи он разбивает на группы по тому же критерию, опять-таки умный способ снижения кардинальности. Доступно несколько параметров, регулирующих размер и кол-во бинов , которые можно подбирать по CV. Для логрега это прям классическая схема: биннинг -> WOE-преобразование. Есть 2D вариант, когда бины "двумерные"
- еще пример использования автобиннинга для кат фичей: генерим парные фичи, например, "сем положение + тип занятости", получим сильно "кардинальную" кат фичу, но если ее прогнать через автобиннинг, то иногда такая побиненная пара у меня неожиданно выходила в топ, при том, что отдельные ее компоненты были слабыми. Тут главное не переобучиться и не делать парные фичи с очень большой кардинальностью
- все знают, что надо удалять корр. фичи, но как? Допустим, есть группа из фичей, у которых попарная корреляция больше 0.8, как и сколько из них убирать? Тут возможны варианты:
- Сортируем по значимости/корр с таргетом, оставляем топ-N, остальные дропаем. Способ измерения важности, N и порог корреляции подбираем по CV
- Видел и такую экзотику, как ужатие этой группы при помощи PCA, правда сам не пробовал. Если групп много, то для каждой будет свой PCA транформер (выглядит конечно громоздко)
- про важность фичей: пока что катбустовый встроенный механизм показал себя адекватнее всего
- в доставшихся мне проектах частенько не дропаются константные/квазиконстантные (где > 99% значений одинаковые) фичи + дублированные фичи
- для снижения кардинальности кат фичей можно сливать редкие категории в одну "Others", удобно делать это вот этой тулзой. В целом рекомендую использовать feature-engine, в ней оч много преобразователей, делающих много рутинной работы
- автобиннинг: бьет вещ фичи на интервалы, на которых достигается максимальная дискр. способность фичи. Кат фичи он разбивает на группы по тому же критерию, опять-таки умный способ снижения кардинальности. Доступно несколько параметров, регулирующих размер и кол-во бинов , которые можно подбирать по CV. Для логрега это прям классическая схема: биннинг -> WOE-преобразование. Есть 2D вариант, когда бины "двумерные"
- еще пример использования автобиннинга для кат фичей: генерим парные фичи, например, "сем положение + тип занятости", получим сильно "кардинальную" кат фичу, но если ее прогнать через автобиннинг, то иногда такая побиненная пара у меня неожиданно выходила в топ, при том, что отдельные ее компоненты были слабыми. Тут главное не переобучиться и не делать парные фичи с очень большой кардинальностью
- все знают, что надо удалять корр. фичи, но как? Допустим, есть группа из фичей, у которых попарная корреляция больше 0.8, как и сколько из них убирать? Тут возможны варианты:
- Сортируем по значимости/корр с таргетом, оставляем топ-N, остальные дропаем. Способ измерения важности, N и порог корреляции подбираем по CV
- Видел и такую экзотику, как ужатие этой группы при помощи PCA, правда сам не пробовал. Если групп много, то для каждой будет свой PCA транформер (выглядит конечно громоздко)
- про важность фичей: пока что катбустовый встроенный механизм показал себя адекватнее всего
👍2
Forwarded from Yan Budakyan
С квазиконстантными фичами (как и с имеющими много NA) нужно быть осторожнее в задачах с сильным дисбалансом классов, редкое значение фичи вполне может быть важным для какой-то редкой группы семплов в датасете
От себя добавлю что неплохо работал метод отбора фичей, реализованный в Powershap (https://github.com/predict-idlab/powershap), идея достаточно простая - добавить в датасет несколько рандомных фичей, обучить модель много раз с разными сидами и сделать для каждой фичи t-test что ее shap-value выше, чем у случайных фичей
От себя добавлю что неплохо работал метод отбора фичей, реализованный в Powershap (https://github.com/predict-idlab/powershap), идея достаточно простая - добавить в датасет несколько рандомных фичей, обучить модель много раз с разными сидами и сделать для каждой фичи t-test что ее shap-value выше, чем у случайных фичей
GitHub
GitHub - predict-idlab/powershap: A power-full Shapley feature selection method.
A power-full Shapley feature selection method. . Contribute to predict-idlab/powershap development by creating an account on GitHub.
👍1
#sklearn #wizards
Авторы sklearn не перестают меня удивлять своими решениями.
На этот раз, они поленились проверять дубликаты комбинаций в RandomizedSearchCV, из-за чего на интовых и категориальных гиперпараметрах с низкой кардинальностью он теряет 20-30% времени впустую.
https://github.com/scikit-learn/scikit-learn/issues/29794
Авторы sklearn не перестают меня удивлять своими решениями.
На этот раз, они поленились проверять дубликаты комбинаций в RandomizedSearchCV, из-за чего на интовых и категориальных гиперпараметрах с низкой кардинальностью он теряет 20-30% времени впустую.
https://github.com/scikit-learn/scikit-learn/issues/29794
GitHub
Ensure RandomizedSearchCV (and other optimizers) skips duplicated hyperparameter combinations · Issue #29794 · scikit-learn/scikit…
Describe the workflow you want to enable RandomizedSearchCV and similar hyperparameter tuners need to handle duplicate hyperparameter combinations. This issue is particularly noticeable when a user...
😁1
#mlstories
"По сообщению The New York Times, 52-летний музыкант Майкл Смит (Michael Smith) был обвинён в мошенничестве, связанном с манипуляцией стриминговыми сервисами. Как утверждают прокуроры, он использовал нейросети для создания сотен тысяч фальшивых песен, которые затем размещал на популярных платформах, таких как Spotify, Apple Music и Amazon Music. В результате своего мошеннического плана Смит заработал по меньшей мере 10 миллионов долларов, подделывая роялти и обманывая слушателей, которых на самом деле не существовало.
Схема Смита была тщательно продумана. Он создал тысячи фальшивых аккаунтов для стриминга, купив электронные адреса на онлайн-площадках. Имея до 10 000 таких аккаунтов он, в виду трудоёмкости процесса, привлёк других пользователей (соучастников) для оплачиваемой помощи в их создании. Смит также разработал программное обеспечение для многократного воспроизведения своих песен с разных компьютеров, создавая видимость, что за музыкой следят реальные слушатели. В 2017 году, по данным прокуроров, он рассчитал, что сможет стримить свои треки 661 440 раз в день, что обеспечивало ему доход более $3000 в день.
Смит начинал с размещения своей собственной оригинальной музыки на стриминговых платформах, но вскоре осознал, что количество его треков недостаточно для получения значительных роялти. Попытки использовать музыку, принадлежащую другим, и предложение услуг по продвижению таких композиций не увенчались успехом. В 2018 году он объединился с главой компании, занимающейся ИИ-музыкой, и музыкальным промоутером для создания огромного каталога поддельных песен, которые загружал на стриминговые платформы.
По состоянию на июнь 2019 года Смит зарабатывал около 110 000 долларов в месяц, часть из которых уходила его соучастникам. В одном из своих писем в феврале этого года он похвалился, что достиг 4 миллиардов стримов и 12 миллионов долларов в виде роялти с 2019 года."
https://3dnews.ru/1110553/neyroseti-pomogli-muzikantu-obmanom-zarabotat-10-mln-na-strimingovih-servisah
"По сообщению The New York Times, 52-летний музыкант Майкл Смит (Michael Smith) был обвинён в мошенничестве, связанном с манипуляцией стриминговыми сервисами. Как утверждают прокуроры, он использовал нейросети для создания сотен тысяч фальшивых песен, которые затем размещал на популярных платформах, таких как Spotify, Apple Music и Amazon Music. В результате своего мошеннического плана Смит заработал по меньшей мере 10 миллионов долларов, подделывая роялти и обманывая слушателей, которых на самом деле не существовало.
Схема Смита была тщательно продумана. Он создал тысячи фальшивых аккаунтов для стриминга, купив электронные адреса на онлайн-площадках. Имея до 10 000 таких аккаунтов он, в виду трудоёмкости процесса, привлёк других пользователей (соучастников) для оплачиваемой помощи в их создании. Смит также разработал программное обеспечение для многократного воспроизведения своих песен с разных компьютеров, создавая видимость, что за музыкой следят реальные слушатели. В 2017 году, по данным прокуроров, он рассчитал, что сможет стримить свои треки 661 440 раз в день, что обеспечивало ему доход более $3000 в день.
Смит начинал с размещения своей собственной оригинальной музыки на стриминговых платформах, но вскоре осознал, что количество его треков недостаточно для получения значительных роялти. Попытки использовать музыку, принадлежащую другим, и предложение услуг по продвижению таких композиций не увенчались успехом. В 2018 году он объединился с главой компании, занимающейся ИИ-музыкой, и музыкальным промоутером для создания огромного каталога поддельных песен, которые загружал на стриминговые платформы.
По состоянию на июнь 2019 года Смит зарабатывал около 110 000 долларов в месяц, часть из которых уходила его соучастникам. В одном из своих писем в феврале этого года он похвалился, что достиг 4 миллиардов стримов и 12 миллионов долларов в виде роялти с 2019 года."
https://3dnews.ru/1110553/neyroseti-pomogli-muzikantu-obmanom-zarabotat-10-mln-na-strimingovih-servisah
3DNews - Daily Digital Digest
Музыкант с помощью ИИ обманом заработал $10 млн на стриминговых сервисах
По словам прокуроров, житель Северной Каролины (США) использовал искусственный интеллект для создания сотен тысяч поддельных песен поддельных групп, а затем выкладывал их на стриминговые сервисы, где ими наслаждалась аудитория поддельных слушателей. Теперь…
#dashboards #gradio
Что интересно, автор позиционирует gradio по сравнению со streamlit как более ориентированное именно на ML решение.
https://www.youtube.com/watch?v=vtgsIfKqPqI
Что интересно, автор позиционирует gradio по сравнению со streamlit как более ориентированное именно на ML решение.
https://www.youtube.com/watch?v=vtgsIfKqPqI
YouTube
Abubakar Abid - Keynote: Building Machine Learning Apps in Python with Gradio | PyData Global 2023
www.pydata.org
In this talk, we will cover the practical tools for modern machine learning for machine learning datasets, models, and demos. First, we will start by talking about How to Use the Hugging Face Hub, covering how to easily find the right models…
In this talk, we will cover the practical tools for modern machine learning for machine learning datasets, models, and demos. First, we will start by talking about How to Use the Hugging Face Hub, covering how to easily find the right models…
#binning #woe #iv #classing #monotonicity
Кстати, проведение биннинга (supervised, с метками) убирает необходимость в обработке пропущенных и редких значений, и даже (частично) выбросов.
https://www.youtube.com/watch?v=DoRd94ZjQ0E
Кстати, проведение биннинга (supervised, с метками) убирает необходимость в обработке пропущенных и редких значений, и даже (частично) выбросов.
https://www.youtube.com/watch?v=DoRd94ZjQ0E
YouTube
Биннинг и оптимальное квантование 2.0
Воркшоп знакомит с эффективным инструментом разведочного анализа, который пришел в аналитику данных из кредитного скоринга — оптимальным квантованием и биннингом данных.
Применение инструмента:
- оценка предсказательной силы отдельной переменной на выходное…
Применение инструмента:
- оценка предсказательной силы отдельной переменной на выходное…
👍2