#hardware #benchmarking #dl
"Deep learning is a field with intense computational requirements, and your choice of GPU will fundamentally determine your deep learning experience. But what features are important if you want to buy a new GPU? GPU RAM, cores, tensor cores, caches? How to make a cost-efficient choice? This blog post will delve into these questions, tackle common misconceptions, give you an intuitive understanding of how to think about GPUs, and will lend you advice, which will help you to make a choice that is right for you."
Не знал про Tensor Memory Accelerator (TMA). Кстати, весьма странно, что Nvidia не даёт возможности программно запросить количество набортных Tensor Cores и RT cores (хотя десятки других параметров доступны через Cuda API). Зажрались!
https://timdettmers.com/2023/01/30/which-gpu-for-deep-learning/
"Deep learning is a field with intense computational requirements, and your choice of GPU will fundamentally determine your deep learning experience. But what features are important if you want to buy a new GPU? GPU RAM, cores, tensor cores, caches? How to make a cost-efficient choice? This blog post will delve into these questions, tackle common misconceptions, give you an intuitive understanding of how to think about GPUs, and will lend you advice, which will help you to make a choice that is right for you."
Не знал про Tensor Memory Accelerator (TMA). Кстати, весьма странно, что Nvidia не даёт возможности программно запросить количество набортных Tensor Cores и RT cores (хотя десятки других параметров доступны через Cuda API). Зажрались!
https://timdettmers.com/2023/01/30/which-gpu-for-deep-learning/
Tim Dettmers
The Best GPUs for Deep Learning in 2023 — An In-depth Analysis
Here, I provide an in-depth analysis of GPUs for deep learning/machine learning and explain what is the best GPU for your use-case and budget.
#cloud #aws #tuning
Оказывается, некоторые облачные машины можно затюнить под конкретную вычислительную задачу по P- и C- состояниям.
"In this example, vCPUs 21 and 28 are running at their maximum Turbo Boost frequency because the other cores have entered the C6 sleep state to save power and provide both power and thermal headroom for the working cores. vCPUs 3 and 10 (each sharing a processor core with vCPUs 21 and 28) are in the C1 state, waiting for instruction.
In the following example, all 18 cores are actively performing work, so there is no headroom for maximum Turbo Boost, but they are all running at the "all core Turbo Boost" speed of 3.2 GHz.
You can reduce the variability of processor frequency with P-states. P-states control the desired performance (in CPU frequency) from a core. Most workloads perform better in P0, which requests Turbo Boost. But you may want to tune your system for consistent performance rather than bursty performance that can happen when Turbo Boost frequencies are enabled.
Intel Advanced Vector Extensions (AVX or AVX2) workloads can perform well at lower frequencies, and AVX instructions can use more power. Running the processor at a lower frequency, by disabling Turbo Boost, can reduce the amount of power used and keep the speed more consistent. For more information about optimizing your instance configuration and workload for AVX."
https://docs.aws.amazon.com/linux/al2/ug/processor_state_control.html
Оказывается, некоторые облачные машины можно затюнить под конкретную вычислительную задачу по P- и C- состояниям.
"In this example, vCPUs 21 and 28 are running at their maximum Turbo Boost frequency because the other cores have entered the C6 sleep state to save power and provide both power and thermal headroom for the working cores. vCPUs 3 and 10 (each sharing a processor core with vCPUs 21 and 28) are in the C1 state, waiting for instruction.
In the following example, all 18 cores are actively performing work, so there is no headroom for maximum Turbo Boost, but they are all running at the "all core Turbo Boost" speed of 3.2 GHz.
You can reduce the variability of processor frequency with P-states. P-states control the desired performance (in CPU frequency) from a core. Most workloads perform better in P0, which requests Turbo Boost. But you may want to tune your system for consistent performance rather than bursty performance that can happen when Turbo Boost frequencies are enabled.
Intel Advanced Vector Extensions (AVX or AVX2) workloads can perform well at lower frequencies, and AVX instructions can use more power. Running the processor at a lower frequency, by disabling Turbo Boost, can reduce the amount of power used and keep the speed more consistent. For more information about optimizing your instance configuration and workload for AVX."
https://docs.aws.amazon.com/linux/al2/ug/processor_state_control.html
Amazon
Processor state control for your Amazon EC2 AL2 instance - Amazon Linux 2
Some EC2 instance types provide the ability for an operating system to control processor C-states and P-states.
#pytorch #benchmarking #dl
TorchBench: Benchmarking PyTorch with High API Surface Coverage
В статье рассматриваются (на базе сравнений производительности подзадач) интересные аспекты разработки моделек в pytorch, в частности, недозагрузка GPU, Nvidia vs AMD, преимущества TorchInductor и TF32, etc.
В частности, показано, что в среднем задачи RL (в их популярных реализациях) загружают GPU всего на 10%, что аттрибутируется "взаимодействию с окружением". Я как знал, что объектно-ориентированный RL-код это ужасный тормоз.
https://arxiv.org/pdf/2304.14226
TorchBench: Benchmarking PyTorch with High API Surface Coverage
В статье рассматриваются (на базе сравнений производительности подзадач) интересные аспекты разработки моделек в pytorch, в частности, недозагрузка GPU, Nvidia vs AMD, преимущества TorchInductor и TF32, etc.
В частности, показано, что в среднем задачи RL (в их популярных реализациях) загружают GPU всего на 10%, что аттрибутируется "взаимодействию с окружением". Я как знал, что объектно-ориентированный RL-код это ужасный тормоз.
https://arxiv.org/pdf/2304.14226
#shap
Что получается, если самому реализовать расчёт значений Шэпли в ML с помощью "наивного" определения (как взвешенной суммы разностей вкладов коалиций с- и без- признака). Особенно интересно сравнение с библиотекой shap по части коррелированных признаков.
https://edden-gerber.github.io/shapley-part-2/
Что получается, если самому реализовать расчёт значений Шэпли в ML с помощью "наивного" определения (как взвешенной суммы разностей вкладов коалиций с- и без- признака). Особенно интересно сравнение с библиотекой shap по части коррелированных признаков.
https://edden-gerber.github.io/shapley-part-2/
✍1
#shap
Кстати, хорошая новость. Пару лет тому я сообщал, что библиотека shap заброшена, автор забил на неё болт. Многое изменилось! У него хватило совести поручить развитие активистам, и сейчас активно релизятся новые версии. Не обошлось и без ломающих изменений, к сожалению, но так гораздо лучше, чем никак.
Работа с багрепортами осталась дрянная.
https://shap.readthedocs.io/en/latest/release_notes.html
Кстати, хорошая новость. Пару лет тому я сообщал, что библиотека shap заброшена, автор забил на неё болт. Многое изменилось! У него хватило совести поручить развитие активистам, и сейчас активно релизятся новые версии. Не обошлось и без ломающих изменений, к сожалению, но так гораздо лучше, чем никак.
Работа с багрепортами осталась дрянная.
https://shap.readthedocs.io/en/latest/release_notes.html
🔥2❤1
#directml #microsoft
Узнал, что у MS есть directml:
"DirectML is a low-level hardware abstraction layer that enables you to run machine learning workloads on any DirectX 12 compatible GPU.
If you need to optimize your machine learning performance for real-time, high-performance, low-latency, or resource-constrained scenarios, DirectML gives you the most control and flexibility. You can use DirectML to integrate machine learning directly into your existing engine or rendering pipeline, or to build your own custom machine learning frameworks and middleware on Windows.
You can also use DirectML indirectly through the ONNX Runtime, which is a cross-platform library that supports the open standard ONNX format for machine learning models. The ONNX Runtime can use DirectML as one of its execution providers, along with other backends such as CPU, CUDA, or TensorRT. This way, you can leverage the performance and compatibility of DirectML without writing any DirectML code yourself."
Есть интеграция с torch.
https://learn.microsoft.com/en-us/windows/ai/directml/dml
Узнал, что у MS есть directml:
"DirectML is a low-level hardware abstraction layer that enables you to run machine learning workloads on any DirectX 12 compatible GPU.
If you need to optimize your machine learning performance for real-time, high-performance, low-latency, or resource-constrained scenarios, DirectML gives you the most control and flexibility. You can use DirectML to integrate machine learning directly into your existing engine or rendering pipeline, or to build your own custom machine learning frameworks and middleware on Windows.
You can also use DirectML indirectly through the ONNX Runtime, which is a cross-platform library that supports the open standard ONNX format for machine learning models. The ONNX Runtime can use DirectML as one of its execution providers, along with other backends such as CPU, CUDA, or TensorRT. This way, you can leverage the performance and compatibility of DirectML without writing any DirectML code yourself."
Есть интеграция с torch.
https://learn.microsoft.com/en-us/windows/ai/directml/dml
Docs
Introduction to DirectML
Direct Machine Learning (DirectML) is a low-level API for machine learning (ML).
#neuralink
"Семь лет назад Арбо пережил несчастный случай, получил повреждение спинного мозга и оказался парализован, а в январе 2024 года стал первым добровольцем, которому установили имплант Neuralink — он по беспроводному каналу передаёт команды из мозга на компьютер. Чтобы отдать команду, Ноланд представляет движение, которое хочет совершить — устройство получает сигналы мозга и переводит их в команды, причём оно дополнительно обучается. В какой-то момент работа с устройством вышла на новый уровень: если раньше пользователь пытался совершить движение, чтобы курсор его повторил, то сейчас просто думает, чтобы тот двигался, и курсор ему подчиняется. «Я больше не пытаюсь совершить само движение, чтобы курсор двигался, я лишь думаю о том, чтобы он двигался, и он движется», — рассказывает подопытный.
Также Арбо поделился своим мнением касательно того, что многие электроды устройства Neuralink в его голове сместились и перестали снимать сигналы в процессе использования. Несмотря на первоначальные трудности, связанные с отходом электродов от мозга, Арбо отмечает значительный прогресс после проведенной перенастройки устройства. По словам подопытного, хотя в настоящее время функционирует лишь около 15 % электродов, эффективность импланта заметно возросла по сравнению с тем, что было в начале. «Сейчас я способен на гораздо большее, чем в начале эксперимента. Это просто сносит крышу», — подчеркнул он.
Энтузиазм Арбо распространяется и на будущее технологии. Он предполагает, что если у следующих участников эксперимента удастся достичь полной или почти полной активации электродов, это может открыть совершенно новые возможности. В целом, Арбо остается оптимистичным и воодушевленным результатами эксперимента, подчеркивая, что даже при текущих ограничениях технология демонстрирует впечатляющий потенциал."
https://3dnews.ru/1108484/perviy-polzovatel-mozgovogo-implanta-neuralink-rasskazal-o-gizni-s-nim
"Семь лет назад Арбо пережил несчастный случай, получил повреждение спинного мозга и оказался парализован, а в январе 2024 года стал первым добровольцем, которому установили имплант Neuralink — он по беспроводному каналу передаёт команды из мозга на компьютер. Чтобы отдать команду, Ноланд представляет движение, которое хочет совершить — устройство получает сигналы мозга и переводит их в команды, причём оно дополнительно обучается. В какой-то момент работа с устройством вышла на новый уровень: если раньше пользователь пытался совершить движение, чтобы курсор его повторил, то сейчас просто думает, чтобы тот двигался, и курсор ему подчиняется. «Я больше не пытаюсь совершить само движение, чтобы курсор двигался, я лишь думаю о том, чтобы он двигался, и он движется», — рассказывает подопытный.
Также Арбо поделился своим мнением касательно того, что многие электроды устройства Neuralink в его голове сместились и перестали снимать сигналы в процессе использования. Несмотря на первоначальные трудности, связанные с отходом электродов от мозга, Арбо отмечает значительный прогресс после проведенной перенастройки устройства. По словам подопытного, хотя в настоящее время функционирует лишь около 15 % электродов, эффективность импланта заметно возросла по сравнению с тем, что было в начале. «Сейчас я способен на гораздо большее, чем в начале эксперимента. Это просто сносит крышу», — подчеркнул он.
Энтузиазм Арбо распространяется и на будущее технологии. Он предполагает, что если у следующих участников эксперимента удастся достичь полной или почти полной активации электродов, это может открыть совершенно новые возможности. В целом, Арбо остается оптимистичным и воодушевленным результатами эксперимента, подчеркивая, что даже при текущих ограничениях технология демонстрирует впечатляющий потенциал."
https://3dnews.ru/1108484/perviy-polzovatel-mozgovogo-implanta-neuralink-rasskazal-o-gizni-s-nim
3DNews - Daily Digital Digest
Первый пользователь мозгового импланта Neuralink рассказал о жизни с чипом в голове
Ноланд Арбо (Noland Arbaugh), 29-летний американец, который первым получил мозговой имплант Neuralink, рассказал «РИА Новости», как ему живётся с этим устройством в голове. Доброволец пользуется технологией по десять часов в день и не испытывает усталости..
🔥3
#yellowbrick
Либа yellowbrick с красивыми и полезными визулизациями для DS. Мне понравились Cook’s Distance, Class Balance, Parallel Coordinates, Feature Dropping Curves, Missing Values Bar.
"The Yellowbrick library is a diagnostic visualization platform for machine learning that allows data scientists to steer the model selection process. Yellowbrick extends the Scikit-Learn API with a new core object: the Visualizer. Visualizers allow visual models to be fit and transformed as part of the Scikit-Learn Pipeline process, providing visual diagnostics throughout the transformation of high dimensional data."
https://www.scikit-yb.org/en/latest/tutorial.html
Либа yellowbrick с красивыми и полезными визулизациями для DS. Мне понравились Cook’s Distance, Class Balance, Parallel Coordinates, Feature Dropping Curves, Missing Values Bar.
"The Yellowbrick library is a diagnostic visualization platform for machine learning that allows data scientists to steer the model selection process. Yellowbrick extends the Scikit-Learn API with a new core object: the Visualizer. Visualizers allow visual models to be fit and transformed as part of the Scikit-Learn Pipeline process, providing visual diagnostics throughout the transformation of high dimensional data."
https://www.scikit-yb.org/en/latest/tutorial.html
✍1
#pycaret
pycaret - ещё одна удобная либа для машинного обучения. Проанализирует датасет, разобъёт признаки на группы, проведёт препроцессинг, обработает пропуски. Всё настраивается.
В одну строчку на итоговом датасете можно обучить много моделек (включая современные градиентные бустинги) и посмотреть их сравнительные метрики, затюнить гиперпараметры (можно использовать оптуну), сделать простое (даже слишком простое) ансамблирование. Поддерживается логирование экспериментов (mlflow etc).
Я не уверен пока, поддерживается ли симметричное early stopping. Очень понравился их Fairness Report, я изобретал сам нечто похожее, а тут у них уже есть готовенькое и красивое.
Можно даже одним вызовом создать API для инференса, докер контейнер, и якобы даже развернуть в облаке (не тестил).
https://www.youtube.com/watch?v=gRGVwNggMX0
pycaret - ещё одна удобная либа для машинного обучения. Проанализирует датасет, разобъёт признаки на группы, проведёт препроцессинг, обработает пропуски. Всё настраивается.
В одну строчку на итоговом датасете можно обучить много моделек (включая современные градиентные бустинги) и посмотреть их сравнительные метрики, затюнить гиперпараметры (можно использовать оптуну), сделать простое (даже слишком простое) ансамблирование. Поддерживается логирование экспериментов (mlflow etc).
Я не уверен пока, поддерживается ли симметричное early stopping. Очень понравился их Fairness Report, я изобретал сам нечто похожее, а тут у них уже есть готовенькое и красивое.
Можно даже одним вызовом создать API для инференса, докер контейнер, и якобы даже развернуть в облаке (не тестил).
https://www.youtube.com/watch?v=gRGVwNggMX0
👍3
#gpt #alphaproof
"По ряду причин решение математических задач, требующих способности к продвинутым рассуждениям, пока не по силам большинству ИИ-систем. Дело в том, что такие типы задач требуют формирования и использования абстракций. Также требуется сложное иерархическое планирование, постановка подцелей, откат и поиски новых путей, что является сложным вопросом для ИИ.
Обе новые ИИ-модели обладают способностью к продвинутым математическим рассуждениям для решения сложных математических задач. AlphaProof была создана с использованием обучения с подкреплением, получив способность доказывать математические утверждения на формальном языке программирования Lean. Для её создания использовалась предварительно обученная языковая модель AlphaZero, алгоритм обучения с подкреплением, который ранее сам себя научил играть в шахматы, сёги и го. В свою очередь, AlphaGeometry 2 представляет собой усовершенствованную версию существующей ИИ-системы AlphaGeometry, представленной в январе и предназначенной для решения задач по геометрии.
В то время как AlphaProof была обучена решению задач по широкому кругу математических тем, AlphaGeometry 2 оптимизирована для решения задач, связанных с перемещениями объектов и уравнениями, включающими углы, соотношения и расстояния. Поскольку AlphaGeometry 2 была обучена на значительно большем количестве синтетических данных, чем предшественник, она может справиться с гораздо более сложными геометрическими задачами.
Чтобы проверить возможности новых ИИ-систем, исследователи Google DeepMind поручили им решить шесть задач Международной математической олимпиады (IMO) этого года и доказать правильность ответов. AlphaProof решила две задачи по алгебре и одну задачу по теории чисел, одна из которых была самой сложной на олимпиаде, в то время как AlphaGeometry 2 решила задачу по геометрии. Две задачи по комбинаторике остались нерешёнными.
Два известных математика, Тим Гауэрс (Tim Gowers) и Джозеф Майерс (Joseph Myers), проверили представленные системами решения. Они присудили каждому из четырёх правильных ответов максимальное количество баллов (семь из семи), что дало системам в общей сложности 28 баллов из максимальных 42. Участник олимпиады, набравший столько же баллов, был бы награждён серебряной медалью и немного не дотянул бы до золота, которое присуждается набравшим 29 баллов и больше.
Впервые ИИ-система смогла достичь результатов в решении математических задач IMO на уровне медалиста. «Как математик, я нахожу это очень впечатляющим и значительным скачком по сравнению с тем, что было возможно ранее», — заявил Гауэрс во время пресс-конференции.
Создание систем ИИ, способных решать сложные математические задачи, может проложить путь для захватывающего сотрудничества человека и ИИ, считает Кэти Коллинз (Katie Collins), исследователь из Кембриджского университета. Это, в свою очередь, может помочь нам узнать больше о том, как мы, люди, справляемся с математикой. «Мы всё ещё многого не знаем о том, как люди решают сложные математические задачи», — говорит она."
https://3dnews.ru/1108526/iimodeli-google-deepmind-reshili-zadachi-matematicheskoy-olimpiadi-na-urovne-serebryanogo-medalista
"По ряду причин решение математических задач, требующих способности к продвинутым рассуждениям, пока не по силам большинству ИИ-систем. Дело в том, что такие типы задач требуют формирования и использования абстракций. Также требуется сложное иерархическое планирование, постановка подцелей, откат и поиски новых путей, что является сложным вопросом для ИИ.
Обе новые ИИ-модели обладают способностью к продвинутым математическим рассуждениям для решения сложных математических задач. AlphaProof была создана с использованием обучения с подкреплением, получив способность доказывать математические утверждения на формальном языке программирования Lean. Для её создания использовалась предварительно обученная языковая модель AlphaZero, алгоритм обучения с подкреплением, который ранее сам себя научил играть в шахматы, сёги и го. В свою очередь, AlphaGeometry 2 представляет собой усовершенствованную версию существующей ИИ-системы AlphaGeometry, представленной в январе и предназначенной для решения задач по геометрии.
В то время как AlphaProof была обучена решению задач по широкому кругу математических тем, AlphaGeometry 2 оптимизирована для решения задач, связанных с перемещениями объектов и уравнениями, включающими углы, соотношения и расстояния. Поскольку AlphaGeometry 2 была обучена на значительно большем количестве синтетических данных, чем предшественник, она может справиться с гораздо более сложными геометрическими задачами.
Чтобы проверить возможности новых ИИ-систем, исследователи Google DeepMind поручили им решить шесть задач Международной математической олимпиады (IMO) этого года и доказать правильность ответов. AlphaProof решила две задачи по алгебре и одну задачу по теории чисел, одна из которых была самой сложной на олимпиаде, в то время как AlphaGeometry 2 решила задачу по геометрии. Две задачи по комбинаторике остались нерешёнными.
Два известных математика, Тим Гауэрс (Tim Gowers) и Джозеф Майерс (Joseph Myers), проверили представленные системами решения. Они присудили каждому из четырёх правильных ответов максимальное количество баллов (семь из семи), что дало системам в общей сложности 28 баллов из максимальных 42. Участник олимпиады, набравший столько же баллов, был бы награждён серебряной медалью и немного не дотянул бы до золота, которое присуждается набравшим 29 баллов и больше.
Впервые ИИ-система смогла достичь результатов в решении математических задач IMO на уровне медалиста. «Как математик, я нахожу это очень впечатляющим и значительным скачком по сравнению с тем, что было возможно ранее», — заявил Гауэрс во время пресс-конференции.
Создание систем ИИ, способных решать сложные математические задачи, может проложить путь для захватывающего сотрудничества человека и ИИ, считает Кэти Коллинз (Katie Collins), исследователь из Кембриджского университета. Это, в свою очередь, может помочь нам узнать больше о том, как мы, люди, справляемся с математикой. «Мы всё ещё многого не знаем о том, как люди решают сложные математические задачи», — говорит она."
https://3dnews.ru/1108526/iimodeli-google-deepmind-reshili-zadachi-matematicheskoy-olimpiadi-na-urovne-serebryanogo-medalista
3DNews - Daily Digital Digest
ИИ-модели Google DeepMind решили задачи математической олимпиады на уровне серебряного медалиста
Google DeepMind, базирующееся в Лондоне дочернее предприятие Google, специализирующееся на исследованиях в сфере искусственного интеллекта (ИИ), представило ИИ-модели AlphaProof и AlphaGeometry 2, способные решать сложные математические задачи, с которыми…
#recommenders
Введение в рекомендательные системы, достаточно понятным языком.
https://www.youtube.com/live/SY3WQPz0kOw?si=u3WhK97bN5osPJJB
Введение в рекомендательные системы, достаточно понятным языком.
https://www.youtube.com/live/SY3WQPz0kOw?si=u3WhK97bN5osPJJB
YouTube
Рекомендательные системы: подходы и применение. Data Science, ML, анализ данных.
Вебинар на котором раскроется одна из самых важных и популярных задач, которым приходится заниматься сейчас специалистам по анализу данных.
Спикер: Дима, более 3-х лет Data Scientist в Х5 Group, Data Scientist и аналитик в JobToday.com
Что разберём:
🔹Где…
Спикер: Дима, более 3-х лет Data Scientist в Х5 Group, Data Scientist и аналитик в JobToday.com
Что разберём:
🔹Где…
#featureselection
Подобрался к более детальной проверке идеи из этого поста. Результаты поистине изумительные.
Как мы и знали раньше (из оригинального исследования автора, + моей проверки), корреляция "аппроксимированных предсказаний" и "честных предсказаний", хотя иногда и поднимается выше 90% (если количество признаков-кандидатов близко к полному количеству признаков), в среднем звёзд с неба не хватает.
Я взял датасет poker из pycaret, т.к. там достаточно наблюдений (100k), и дополнительно к к-ту корреляции посчитал RMSE честных и аппроксимированных предсказаний. Выяснился печальный факт, что RMSE просто среднего таргета по выборке (dummy) зачастую побеждает авторский способ оценки (naive).
Я расстроился, но, помня красивые графики автора, всё-таки посчитал реальные ошибки ground truth vs naive predictions, а уже от них NDCG в разрезе наборов признаков-кандидатов.
И был просто шокирован.
ndcg(naive_opt_fin_rmse)=0.99995 по 50 наборам признаков-кандидатов с числом признаков от 1 до 9 (всего в датасете их 10).
То есть, из Shap-значений нельзя вытащить прям точные аппроксимации честных прогнозов (слишком высокая RMSE). Но и не надо: даже эти аппроксимации позволяют с высокой точностью ранжировать наборы признаков-кандидатов (удивительно высокий NDCG).
Почему? Загадка. Видимо, движения "в нужном направлении" достаточно для точного ранжирования, и это важнее, чем абсолютная величина совпадения прогнозов. Здесь, похоже, действуют какие-то тонкие математические эффекты, которых я не понимаю. Но эта идея реально работает.
На датасете poker "честное переобучение" модельки занимает у меня 8 секунд, а оценка авторским методом 0,005 секунд. Ускорение в 1500+ раз при 0.99995 условной точности ранжирования.
"Условной", потому что на больших списках ndcg становится "логарифмически нечувствительным" к хорошему ранжированию. Например, случайное ранжирование в этой же задаче (с теми же релевантностями) на списке размером 50 выдаёт NDCG=0.987.
Если же отказаться от абсолютной шкалы целевой ML-метрики, и в качестве релевантностей использовать целые числа [1,2,..,N], NDCG случайного ранжирования становится в среднем 0,827, а NDCG авторского ранжирования 0,968. Ну то есть, это прекрасный значимый результат.
Подобрался к более детальной проверке идеи из этого поста. Результаты поистине изумительные.
Как мы и знали раньше (из оригинального исследования автора, + моей проверки), корреляция "аппроксимированных предсказаний" и "честных предсказаний", хотя иногда и поднимается выше 90% (если количество признаков-кандидатов близко к полному количеству признаков), в среднем звёзд с неба не хватает.
Я взял датасет poker из pycaret, т.к. там достаточно наблюдений (100k), и дополнительно к к-ту корреляции посчитал RMSE честных и аппроксимированных предсказаний. Выяснился печальный факт, что RMSE просто среднего таргета по выборке (dummy) зачастую побеждает авторский способ оценки (naive).
Я расстроился, но, помня красивые графики автора, всё-таки посчитал реальные ошибки ground truth vs naive predictions, а уже от них NDCG в разрезе наборов признаков-кандидатов.
И был просто шокирован.
ndcg(naive_opt_fin_rmse)=0.99995 по 50 наборам признаков-кандидатов с числом признаков от 1 до 9 (всего в датасете их 10).
То есть, из Shap-значений нельзя вытащить прям точные аппроксимации честных прогнозов (слишком высокая RMSE). Но и не надо: даже эти аппроксимации позволяют с высокой точностью ранжировать наборы признаков-кандидатов (удивительно высокий NDCG).
Почему? Загадка. Видимо, движения "в нужном направлении" достаточно для точного ранжирования, и это важнее, чем абсолютная величина совпадения прогнозов. Здесь, похоже, действуют какие-то тонкие математические эффекты, которых я не понимаю. Но эта идея реально работает.
На датасете poker "честное переобучение" модельки занимает у меня 8 секунд, а оценка авторским методом 0,005 секунд. Ускорение в 1500+ раз при 0.99995 условной точности ранжирования.
"Условной", потому что на больших списках ndcg становится "логарифмически нечувствительным" к хорошему ранжированию. Например, случайное ранжирование в этой же задаче (с теми же релевантностями) на списке размером 50 выдаёт NDCG=0.987.
Если же отказаться от абсолютной шкалы целевой ML-метрики, и в качестве релевантностей использовать целые числа [1,2,..,N], NDCG случайного ранжирования становится в среднем 0,827, а NDCG авторского ранжирования 0,968. Ну то есть, это прекрасный значимый результат.
Telegram
Aspiring Data Science
#featureselection
Классная идея применения коэффициентов Шэпли для отбора признаков!
Задача FS вообще NP-сложная и сводится к выбору оптимального значения бинарного вектора длины n_features (n_features это количество признаков-кандидатов в исходной выборке).…
Классная идея применения коэффициентов Шэпли для отбора признаков!
Задача FS вообще NP-сложная и сводится к выбору оптимального значения бинарного вектора длины n_features (n_features это количество признаков-кандидатов в исходной выборке).…
🔥4