#poetry #music #mantus #deutsch #translation
An empty vessel by the shore's edge roams,
A forgotten orphan left to wither alone,
Tulips, decayed, on asphalt they lie,
The night wraps itself in a mute lullaby.
Birds circle and then take their flight,
From the sky descends the final rite,
The owl flees its forest domain,
Blood drips from trees like crimson rain.
Words that once echoed now faded away,
Legends of unity in disarray,
A darkened sea consumes dreams in decay,
Of us, not a trace, all led astray.
The deceased repose in their earthen bed,
A stranger's gaze, a fleeting shred,
Drawn into solitude, voices worn thin,
All that remains is the quiet within.
Elven fury scalds the pale moon's light,
The black plague reigns, a grievous blight,
In damp warmth, a sultry shimmering gloom,
And the stool falls silently in the room.
оригинал
"Ein leeres Boot, das am Ufer treibt
Ein Waisenkind, das vergessen bleibt
Die Tulpen modern auf dem Asphalt
Die Nacht hüllt sich in Schweigen
Die Vögel kreisen und ziehen fort
Vom Himmel tönet der Schlussakkord
Die Eule flüchtet aus ihrem Wald
Das Blut tropft von den Bäumen
Die Worte sind schon längst verhallt
Legenden von Zusammenhalt
Ein dunkles Meer verschluckt den Traum
Von uns ist nichts geblieben
Der Tote sinkt ins Grab zurück
Den Fremden streift ein letzter Blick
Man schließt sich ein, man redet kaum
Von uns ist nichts geblieben
Ein kalter Abend zieht schnell heran
Ein Krieger rudert durch tiefen Schlamm
Der weiße Magier sucht das Exil
Ein Haus versinkt im Nebel
Der Zorn der Elfen verbrennt den Mond
Die schwarze Pest über allem thront
Und feuchte Wärme, sie flimmert schwül
Und lautlos fällt der Schemel
Die Worte sind schon längst verhallt
Legenden von Zusammenhalt
Ein dunkles Meer verschluckt den Traum
Von uns ist nichts geblieben"
https://www.youtube.com/watch?v=Br1LgdnmQcQ
An empty vessel by the shore's edge roams,
A forgotten orphan left to wither alone,
Tulips, decayed, on asphalt they lie,
The night wraps itself in a mute lullaby.
Birds circle and then take their flight,
From the sky descends the final rite,
The owl flees its forest domain,
Blood drips from trees like crimson rain.
Words that once echoed now faded away,
Legends of unity in disarray,
A darkened sea consumes dreams in decay,
Of us, not a trace, all led astray.
The deceased repose in their earthen bed,
A stranger's gaze, a fleeting shred,
Drawn into solitude, voices worn thin,
All that remains is the quiet within.
Elven fury scalds the pale moon's light,
The black plague reigns, a grievous blight,
In damp warmth, a sultry shimmering gloom,
And the stool falls silently in the room.
оригинал
"Ein leeres Boot, das am Ufer treibt
Ein Waisenkind, das vergessen bleibt
Die Tulpen modern auf dem Asphalt
Die Nacht hüllt sich in Schweigen
Die Vögel kreisen und ziehen fort
Vom Himmel tönet der Schlussakkord
Die Eule flüchtet aus ihrem Wald
Das Blut tropft von den Bäumen
Die Worte sind schon längst verhallt
Legenden von Zusammenhalt
Ein dunkles Meer verschluckt den Traum
Von uns ist nichts geblieben
Der Tote sinkt ins Grab zurück
Den Fremden streift ein letzter Blick
Man schließt sich ein, man redet kaum
Von uns ist nichts geblieben
Ein kalter Abend zieht schnell heran
Ein Krieger rudert durch tiefen Schlamm
Der weiße Magier sucht das Exil
Ein Haus versinkt im Nebel
Der Zorn der Elfen verbrennt den Mond
Die schwarze Pest über allem thront
Und feuchte Wärme, sie flimmert schwül
Und lautlos fällt der Schemel
Die Worte sind schon längst verhallt
Legenden von Zusammenhalt
Ein dunkles Meer verschluckt den Traum
Von uns ist nichts geblieben"
https://www.youtube.com/watch?v=Br1LgdnmQcQ
YouTube
Legenden
Provided to YouTube by Trisol
Legenden · Mantus
Wölfe
℗ Trisol Music Group GmbH
Released on: 2012-11-16
Composer: Martin André Schindler
Lyricist: Martin André Schindler
Auto-generated by YouTube.
Legenden · Mantus
Wölfe
℗ Trisol Music Group GmbH
Released on: 2012-11-16
Composer: Martin André Schindler
Lyricist: Martin André Schindler
Auto-generated by YouTube.
#ml #applied #dyakonov #pzad #featureselection #permutationimportance #mid #pfi #boruta #ace
Artificial contrasts with ensembles - примечательный метод. Ещё интересна идея, что в обёрточных методах FS оценивать важность признаков надо не тем классом моделей, который будет в итоге обучаться для решения самой ML задачи.
https://www.youtube.com/watch?v=ZRa7-F5PvRk&list=PLaRUeIuewv8CMFox0oEjlyePUhUmo-x0h&index=28
Artificial contrasts with ensembles - примечательный метод. Ещё интересна идея, что в обёрточных методах FS оценивать важность признаков надо не тем классом моделей, который будет в итоге обучаться для решения самой ML задачи.
https://www.youtube.com/watch?v=ZRa7-F5PvRk&list=PLaRUeIuewv8CMFox0oEjlyePUhUmo-x0h&index=28
YouTube
ПЗАД2020. Лекция 25. Важность признаков в ансамблях деревьев
курс "Прикладные задачи анализа данных", ВМК МГУ, Дьяконов Александр (https://dyakonov.org/ag/)
страница курса: https://github.com/Dyakonov/PZAD/blob/master/README.md
страница курса: https://github.com/Dyakonov/PZAD/blob/master/README.md
#gpu #cupy #codegems
How to write CPU/GPU agnostic code
CuPy’s compatibility with NumPy makes it possible to write CPU/GPU agnostic code. For this purpose, CuPy implements the cupy.get_array_module() function that returns a reference to cupy if any of its arguments resides on a GPU and numpy otherwise. Here is an example of a CPU/GPU agnostic function that computes log1p:
How to write CPU/GPU agnostic code
CuPy’s compatibility with NumPy makes it possible to write CPU/GPU agnostic code. For this purpose, CuPy implements the cupy.get_array_module() function that returns a reference to cupy if any of its arguments resides on a GPU and numpy otherwise. Here is an example of a CPU/GPU agnostic function that computes log1p:
# Stable implementation of log(1 + exp(x))https://docs.cupy.dev/en/stable/user_guide/basic.html
def softplus(x):
xp = cp.get_array_module(x) # 'xp' is a standard usage in the community
print("Using:", xp.__name__)
return xp.maximum(0, x) + xp.log1p(xp.exp(-abs(x)))
#zuck #sport #martialarts
"Джиу-джитсу — не единственное увлечение Цукерберга. Недавно глава популярных соцсетей с состоянием 89,9 миллиарда долларов удивил подписчиков брутальными снимками с экстремальной тренировки. На фотографии, опубликованной 31 мая, изможденный бизнесмен с капельками пота на лице и рельефными бицепсами сделал селфи в бронежилете весом около девяти килограммов. Миллиардер рассказал, что прошел челлендж Мерфи, выполнив в этом самом бронежилете за неполные 40 минут 100 подтягиваний, 200 отжиманий и 300 приседаний, а после этого пробежал километр."
Про боевое кряхтение позабавило )
https://lenta.ru/news/2023/06/07/zucker/
"Джиу-джитсу — не единственное увлечение Цукерберга. Недавно глава популярных соцсетей с состоянием 89,9 миллиарда долларов удивил подписчиков брутальными снимками с экстремальной тренировки. На фотографии, опубликованной 31 мая, изможденный бизнесмен с капельками пота на лице и рельефными бицепсами сделал селфи в бронежилете весом около девяти килограммов. Миллиардер рассказал, что прошел челлендж Мерфи, выполнив в этом самом бронежилете за неполные 40 минут 100 подтягиваний, 200 отжиманий и 300 приседаний, а после этого пробежал километр."
Про боевое кряхтение позабавило )
https://lenta.ru/news/2023/06/07/zucker/
Lenta.RU
Марк Цукерберг бегает в бронежилете и дерется на ринге. Как миллиардер из гика превратился в Рэмбо?
Миллиардер с состоянием около 90 миллиардов долларов Марк Цукерберг уходит от образа домашнего интеллигентного парня и приобретает славу «дикого зверя» и опасного противника. Теперь основатель популярной социальной сети занимается спортивными единоборствами…
#cuda #gpu #architecture #programming
Напоминалка, как устроена программная модель Cuda. Что такое потоки, блоки, сетки.
https://developer.nvidia.com/blog/cuda-refresher-cuda-programming-model/
Напоминалка, как устроена программная модель Cuda. Что такое потоки, блоки, сетки.
https://developer.nvidia.com/blog/cuda-refresher-cuda-programming-model/
NVIDIA Technical Blog
CUDA Refresher: The CUDA Programming Model
This is the fourth post in the CUDA Refresher series, which has the goal of refreshing key concepts in CUDA, tools, and optimization for beginning or intermediate developers.
#featureselection #diogenes #optimisation #gpu #cuda #cupy
Докладываю новости о проекте Диоген. Вчера добавил бюджет времени, переписал функции покрасивее, потестировал все ветки. С указанием допустимого времени работает просто отлично.
Сегодня ещё добавил функциональность random seed. Выяснилось, что нумба не подтягивает его из нампай "обычного" режима, надо в njit-нутой функции его ещё раз выставлять.
Отпрофилировал код на глубинах 1-2 взаимодействий признаков. Оказалось, что 80% времени кушает оценка кандидатов, и 20% времени - расчёт надёжности для лучших кандидатов. Из этих 80% основные опять же ~80% тратятся в прямой оценке MI кандидата и таргета.
Дальше они распадаются так: 20% на слияние многомерного вектора, 70% на перемешивание таргета (np.random.shuffle), 10% на сам расчёт MI из совместного распределения.
Очевидно, выгоднее всего оптимизировать шаффл таргета. Решил попробовать cupy как замену numpy: просто перенести таргет в память gpu и шаффлить прямо там. Улучшения таймингов это не дало, т.к. перемешанный, пусть и быстро, массив 120k элементов всё равно надо было копировать обратно в RAM для подсчёта MI.
К счастью, подумал я, cupy позволяет писать и запускать произвольные ядра Cuda в C++ прямо из питона. Почему бы не выполнить расчёт гистограммы и MI прямо на GPU? Капец я с этим намучался ) Я же совсем забыл, что программирование для GPU - это сущий ад после "обычного", в поточной парадигме: ваша программа выполняется сразу на тысячах потоков, куча ограничений и условий, разделяемая память,синхронизация, атомики, блоки... Плюс я совсем забыл С++ (даже то немногое, что знал). Да ещё cupy иногда радовал перлами типа невозможности подсчитать сумму массива без Visual Studio 2019 (хотя максимум считался нормально).
В итоге всё же добил эту идею, и сейчас у меня есть реализация критической части на Cuda )
Что же по скорости?
%timeit показывает, что массив 120k элементов ноутбучная 1050Ti шаффлит в 4 раза быстрее, чем i7-7700HQ. То есть я могу ожидать, что 0.8*0.8*0.7=40% всего времени исполнения сократится в 4 раза. Если поиск на CPU идёт 15 минут, то можно ожидать, что на GPU это будет 15*0.6+15*0,4/4=11 минут.
Напрямую сравнить CPU и GPU не получается, т.к. у разных библ разные сиды и порядок выполнения операций, а длительность всего поиска зависит от случайных решений. Пара запусков дала новое время 12.5-13.0 минут вместо 15. Возможно, где-то налажал, буду ещё профилировать. Но timeit шаффла массива 1M элементов даёт выигрыш уже не в 4, а в 40 раз, т.е., по идее, GPU будет ещё выгоднее для больших датасетов.
Докладываю новости о проекте Диоген. Вчера добавил бюджет времени, переписал функции покрасивее, потестировал все ветки. С указанием допустимого времени работает просто отлично.
Сегодня ещё добавил функциональность random seed. Выяснилось, что нумба не подтягивает его из нампай "обычного" режима, надо в njit-нутой функции его ещё раз выставлять.
Отпрофилировал код на глубинах 1-2 взаимодействий признаков. Оказалось, что 80% времени кушает оценка кандидатов, и 20% времени - расчёт надёжности для лучших кандидатов. Из этих 80% основные опять же ~80% тратятся в прямой оценке MI кандидата и таргета.
Дальше они распадаются так: 20% на слияние многомерного вектора, 70% на перемешивание таргета (np.random.shuffle), 10% на сам расчёт MI из совместного распределения.
Очевидно, выгоднее всего оптимизировать шаффл таргета. Решил попробовать cupy как замену numpy: просто перенести таргет в память gpu и шаффлить прямо там. Улучшения таймингов это не дало, т.к. перемешанный, пусть и быстро, массив 120k элементов всё равно надо было копировать обратно в RAM для подсчёта MI.
К счастью, подумал я, cupy позволяет писать и запускать произвольные ядра Cuda в C++ прямо из питона. Почему бы не выполнить расчёт гистограммы и MI прямо на GPU? Капец я с этим намучался ) Я же совсем забыл, что программирование для GPU - это сущий ад после "обычного", в поточной парадигме: ваша программа выполняется сразу на тысячах потоков, куча ограничений и условий, разделяемая память,синхронизация, атомики, блоки... Плюс я совсем забыл С++ (даже то немногое, что знал). Да ещё cupy иногда радовал перлами типа невозможности подсчитать сумму массива без Visual Studio 2019 (хотя максимум считался нормально).
В итоге всё же добил эту идею, и сейчас у меня есть реализация критической части на Cuda )
Что же по скорости?
%timeit показывает, что массив 120k элементов ноутбучная 1050Ti шаффлит в 4 раза быстрее, чем i7-7700HQ. То есть я могу ожидать, что 0.8*0.8*0.7=40% всего времени исполнения сократится в 4 раза. Если поиск на CPU идёт 15 минут, то можно ожидать, что на GPU это будет 15*0.6+15*0,4/4=11 минут.
Напрямую сравнить CPU и GPU не получается, т.к. у разных библ разные сиды и порядок выполнения операций, а длительность всего поиска зависит от случайных решений. Пара запусков дала новое время 12.5-13.0 минут вместо 15. Возможно, где-то налажал, буду ещё профилировать. Но timeit шаффла массива 1M элементов даёт выигрыш уже не в 4, а в 40 раз, т.е., по идее, GPU будет ещё выгоднее для больших датасетов.
✍1
#nvidia
"В настоящий момент стоимость каждого ускорителя NVIDIA H100 в зависимости от региона продаж и поставщика в среднем составляет $25–30 тыс. При этом речь идёт о менее дорогой PCIe-версии указанного решения. По оценкам Raymond James, стоимость использующегося в этом ускорителе графического процессора, а также дополнительных материалов (печатной платы и других вспомогательных элементов) составляет $3320. К сожалению, Ким не уточняет глубину анализа расчёта стоимости и не поясняет, включены ли в этот показатель такие факторы, как затраты на разработку, зарплата инженеров, а также стоимость производства и логистики.
Разработка специализированных ускорителей требует значительного времени и ресурсов. По данным того же портала Glassdoor, средняя зарплата инженера по аппаратному обеспечению в NVIDIA составляет около $202 тыс. в год. Речь идёт только об одном инженере, но очевидно, что при разработке тех же H100 работала целая команда специалистов, а на саму разработку были затрачены тысячи рабочих часов. Всё это должно учитываться в конечной стоимости продукта.
И всё же очевидно, что сейчас NVIDIA в вопросе поставок аппаратных средств для ИИ-вычислений находится вне конкуренции. На специализированные ускорители «зелёных» сейчас такой спрос, что они распродаются ещё задолго до того, как попадают на условные полки магазинов. Поставщики говорят, что очередь за ними растянулась до второго квартала 2024 года. А с учётом последних оценок аналитиков, согласно которым к 2027 году рынок ИИ-вычислений вырастет до $150 млрд, ближайшее будущее NVIDIA видится точно безбедным.
С другой стороны, для рынка в целом высокий спрос на ускорители ИИ-вычислений имеет свои негативные последствия. В последних отчётах аналитиков говорится, что продажи традиционных серверов (HPC) в глобальном масштабе сокращаются. Основная причина падения спроса заключается в том, что гиперскейлеры и операторы ЦОД переключают внимание на системы, оптимизированные для ИИ, в которых используются решения вроде NVIDIA H100. По этой причине тем же производителям памяти DDR5 пришлось пересмотреть свои ожидания относительно распространения нового стандарта ОЗУ на рынок, поскольку операторы ЦОД сейчас активно инвестируют именно в ускорители ИИ, а не в новый стандарт оперативной памяти. На фоне это ожидается, что уровень внедрения DDR5 достигнет паритета с DDR4 только к третьему кварталу 2024 года."
https://3dnews.ru/1091667/nvidia-h100-1000-procentov-viruchki
"В настоящий момент стоимость каждого ускорителя NVIDIA H100 в зависимости от региона продаж и поставщика в среднем составляет $25–30 тыс. При этом речь идёт о менее дорогой PCIe-версии указанного решения. По оценкам Raymond James, стоимость использующегося в этом ускорителе графического процессора, а также дополнительных материалов (печатной платы и других вспомогательных элементов) составляет $3320. К сожалению, Ким не уточняет глубину анализа расчёта стоимости и не поясняет, включены ли в этот показатель такие факторы, как затраты на разработку, зарплата инженеров, а также стоимость производства и логистики.
Разработка специализированных ускорителей требует значительного времени и ресурсов. По данным того же портала Glassdoor, средняя зарплата инженера по аппаратному обеспечению в NVIDIA составляет около $202 тыс. в год. Речь идёт только об одном инженере, но очевидно, что при разработке тех же H100 работала целая команда специалистов, а на саму разработку были затрачены тысячи рабочих часов. Всё это должно учитываться в конечной стоимости продукта.
И всё же очевидно, что сейчас NVIDIA в вопросе поставок аппаратных средств для ИИ-вычислений находится вне конкуренции. На специализированные ускорители «зелёных» сейчас такой спрос, что они распродаются ещё задолго до того, как попадают на условные полки магазинов. Поставщики говорят, что очередь за ними растянулась до второго квартала 2024 года. А с учётом последних оценок аналитиков, согласно которым к 2027 году рынок ИИ-вычислений вырастет до $150 млрд, ближайшее будущее NVIDIA видится точно безбедным.
С другой стороны, для рынка в целом высокий спрос на ускорители ИИ-вычислений имеет свои негативные последствия. В последних отчётах аналитиков говорится, что продажи традиционных серверов (HPC) в глобальном масштабе сокращаются. Основная причина падения спроса заключается в том, что гиперскейлеры и операторы ЦОД переключают внимание на системы, оптимизированные для ИИ, в которых используются решения вроде NVIDIA H100. По этой причине тем же производителям памяти DDR5 пришлось пересмотреть свои ожидания относительно распространения нового стандарта ОЗУ на рынок, поскольку операторы ЦОД сейчас активно инвестируют именно в ускорители ИИ, а не в новый стандарт оперативной памяти. На фоне это ожидается, что уровень внедрения DDR5 достигнет паритета с DDR4 только к третьему кварталу 2024 года."
https://3dnews.ru/1091667/nvidia-h100-1000-procentov-viruchki
3DNews - Daily Digital Digest
NVIDIA продаёт ИИ-ускорители H100 с наценкой в 1000 %, но спрос на них только растёт
NVIDIA получает до 1000 % выручки с каждого проданного специализированного графического ускорителя H100, предназначенного для задач, связанных с искусственным интеллектом.
#astronomy
"Автоматическая межпланетная станция «Луна-25», которая несколько дней назад стартовала с космодрома Восточный, сделала первый снимок поверхности естественного спутника нашей планеты.В сообщении сказано, что межпланетная станция провела съёмку лунной поверхности телевизионными камерами комплекса СТС-Л. На снимке запечатлён южный полярный кратер Зееман, расположенный на обратной стороне Луны (координаты кратера соответствуют 75° южной широты и 135° градусам западной долготы). В дополнение к этому «Луна-25» провела наблюдение с помощью приборов АДРОН-ЛР и ПмЛ, АРИЕС-Л. Проведено измерение потоков гамма-лучей и нейтронов от поверхности Луны, а также получены параметры окололунной космической плазмы и газопылевой экзосферы на окололунной орбите.
Что касается кратера Зеемана, то он представляет собой уникальный объект на лунной поверхности, который не видно с поверхности Земли и который вызывает большой интерес у исследователей. Высота окружающего его вала достигается 8 км над поверхностью относительно ровного дна. Полученные изображения дополнят имеющиеся в настоящее время данные об этом кратере."
https://3dnews.ru/1091654/megplanetnaya-stantsiya-luna25-sdelala-perviy-snimok-poverhnosti-sputnika-zemli
"Автоматическая межпланетная станция «Луна-25», которая несколько дней назад стартовала с космодрома Восточный, сделала первый снимок поверхности естественного спутника нашей планеты.В сообщении сказано, что межпланетная станция провела съёмку лунной поверхности телевизионными камерами комплекса СТС-Л. На снимке запечатлён южный полярный кратер Зееман, расположенный на обратной стороне Луны (координаты кратера соответствуют 75° южной широты и 135° градусам западной долготы). В дополнение к этому «Луна-25» провела наблюдение с помощью приборов АДРОН-ЛР и ПмЛ, АРИЕС-Л. Проведено измерение потоков гамма-лучей и нейтронов от поверхности Луны, а также получены параметры окололунной космической плазмы и газопылевой экзосферы на окололунной орбите.
Что касается кратера Зеемана, то он представляет собой уникальный объект на лунной поверхности, который не видно с поверхности Земли и который вызывает большой интерес у исследователей. Высота окружающего его вала достигается 8 км над поверхностью относительно ровного дна. Полученные изображения дополнят имеющиеся в настоящее время данные об этом кратере."
https://3dnews.ru/1091654/megplanetnaya-stantsiya-luna25-sdelala-perviy-snimok-poverhnosti-sputnika-zemli
3DNews - Daily Digital Digest
«Луна-25» сделала первый снимок лунной поверхности — на фото попал кратер Зееман
Автоматическая межпланетная станция «Луна-25», которая несколько дней назад стартовала с космодрома Восточный, сделала первый снимок поверхности естественного спутника нашей планеты.
#featureselection
Lasso regularization path - примечательный метод.
https://www.youtube.com/watch?v=rxiORUw-nKs
Lasso regularization path - примечательный метод.
https://www.youtube.com/watch?v=rxiORUw-nKs
scikit-learn
Regularization path of L1- Logistic Regression
Train l1-penalized logistic regression models on a binary classification problem derived from the Iris dataset. The models are ordered from strongest regularized to least regularized. The 4 coeffic...
#fun #chess
Комментарий после того, как шахматный стример X отказался от матча:
"Чего вы пристали к X? Ну нет у него столько денег! Своих нет! Продать свои принципы за чужие 100к,-пожалуйста))а свои денежки не чужие))Владелец "заводов и пароходов", зарабатывающий от 500 к до 1 м в месяц, ушедший в бусти за прибылью, которая почему то не капает, продающий курс-как стать успешным,на который,может откликнуться только человек,котрому в палату дали Wi-Fi..."
Комментарий после того, как шахматный стример X отказался от матча:
"Чего вы пристали к X? Ну нет у него столько денег! Своих нет! Продать свои принципы за чужие 100к,-пожалуйста))а свои денежки не чужие))Владелец "заводов и пароходов", зарабатывающий от 500 к до 1 м в месяц, ушедший в бусти за прибылью, которая почему то не капает, продающий курс-как стать успешным,на который,может откликнуться только человек,котрому в палату дали Wi-Fi..."
#entropy #mutualinformation #prediction #finance #trading #causality
https://www.youtube.com/watch?v=tdWh7agQfTk
https://www.youtube.com/watch?v=tdWh7agQfTk
YouTube
Entropy, Mutual Information & Prediction
University of Illinois at Springfield Mathematics Colloquium page: https://www.uis.edu/math/colloquium
Title : Entropy, Mutual Information & Prediction
Speaker: Doug Hamilton
Date: April 13th, 2023
Location: University of Illinois Springfield (Mathematics…
Title : Entropy, Mutual Information & Prediction
Speaker: Doug Hamilton
Date: April 13th, 2023
Location: University of Illinois Springfield (Mathematics…
#featureselection #itmofs
Качественный и оригинальный материал. Впервые вижу оценку стабильности отборщиков признаков (с применением метрик Жаккара, Хэмминга), интерпретацию FS как задачи бинарной классификации (угадал FS признак, который был релевантным, или нет).
https://www.youtube.com/watch?v=fOjdGd-7o3s
Качественный и оригинальный материал. Впервые вижу оценку стабильности отборщиков признаков (с применением метрик Жаккара, Хэмминга), интерпретацию FS как задачи бинарной классификации (угадал FS признак, который был релевантным, или нет).
https://www.youtube.com/watch?v=fOjdGd-7o3s
YouTube
Вадим Глухов - Feature Selection
Вопросы и комментарии — в Telegram-чате сообщества NoML:
t.me/noml_community
Код и материалы всех мероприятий — в базе знаний:
noml.club
Анонсы новых мероприятий и другая полезная информация — в канале сообщества NoML:
t.me/noml_digest
t.me/noml_community
Код и материалы всех мероприятий — в базе знаний:
noml.club
Анонсы новых мероприятий и другая полезная информация — в канале сообщества NoML:
t.me/noml_digest
✍1
#featureselection
Хотелось бы свою либу потестить на этих датасетах.
Result Analysis of the NIPS 2003 Feature Selection Challenge
"The challenge demonstrated both that feature selection can be performed effectively and that eliminating meaningless features is not critical to
achieve good classification performance. By design, our datasets include many irrelevant “distracters” features, called “probes”. In contrast with redundant fea tures, which may not be needed to improve accuracy but carry information, those distracters are “pure noise”. It is surprising that some of the best entries use all the features. Still, there is always another entry close in performance, which uses only a small fraction of the original features.
The challenge outlined the power of filter methods. For many years, filter meth ods have dominated feature selection for computational reasons. It was understood that wrapper and embedded methods are more powerful, but too computationally expensive. Some of the top ranking entries use one or several filters as their only selection strategy. A filter as simple as the Pearson correlation coefficient proves to be very effective, even though it does not remove feature redundancy and there fore yields unnecessarily large feature subsets. Other entrants combined filters and embedded methods to further reduce the feature set and eliminate redundancies.
Another important outcome is that non-linear classifiers do not necessarily overfit. Several challenge datasets included a very large number of features (up to 100,000) and only a few hundred examples. Therefore, only methods that avoid overfitting can succeed in such adverse aspect ratios. Not surprisingly, the winning entries use as classifies either ensemble methods or strongly regularized classifiers. More surprisingly, non-linear classifiers often outperform linear classifiers. Hence, with adequate regularization, non-linear classifiers do not overfit the data, even when the number of features exceeds the number of examples by orders of magnitude.
The analysis of the challenge results revealed that hyperparameter selection may have played an important role in winning the challenge. Indeed, several groups were using the same classifier (e.g. an SVM) and reported significantly different results."
https://proceedings.neurips.cc/paper/2004/file/5e751896e527c862bf67251a474b3819-Paper.pdf
Хотелось бы свою либу потестить на этих датасетах.
Result Analysis of the NIPS 2003 Feature Selection Challenge
"The challenge demonstrated both that feature selection can be performed effectively and that eliminating meaningless features is not critical to
achieve good classification performance. By design, our datasets include many irrelevant “distracters” features, called “probes”. In contrast with redundant fea tures, which may not be needed to improve accuracy but carry information, those distracters are “pure noise”. It is surprising that some of the best entries use all the features. Still, there is always another entry close in performance, which uses only a small fraction of the original features.
The challenge outlined the power of filter methods. For many years, filter meth ods have dominated feature selection for computational reasons. It was understood that wrapper and embedded methods are more powerful, but too computationally expensive. Some of the top ranking entries use one or several filters as their only selection strategy. A filter as simple as the Pearson correlation coefficient proves to be very effective, even though it does not remove feature redundancy and there fore yields unnecessarily large feature subsets. Other entrants combined filters and embedded methods to further reduce the feature set and eliminate redundancies.
Another important outcome is that non-linear classifiers do not necessarily overfit. Several challenge datasets included a very large number of features (up to 100,000) and only a few hundred examples. Therefore, only methods that avoid overfitting can succeed in such adverse aspect ratios. Not surprisingly, the winning entries use as classifies either ensemble methods or strongly regularized classifiers. More surprisingly, non-linear classifiers often outperform linear classifiers. Hence, with adequate regularization, non-linear classifiers do not overfit the data, even when the number of features exceeds the number of examples by orders of magnitude.
The analysis of the challenge results revealed that hyperparameter selection may have played an important role in winning the challenge. Indeed, several groups were using the same classifier (e.g. an SVM) and reported significantly different results."
https://proceedings.neurips.cc/paper/2004/file/5e751896e527c862bf67251a474b3819-Paper.pdf
#featureselection #featureimportance
Оказывается, к "встроенной" важности признаков, по кр. мере, у деревянных моделей, нужно относиться с недоверием. Если модель оверфитнулась, большую внутреннюю важность могут запросто получить даже случайные признаки, особенно если у них высокая кардинальность. С другой стороны, такие оверфитнутые модельки вовсе не бесполезны, и истинную ценность признаков из них можно извлечь, используя holdout set и перестановочную важность. Но и она страдает от наличия мультиколлинеарности:
"When features are collinear, permutating one feature will have little effect on the models performance because it can get the same information from a correlated feature. One way to handle multicollinear features is by performing hierarchical clustering on the Spearman rank-order correlations, picking a threshold, and keeping a single feature from each cluster."
Оказывается, к "встроенной" важности признаков, по кр. мере, у деревянных моделей, нужно относиться с недоверием. Если модель оверфитнулась, большую внутреннюю важность могут запросто получить даже случайные признаки, особенно если у них высокая кардинальность. С другой стороны, такие оверфитнутые модельки вовсе не бесполезны, и истинную ценность признаков из них можно извлечь, используя holdout set и перестановочную важность. Но и она страдает от наличия мультиколлинеарности:
"When features are collinear, permutating one feature will have little effect on the models performance because it can get the same information from a correlated feature. One way to handle multicollinear features is by performing hierarchical clustering on the Spearman rank-order correlations, picking a threshold, and keeping a single feature from each cluster."
scikit-learn
Permutation Importance vs Random Forest Feature Importance (MDI)
In this example, we will compare the impurity-based feature importance of RandomForestClassifier with the permutation importance on the titanic dataset using permutation_importance. We will show th...
#astronomy
Деградация во всём.
"«Луна-25» стала первой российской миссией к Луне за последние полвека. Запуск произошёл 11 августа с космодрома Восточный в Амурской области. Станция планировалась к посадке на Луну с 21 по 24 августа, а 16 августа успешно вышла на окололунную орбиту. Несмотря на кратковременное существование, «Луна-25» успела провести ряд исследований, включая измерение потоков гамма-лучей и нейтронов. Последний аналогичный проект, «Луна-24», был реализован советскими учёными в 1976 году. Тогда аппарат привёз на Землю 170 граммов лунного грунта, в котором содержалась вода.
Крушение «Луна-25» стало напоминанием о сложностях космических исследований и неизвестности далёкого космоса. Несмотря на технологические достижения, изучение Луны остаётся сложной и рискованной задачей. Надежда на успешное освоение ближайшего спутника Земли сохраняется, и новые миссии, несомненно, будут запущены в ближайшем будущем."
https://3dnews.ru/1091771/missiya-luna-25-zavershilas-krusheniem-roskosmos-podtverdil-stolknovenie
Деградация во всём.
"«Луна-25» стала первой российской миссией к Луне за последние полвека. Запуск произошёл 11 августа с космодрома Восточный в Амурской области. Станция планировалась к посадке на Луну с 21 по 24 августа, а 16 августа успешно вышла на окололунную орбиту. Несмотря на кратковременное существование, «Луна-25» успела провести ряд исследований, включая измерение потоков гамма-лучей и нейтронов. Последний аналогичный проект, «Луна-24», был реализован советскими учёными в 1976 году. Тогда аппарат привёз на Землю 170 граммов лунного грунта, в котором содержалась вода.
Крушение «Луна-25» стало напоминанием о сложностях космических исследований и неизвестности далёкого космоса. Несмотря на технологические достижения, изучение Луны остаётся сложной и рискованной задачей. Надежда на успешное освоение ближайшего спутника Земли сохраняется, и новые миссии, несомненно, будут запущены в ближайшем будущем."
https://3dnews.ru/1091771/missiya-luna-25-zavershilas-krusheniem-roskosmos-podtverdil-stolknovenie
3DNews - Daily Digital Digest
Станция «Луна-25» разбилась о поверхность Луны — Роскосмос подтвердил крушение
Роскосмос подтвердил столкновение автоматической межпланетной станции «Луна-25» с поверхностью Луны.
#featureselection #diogenes
Прошлые несколько дней были весьма продуктивны в плане развития отборщика признаков.
Перевёл все 3 места, где было возможно, на параллельные вычисления с joblib. Преимущество в том, что это означает практически "из коробки" работу с кластером Dask (надо лишь передать joblib-у хэндл кластера), хотя там я пока не тестировал. Ну и, конечно, сами процедуры, выполняемые параллельно, оптимизированы numba и используют кэширование энтропий и взаимных информаций.
На винде отмечаю, что с дефолтным бэком (loky) воркеры иногда создаются очень долго, порядка минуты, с полной загрузкой ядер. Хм, надо бы попробовать backend="threading" и njit(nogil=True).
По алгоритмам. Не сработала моя идея с коррекцией формулы Флеврета, на удивление она даёт много ложноположительных срабатываний. Также пришлось придумать решение, которое понижает выгоду от добавления ПАРЫ кандидатов, при условии что один из кандидатов уже подтверждён как предиктор (иначе необоснованно всплывали подобные пары). Ещё выяснилось, что в тестах надёжности перемешивать таргет бывает недостаточно, лучше мешать ещё и кандидатов.
Закрыл практически все базовые задачи по этому проекту. Сегодня добиваю проверку на связь с 2 и больше другими кандидатами, и временно переключаюсь на другой проект. К Диогену вернусь через неделю, надо его будет потестить в скальпинге и в большом сравнении FS-алгоритмов.
Что в нём осталось сделать:
обёртку для совместимости с конвейерами sklearn
мультитаргет
опциональный алгоритм PLD
допстатистика в графовой визуализации (пары, иерархия)
Как я вижу его применение
1) как средство denoscriptive analytics - найти хорошие признаки из тысяч кандидатов, понять, в какую сторону копать дальше, чтобы создать больше хороших фичей (особенно с фишкой мультитаргета)
2) как средство predictive analytics , чтобы в боевом ML конвейере осуществлять прескрининг признаков. Он будет разбивать все признаки на influencing (те, что отобраны mrmr), redundant (те, для которых значимо подтверждена связь с таргетом, но которые не добавляют новой инфы к influencing), possibly_redundant (те, для которых возможна связь с таргетом, но которые не добавляют новой инфы к influencing), и irrelevant. Ну или можно использовать терминологию Boruta: accepted, tentative, rejected.
По идее, вся дальнейшая работа должна вестись со списком influencing. но ещё можно порекомендовать по отдельной модели на списки redundant+possibly_redundant и даже на irrelevant, потому что Диоген отлавливает только ограниченный порядок интеракций (обычно 2-3, дальше совместные распределения начинают вырождаться - тут бы придумать научно обоснованную перенормировку, но это в будущем). Не знаю, смогут ли поймать 4-интеракции типа XOR леса/бустинги, но вдруг. Лично мне пока кажется, что 2-way interactions+influencing only для практических задач будет за глаза.
Прошлые несколько дней были весьма продуктивны в плане развития отборщика признаков.
Перевёл все 3 места, где было возможно, на параллельные вычисления с joblib. Преимущество в том, что это означает практически "из коробки" работу с кластером Dask (надо лишь передать joblib-у хэндл кластера), хотя там я пока не тестировал. Ну и, конечно, сами процедуры, выполняемые параллельно, оптимизированы numba и используют кэширование энтропий и взаимных информаций.
На винде отмечаю, что с дефолтным бэком (loky) воркеры иногда создаются очень долго, порядка минуты, с полной загрузкой ядер. Хм, надо бы попробовать backend="threading" и njit(nogil=True).
По алгоритмам. Не сработала моя идея с коррекцией формулы Флеврета, на удивление она даёт много ложноположительных срабатываний. Также пришлось придумать решение, которое понижает выгоду от добавления ПАРЫ кандидатов, при условии что один из кандидатов уже подтверждён как предиктор (иначе необоснованно всплывали подобные пары). Ещё выяснилось, что в тестах надёжности перемешивать таргет бывает недостаточно, лучше мешать ещё и кандидатов.
Закрыл практически все базовые задачи по этому проекту. Сегодня добиваю проверку на связь с 2 и больше другими кандидатами, и временно переключаюсь на другой проект. К Диогену вернусь через неделю, надо его будет потестить в скальпинге и в большом сравнении FS-алгоритмов.
Что в нём осталось сделать:
обёртку для совместимости с конвейерами sklearn
мультитаргет
опциональный алгоритм PLD
допстатистика в графовой визуализации (пары, иерархия)
Как я вижу его применение
1) как средство denoscriptive analytics - найти хорошие признаки из тысяч кандидатов, понять, в какую сторону копать дальше, чтобы создать больше хороших фичей (особенно с фишкой мультитаргета)
2) как средство predictive analytics , чтобы в боевом ML конвейере осуществлять прескрининг признаков. Он будет разбивать все признаки на influencing (те, что отобраны mrmr), redundant (те, для которых значимо подтверждена связь с таргетом, но которые не добавляют новой инфы к influencing), possibly_redundant (те, для которых возможна связь с таргетом, но которые не добавляют новой инфы к influencing), и irrelevant. Ну или можно использовать терминологию Boruta: accepted, tentative, rejected.
По идее, вся дальнейшая работа должна вестись со списком influencing. но ещё можно порекомендовать по отдельной модели на списки redundant+possibly_redundant и даже на irrelevant, потому что Диоген отлавливает только ограниченный порядок интеракций (обычно 2-3, дальше совместные распределения начинают вырождаться - тут бы придумать научно обоснованную перенормировку, но это в будущем). Не знаю, смогут ли поймать 4-интеракции типа XOR леса/бустинги, но вдруг. Лично мне пока кажется, что 2-way interactions+influencing only для практических задач будет за глаза.
#featurselection #itmofs
В недавнем видео было про университетскую либу ITMO_FS, там структурированный грамотный код, я уже думал расслабиться, всё придумали до нас.
Но нет, по виду, это скорее академический проект, непригодный для боя: чистый медленный питон (в крайнем случай, нумпай), нет многопоточности, оценки надёжности с помощью случайных перестановок, нет мультивекторов, нет кэширующих оптимизаций. Для реальной работы это несерьёзно. Я постараюсь включить ITMO_FS в грядущее сравнение отборщиков признаков в сентябре, там просто огромное количество методов отбора.
Ха-ха, и уже в первом же примере использования у них концептуальная ошибка.
"Here is one of examples of feature selection improving the classification quality:
В недавнем видео было про университетскую либу ITMO_FS, там структурированный грамотный код, я уже думал расслабиться, всё придумали до нас.
Но нет, по виду, это скорее академический проект, непригодный для боя: чистый медленный питон (в крайнем случай, нумпай), нет многопоточности, оценки надёжности с помощью случайных перестановок, нет мультивекторов, нет кэширующих оптимизаций. Для реальной работы это несерьёзно. Я постараюсь включить ITMO_FS в грядущее сравнение отборщиков признаков в сентябре, там просто огромное количество методов отбора.
Ха-ха, и уже в первом же примере использования у них концептуальная ошибка.
"Here is one of examples of feature selection improving the classification quality:
>>> from sklearn.datasets import make_classificationAs expected, the quality of the SVGClassifier’s results is impacted by the presence of redundant features in data set. We can see that after using of feature selection the mean accuracy increases from 0.903 to 0.943."
>>> from sklearn.linear_model import SGDClassifier
>>> from ITMO_FS.embedded import MOS
>>> X, y = make_classification(n_samples=300, n_features=10, random_state=0, n_informative=2)
>>> sel = MOS()
>>> trX = sel.fit_transform(X, y, smote=False)
>>> cl1 = SGDClassifier()
>>> cl1.fit(X, y)
>>> cl1.score(X, y)
0.9033333333333333
>>> cl2 = SGDClassifier()
>>> cl2.fit(trX, y)
>>> cl2.score(trX, y)
0.9433333333333334
GitHub
GitHub - ctlab/ITMO_FS: Feature selection library in python
Feature selection library in python. Contribute to ctlab/ITMO_FS development by creating an account on GitHub.