Forwarded from asisakov
Советы от грандмастера
В отложенных для просмотра вкладок завалялось видео с выступлением Стаса Семенова. Если кто не знает, то это ex-top-1 kaggle grandmaster, который сейчас работает квантом.
В видео он раздаёт советы с рекомендациями, как выбить лучший скор модели. Поделюсь тем, что меня зацепило:
1. Преобразование выхода модели функциями, смещающими распределение предсказаний в более уверенные предикты
2. Отбор только k-ых наблюдений во временных рядах, где соседние точки имеют очень близкие значения (например в HFT)
3. Расчёт критериев, показывающих похожесть 2 признаков
Если вам есть что докинуть, пишите в коменты.
P.S. Кстати, есть конспект от Дэна
В отложенных для просмотра вкладок завалялось видео с выступлением Стаса Семенова. Если кто не знает, то это ex-top-1 kaggle grandmaster, который сейчас работает квантом.
В видео он раздаёт советы с рекомендациями, как выбить лучший скор модели. Поделюсь тем, что меня зацепило:
1. Преобразование выхода модели функциями, смещающими распределение предсказаний в более уверенные предикты
2. Отбор только k-ых наблюдений во временных рядах, где соседние точки имеют очень близкие значения (например в HFT)
3. Расчёт критериев, показывающих похожесть 2 признаков
Если вам есть что докинуть, пишите в коменты.
P.S. Кстати, есть конспект от Дэна
YouTube
Tips and Tricks for Machine Learning | by Stanislav Semenov | Kaggle Days Paris
Stanislav Semenov
"Tips and tricks for Machine Learning"
Kaggle Days Paris was held in January 2019 and gathered over 200 participants to meet, learn and code with Kaggle Grandmasters, and compete in our traditional offline competition.
This edition is…
"Tips and tricks for Machine Learning"
Kaggle Days Paris was held in January 2019 and gathered over 200 participants to meet, learn and code with Kaggle Grandmasters, and compete in our traditional offline competition.
This edition is…
mosteller_fifty_challenging_problems_in_statistics.pdf
4.9 MB
#probability
Советую порешать задачки по теорверу ) Классная книжка, читал её школьником и благодаря ей начал программировать (на qbasic).
Советую порешать задачки по теорверу ) Классная книжка, читал её школьником и благодаря ей начал программировать (на qbasic).
✍1
#ml #physics
МЛ в системах с (частично) известной физикой.
https://www.youtube.com/watch?v=JoFW2uSd3Uo
МЛ в системах с (частично) известной физикой.
https://www.youtube.com/watch?v=JoFW2uSd3Uo
YouTube
Physics Informed Machine Learning: High Level Overview of AI and ML in Science and Engineering
This video describes how to incorporate physics into the machine learning process. The process of machine learning is broken down into five stages: (1) formulating a problem to model, (2) collecting and curating training data to inform the model, (3) choosing…
#fun #music
Немного хорошего офисного настроения всем в ленту )
https://www.youtube.com/shorts/DuTOTTW-pfg
Немного хорошего офисного настроения всем в ленту )
https://www.youtube.com/shorts/DuTOTTW-pfg
YouTube
Brother Louie Dance
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.
#simulation #optimization
Интересная идея о том, как ускорять симуляции с помощью ML и тем самым помогать быстрой оптимизации. Действительно, почему бы и и нет! Сначала собираем входные параметры системы +итоги симуляций, а дальше симуляцию пробуем заменять быстрой ML моделью.
https://www.youtube.com/watch?v=ohGeGfUCV_A
Интересная идея о том, как ускорять симуляции с помощью ML и тем самым помогать быстрой оптимизации. Действительно, почему бы и и нет! Сначала собираем входные параметры системы +итоги симуляций, а дальше симуляцию пробуем заменять быстрой ML моделью.
https://www.youtube.com/watch?v=ohGeGfUCV_A
YouTube
ML for Optimization Problems | Qingchen Wang | Kaggle Days
Kaggle Days China edition was held on October 19-20 at Damei Center, Beijing.
More than 400 data scientists and enthusiasts gathered to learn, make friends, and compete in a full-day offline competition.
Kaggle Days is produced by LogicAI and Kaggle.
About…
More than 400 data scientists and enthusiasts gathered to learn, make friends, and compete in a full-day offline competition.
Kaggle Days is produced by LogicAI and Kaggle.
About…
👍1
#c #с++ #bufferoverflow #security
Отчёт ONCD подчёркивает, что около 70 % всех уязвимостей в системе безопасности, выявленных инженерами Microsoft в 2019 году и Google в 2020 году, были связаны именно с нарушениями безопасности памяти. Эта статистика ясно демонстрирует необходимость переосмысления подходов к разработке ПО в контексте нынешней стратегии кибербезопасности США.
В отчёте не только указывается на проблемы с C и C++, но и предлагается ряд альтернатив — языков программирования, признанных «безопасными для памяти». Среди рекомендованных Агентством национальной безопасности (NSA) языков находятся: Rust, Go, C#, Java, Swift, JavaScript и Ruby. Эти языки включают в себя механизмы, предотвращающие распространённые типы атак на память, тем самым повышая безопасность разрабатываемых систем.
https://3dnews.ru/1100993/beliy-dom-rekomendoval-otkazatsya-ot-c-i-c-v-polzu-bezopasnih-yazikov-programmirovaniya
Отчёт ONCD подчёркивает, что около 70 % всех уязвимостей в системе безопасности, выявленных инженерами Microsoft в 2019 году и Google в 2020 году, были связаны именно с нарушениями безопасности памяти. Эта статистика ясно демонстрирует необходимость переосмысления подходов к разработке ПО в контексте нынешней стратегии кибербезопасности США.
В отчёте не только указывается на проблемы с C и C++, но и предлагается ряд альтернатив — языков программирования, признанных «безопасными для памяти». Среди рекомендованных Агентством национальной безопасности (NSA) языков находятся: Rust, Go, C#, Java, Swift, JavaScript и Ruby. Эти языки включают в себя механизмы, предотвращающие распространённые типы атак на память, тем самым повышая безопасность разрабатываемых систем.
https://3dnews.ru/1100993/beliy-dom-rekomendoval-otkazatsya-ot-c-i-c-v-polzu-bezopasnih-yazikov-programmirovaniya
3DNews - Daily Digital Digest
Белый дом рекомендовал отказаться от C и C++ в пользу безопасных языков программирования
Офис национального директора по кибербезопасности (ONCD) Белого дома США призвал разработчиков отказаться от использования языков программирования C и C++ в разработке критически важного ПО. Этот совет основывается на опасениях, связанных с безопасностью…
#music #spiritualfront
I’ve seen a thousand mornings,
I’ve lived a million nights.
I’ve walked within the shadows
Beneath the city lights.
I‘ve fought a thousand battles,
I’ve been in a hundred wars.
And I will always live on
Behind closed doors.
https://www.youtube.com/watch?v=JQa6jjR7qoI
I’ve seen a thousand mornings,
I’ve lived a million nights.
I’ve walked within the shadows
Beneath the city lights.
I‘ve fought a thousand battles,
I’ve been in a hundred wars.
And I will always live on
Behind closed doors.
https://www.youtube.com/watch?v=JQa6jjR7qoI
YouTube
When the Sun Has Ceased to Shine
Provided to YouTube by Trisol
When the Sun Has Ceased to Shine · Spiritual Front
Namenlos
℗ Trisol Music Group
Released on: 2008-01-25
Composer: Thomas Rainer
Auto-generated by YouTube.
When the Sun Has Ceased to Shine · Spiritual Front
Namenlos
℗ Trisol Music Group
Released on: 2008-01-25
Composer: Thomas Rainer
Auto-generated by YouTube.
#featureselection #diogenes
в модуле filters Диогена уже 3k строчек кода. хотя вроде идеи основные такие простые и элегантные.
в модуле filters Диогена уже 3k строчек кода. хотя вроде идеи основные такие простые и элегантные.
#featureengineering #featureselection #diogenes
2024-03-02 05:39:17,484 - INFO - screen_predictors-line:1524 - Starting work with full_npermutations=10, min_nonzero_confidence=0.99000, max_failed=1
2024-03-02 05:39:49,214 - INFO - fit-line:2750 - MRMR selected 4 out of 5 features: [{'name': 'a', 'indices': (0,), 'gain': 0.33220730396336595, 'confidence': 1.0}, {'name': 'b', 'indices': (1,), 'gain': 0.5405325314273686, 'confidence': 1.0}, {'name': 'c', 'indices': (2,), 'gain': 0.20641517193369197, 'confidence': 1.0}, {'name': 'd', 'indices': (3,), 'gain': 0.07414164383695354, 'confidence': 1.0}]
2024-03-02 05:40:34,762 - INFO - fit-line:2983 - mul(log(c),sin(d)) is recommended to use as a new feature!
2024-03-02 05:42:12,619 - INFO - fit-line:2983 - mul(squared(a),reciproc(b)) is recommended to use as a new feature!
time: 3min 7s (started: 2024-03-02 05:39:05 +03:00)
Как тебе такое, Франциска Хорн? )
n =100_000
a = np.random.rand(n)
b = np.random.rand(n)
c = np.random.rand(n)
d = np.random.rand(n)
e = np.random.rand(n)
f = np.random.rand(n)
y=a**2/b+f/5+np.log(c)*np.sin(d)
df = pd.DataFrame(
{
"a": a,
"b": b,
"c": c,
"d": d,
"e": e,
}
)
from mlframe.feature_selection.filters import MRMR
fs=MRMR(full_npermutations=10,baseline_npermutations=20,verbose=1,n_workers=1,parallel_kwargs=dict(temp_folder=r"R:\Temp"),)
fs.fit(X=df,y=y)
2024-03-02 05:39:17,484 - INFO - screen_predictors-line:1524 - Starting work with full_npermutations=10, min_nonzero_confidence=0.99000, max_failed=1
2024-03-02 05:39:49,214 - INFO - fit-line:2750 - MRMR selected 4 out of 5 features: [{'name': 'a', 'indices': (0,), 'gain': 0.33220730396336595, 'confidence': 1.0}, {'name': 'b', 'indices': (1,), 'gain': 0.5405325314273686, 'confidence': 1.0}, {'name': 'c', 'indices': (2,), 'gain': 0.20641517193369197, 'confidence': 1.0}, {'name': 'd', 'indices': (3,), 'gain': 0.07414164383695354, 'confidence': 1.0}]
2024-03-02 05:40:34,762 - INFO - fit-line:2983 - mul(log(c),sin(d)) is recommended to use as a new feature!
2024-03-02 05:42:12,619 - INFO - fit-line:2983 - mul(squared(a),reciproc(b)) is recommended to use as a new feature!
time: 3min 7s (started: 2024-03-02 05:39:05 +03:00)
Как тебе такое, Франциска Хорн? )
🔥3
#featureengineering #featureselection #autofeat
time: 5min 23s (started: 2024-03-02 06:07:07 +03:00)
Эмм.. А можно мне другой отборщик признаков? )
from autofeat import AutoFeatRegressor
model = AutoFeatRegressor(transformations = ('1/', 'exp', 'log', 'sin', 'sqrt', '^2', '^3'),featsel_runs=15)
new_df = model.fit_transform(df, y)
time: 5min 23s (started: 2024-03-02 06:07:07 +03:00)
Эмм.. А можно мне другой отборщик признаков? )
#reading
Читаю книжку, ловлю себя на мысли, что сноски внизу страницы должны кануть в небытиё (к чему эта саккада через всю страницу вниз-вверх? это сделано что, для моего мнимого удобства?). Как и чёртовы благодарности жёнам, детям, собакам автора. Равно как и "отзывы читателей", к примеру, в книжке Кохави, или как его, по А/Б тестам. Книжка была дрянной, а прекрасные "отзывы читателей" он расписал страницах на 5, не меньше.
Читаю книжку, ловлю себя на мысли, что сноски внизу страницы должны кануть в небытиё (к чему эта саккада через всю страницу вниз-вверх? это сделано что, для моего мнимого удобства?). Как и чёртовы благодарности жёнам, детям, собакам автора. Равно как и "отзывы читателей", к примеру, в книжке Кохави, или как его, по А/Б тестам. Книжка была дрянной, а прекрасные "отзывы читателей" он расписал страницах на 5, не меньше.
👍1👎1
#featureengineering #featureselection #diogenes
Хорошие новости!
Как уже поняли читатели моего блога, в библиотеке отбора признаков Диоген появился также и модуль инженерии/конструирования новых признаков, но не бездумного, как в autofeat, а направленного, на основании теоретико-информационных метрик (в основном, взаимной информации MI комбинаций факторов с таргетом).
Основной мотивацией была попытка выделить рациональное зерно из набивших оскомину унылых рекомендаций и бубнежа вида "также иногда помогает логарифмирование, экспоненциирование, извлечение корней, попарное перемножение или деление исходных факторов". Эти рекомендации регулярно встречаются в курсах по FE и презентациях кэгглеров, но непонятно, как к этому вообще подступаться, кроме разве что каких-то случайных выпадов. Ну вот есть у меня 10k оригинальных признаков, мне взаимные отношения или произведения у каких именно из 50M пар проверять?
А так как метод MRMR в Диогене как раз и определяет достаточно хорошее в смысле предиктивности и уникальности подмножество признаков, некоторая проверка комбинаций становится уже реальной. Ещё больше пространство поиска сужает эвристика, что MI от "хорошей" на предмет тесной нелинейной связи пары признаков должна быть выше суммы индивидуальных MI факторов пары.
Это уже позволяет брать любые известные классы функций и для пары признаков a,b пытаться подбирать (в рамках бюджета) F3(F1(a),F2(b)) дающие максимальную MI с таргетом. В некоторых простых случаях этот метод срабатывает на ура, результаты я показывал выше. Но, если истинная зависимость сильно искажает вход ДО передачи в нелинейную функцию, метод становится практически бессилен и связь не обнаруживается.
Алексей @introspec предложил очень классную идею: почему бы не заменить подбор функций, сходимость которого дело скорее удачи, подбором коэффициентов ортогональных многочленов (например, Эрмитовых), теоретически умеющих аппроксимировать любую функциональную зависимость на отрезке? Взяв степень пониже, и коэффициенты поближе к 0, можно обеспечить своего рода регуляризацию.
Я попробовал пару дней тому заменить случайный поиск в пространстве функций на почти настолько же случайный поиск в пространстве коэффициентов Эрмитовых полиномов, но поставил вариацию на паузу из-за того, что не находились достаточно хорошие решения.
Теперь, собственно, к новостям )
Потестил свой модуль с разными исходными зависимостями, немного прояснил чувствительность и границы применимости метода. Пофиксил баги.
И... Заменил случайный перебор Эрмитовых полиномов на направленную оптимизацию с помощью Optuna )
Решения явно стали находиться получше за разумное время, иногда по качеству не уступают "нативным", когда зависимость известна. Нужно больше тестов. И, самое главное, предстоит выяснить, дают ли такие необычные преобразования реальные преимущества в ML метриках, или же ведут к оверфиту.
Хорошие новости!
Как уже поняли читатели моего блога, в библиотеке отбора признаков Диоген появился также и модуль инженерии/конструирования новых признаков, но не бездумного, как в autofeat, а направленного, на основании теоретико-информационных метрик (в основном, взаимной информации MI комбинаций факторов с таргетом).
Основной мотивацией была попытка выделить рациональное зерно из набивших оскомину унылых рекомендаций и бубнежа вида "также иногда помогает логарифмирование, экспоненциирование, извлечение корней, попарное перемножение или деление исходных факторов". Эти рекомендации регулярно встречаются в курсах по FE и презентациях кэгглеров, но непонятно, как к этому вообще подступаться, кроме разве что каких-то случайных выпадов. Ну вот есть у меня 10k оригинальных признаков, мне взаимные отношения или произведения у каких именно из 50M пар проверять?
А так как метод MRMR в Диогене как раз и определяет достаточно хорошее в смысле предиктивности и уникальности подмножество признаков, некоторая проверка комбинаций становится уже реальной. Ещё больше пространство поиска сужает эвристика, что MI от "хорошей" на предмет тесной нелинейной связи пары признаков должна быть выше суммы индивидуальных MI факторов пары.
Это уже позволяет брать любые известные классы функций и для пары признаков a,b пытаться подбирать (в рамках бюджета) F3(F1(a),F2(b)) дающие максимальную MI с таргетом. В некоторых простых случаях этот метод срабатывает на ура, результаты я показывал выше. Но, если истинная зависимость сильно искажает вход ДО передачи в нелинейную функцию, метод становится практически бессилен и связь не обнаруживается.
Алексей @introspec предложил очень классную идею: почему бы не заменить подбор функций, сходимость которого дело скорее удачи, подбором коэффициентов ортогональных многочленов (например, Эрмитовых), теоретически умеющих аппроксимировать любую функциональную зависимость на отрезке? Взяв степень пониже, и коэффициенты поближе к 0, можно обеспечить своего рода регуляризацию.
Я попробовал пару дней тому заменить случайный поиск в пространстве функций на почти настолько же случайный поиск в пространстве коэффициентов Эрмитовых полиномов, но поставил вариацию на паузу из-за того, что не находились достаточно хорошие решения.
Теперь, собственно, к новостям )
Потестил свой модуль с разными исходными зависимостями, немного прояснил чувствительность и границы применимости метода. Пофиксил баги.
И... Заменил случайный перебор Эрмитовых полиномов на направленную оптимизацию с помощью Optuna )
Решения явно стали находиться получше за разумное время, иногда по качеству не уступают "нативным", когда зависимость известна. Нужно больше тестов. И, самое главное, предстоит выяснить, дают ли такие необычные преобразования реальные преимущества в ML метриках, или же ведут к оверфиту.
👍2🔥1