Коротенько расскажу про соревнование и решения на стриме у Алерона сегодня
Forwarded from 🏄 Соревновательный Data Science | Kaggle | Чемпионаты
Привет, чемпионы! 🏆
📣 Завтра, 8 декабря в 17:00, проведём ещё один стрим.
Расскажем про 3 соревы:
1) Дима @dimitriy_rudenko расскажет, как участвовал в Open Porblems, про топовые находки победителей, с фокусом на том, что можно переиспользовать. Канал Димы.
2) Артём @cosheimil расскажет про 2 соревы: как взял🥉 на LWP и про идущую сореву Enefit.
🔥Тем кто пропустил стрим прошлой пятницы советуем посмотреть. Мы там в начале уже затронули Enefit.
Помните:
🧑🏻💻 пишите в комментах про какие соревы вам интересно послушать в следующие пятницы!
🕵🏻♂️ вы всегда можете поделиться обзором соревы, в которую планируете залететь или той в которой уже поучаствовали. Пишите в лс @dfeeler ⚡️
📣 Завтра, 8 декабря в 17:00, проведём ещё один стрим.
Расскажем про 3 соревы:
1) Дима @dimitriy_rudenko расскажет, как участвовал в Open Porblems, про топовые находки победителей, с фокусом на том, что можно переиспользовать. Канал Димы.
2) Артём @cosheimil расскажет про 2 соревы: как взял🥉 на LWP и про идущую сореву Enefit.
🔥Тем кто пропустил стрим прошлой пятницы советуем посмотреть. Мы там в начале уже затронули Enefit.
Помните:
🧑🏻💻 пишите в комментах про какие соревы вам интересно послушать в следующие пятницы!
🕵🏻♂️ вы всегда можете поделиться обзором соревы, в которую планируете залететь или той в которой уже поучаствовали. Пишите в лс @dfeeler ⚡️
🤡2❤1👎1🔥1🤮1👀1 1
Написал простенький кернел для UBC:
Все картинки нарисовал
Для всех картинок посчитал соотношения сторон к тамбнейлам
Отпечатал классы для каждой картинки
Например тут можно увидеть, что некоторые картиники- это снимок в двух срезах, а некоторые в трех. Планирую посмотреть вообще все картинки из трейна, мб там что-то совершенно великолепное найдется.
Наслаждайтесь
Все картинки нарисовал
Для всех картинок посчитал соотношения сторон к тамбнейлам
Отпечатал классы для каждой картинки
Например тут можно увидеть, что некоторые картиники- это снимок в двух срезах, а некоторые в трех. Планирую посмотреть вообще все картинки из трейна, мб там что-то совершенно великолепное найдется.
Наслаждайтесь
Kaggle
All Kaggle Images printed
Explore and run machine learning code with Kaggle Notebooks | Using data from UBC Ovarian Cancer Subtype Classification and Outlier Detection (UBC-OCEAN)
🔥4🕊2👍1 1 1
überподробный writeup нашего решения для open problems:
https://www.kaggle.com/competitions/open-problems-single-cell-perturbations/discussion/460858
В соревновании есть приз за лучшие writeup'ы: 10к для 5 команд из топ-100, выбранных судьями.
Апвоуты, апвоуты, апвоуты! Помогите мне забрать денег с каггла!🔝 🔝 🔝
А еще если вы осилите эту стену текста и хотите покритиковать части поста, как непонятные или нашли опечатки- пишите в комменты или мне в личку обязательно. Ваш альтруизм не будет забыт!
https://www.kaggle.com/competitions/open-problems-single-cell-perturbations/discussion/460858
В соревновании есть приз за лучшие writeup'ы: 10к для 5 команд из топ-100, выбранных судьями.
Апвоуты, апвоуты, апвоуты! Помогите мне забрать денег с каггла!
А еще если вы осилите эту стену текста и хотите покритиковать части поста, как непонятные или нашли опечатки- пишите в комменты или мне в личку обязательно. Ваш альтруизм не будет забыт!
Please open Telegram to view this post
VIEW IN TELEGRAM
Kaggle
Open Problems – Single-Cell Perturbations
Predict how small molecules change gene expression in different cell types
👍8🔥2 1 1
Forwarded from (sci)Berloga Всех Наук и Технологий
🚀 @SBERLOGACOMPETE webinar on bionformatics and data science:
👨🔬 Дмитрий Руденко, Александр Червов "Обзор прошедшего соревнования "Open Problems – Single-Cell Perturbations""
⌚️ Четверг 20.00 (по Москве) 14 Декабря
Добавить в Гугл календарь
В соревнование требовалось предсказать как под действием лекарств (146 разных) меняются экспрессии генов. Было только две фичи и они категорные - название клеточного типа (6 типов клеток крови) и название лекарств. Семплов мало - 600+ в трейне, 255 в тесте, но таргетов было много 18211 (все гены). Удивительно, но особого шейкапа не было, хотя СВ-ЛБ билось плохо и семплов мало. Основные решения строились на PYBOOST и нейронках (удивительно, но нейронки хорошо работают даже при таком малом числе семплов).
Наша команда (Антонина Долгорукова, Дмитрий Руденко, Дмитрий Ершов, Антон Вахрушев, Александр Червов) заняла "счастливое" 13 место - ровно на 1 ниже золота (((((
Но у нас есть шанс еще на приз от экспертов - и ваши апвоуты - нам не помешают:
"U900 team - PYBOOST is what you need"
https://www.kaggle.com/competitions/open-problems-single-cell-perturbations/discussion/460858 описание решения и ответы на вопросы оргов. (Ваш альтруизм не будет забыт!)
В данном докладе мы напомним в чем была задача, немного расскажем о подходе на PYBOOST и перейдем к обзору решений других команд.
Zoom link will be in @sberlogabig just before start. Video records: https://www.youtube.com/c/SciBerloga - subscribe !
PS
Подписывайтесь на канал Дмитрия о дата сайнс и Каггл: https://news.1rj.ru/str/pseudolabeling
👨🔬 Дмитрий Руденко, Александр Червов "Обзор прошедшего соревнования "Open Problems – Single-Cell Perturbations""
⌚️ Четверг 20.00 (по Москве) 14 Декабря
Добавить в Гугл календарь
В соревнование требовалось предсказать как под действием лекарств (146 разных) меняются экспрессии генов. Было только две фичи и они категорные - название клеточного типа (6 типов клеток крови) и название лекарств. Семплов мало - 600+ в трейне, 255 в тесте, но таргетов было много 18211 (все гены). Удивительно, но особого шейкапа не было, хотя СВ-ЛБ билось плохо и семплов мало. Основные решения строились на PYBOOST и нейронках (удивительно, но нейронки хорошо работают даже при таком малом числе семплов).
Наша команда (Антонина Долгорукова, Дмитрий Руденко, Дмитрий Ершов, Антон Вахрушев, Александр Червов) заняла "счастливое" 13 место - ровно на 1 ниже золота (((((
Но у нас есть шанс еще на приз от экспертов - и ваши апвоуты - нам не помешают:
"U900 team - PYBOOST is what you need"
https://www.kaggle.com/competitions/open-problems-single-cell-perturbations/discussion/460858 описание решения и ответы на вопросы оргов. (Ваш альтруизм не будет забыт!)
В данном докладе мы напомним в чем была задача, немного расскажем о подходе на PYBOOST и перейдем к обзору решений других команд.
Zoom link will be in @sberlogabig just before start. Video records: https://www.youtube.com/c/SciBerloga - subscribe !
PS
Подписывайтесь на канал Дмитрия о дата сайнс и Каггл: https://news.1rj.ru/str/pseudolabeling
❤8🔥1 1 1
Завтра выступаем на воркшопе NeurIPS 2023 как выбор организаторов!
Подключайтесь, радуйтесь с нами😍
Время:
В Москве 1:00
В Европе 23:00
В комменты кину приведенное время и дату
Подключайтесь, радуйтесь с нами
Время:
В Москве 1:00
В Европе 23:00
В комменты кину приведенное время и дату
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20❤2 1 1
Запрети мне псевдолейблить
Завтра выступаем на воркшопе NeurIPS 2023 как выбор организаторов! Подключайтесь, радуйтесь с нами 😍 Время: В Москве 1:00 В Европе 23:00 В комменты кину приведенное время и дату
Пароль wingfood, если вы вдруг проглядели на скрине!
Там целый зал нипсеров, можно вообще проникнуться тем, как проходят мероприятия на нипсе
Там целый зал нипсеров, можно вообще проникнуться тем, как проходят мероприятия на нипсе
Вчера закончилось соревнование CAFA5. Заняли с командой 132 место и зафармили бронзовую медальку 🥉
Разбирать эту сореву нет особого смысла: случилась она давно и только сейчас подбили лб нормально. Я даже биологический контекст не помню
Тем самым переполз с 1213 места на 1121 в глобальном рейтинге соревнований. Видимо в этом календарном году это последняя медалька😭
Стало быть примерно за год получилось:
Вползти в Competition Expert
Выступить на Мюнхенском каггл митапе
Дать кучу разборов прошедших соревнований
Зафармить серебро🥈 и три бронзы 🥉️️️️️️ в компетишнах
И самое главное: познакомиться с кучей мотивированныих и интересных людей
Тем самым переполз с 1213 места на 1121 в глобальном рейтинге соревнований. Видимо в этом календарном году это последняя медалька
Стало быть примерно за год получилось:
Вползти в Competition Expert
Выступить на Мюнхенском каггл митапе
Дать кучу разборов прошедших соревнований
Зафармить серебро
И самое главное: познакомиться с кучей мотивированныих и интересных людей
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20❤5🔥4🏆3🕊1 1 1
Тинькофф запустил игру в слова, и я в ней не мог проиграть
Правила просты: 6 попыток, слово из 5 букв.
Нужно предложить существительное.
Игра подсветит, каких букв нет, какие есть, но не на той позиции, и угаданные буквы.
Пример: правильное слово 'канат', а вы пишете 'набат' – последние две и вторая буква угаданы, первая присутствует, но не на той позиции, а 'б' исключается.🅰️
Я подумал и решил, что игра алгоритмически проходима, так что используйте мой скрипт. Он сильно помогает решать эту задачу.🤖 🤖 🤖
1. Скачиваем массив всех русских слов
2. Из них отбираем только те, что содержат нужные буквы
3. Из них вычищаем слова, где есть ненужные буквы
4. Фильтруем по знанию о позициях присутствующих букв
5. Оставляем только существительные
На выходе остается буквально несколько слов, из которых можно выбрать наиболее адекватное с наибольшим числом уникальных букв и отгадать слово дня. Вы великолепны!
В качестве компенсации желтому банку, подписывайтесь на канал @scitator_ai. Он ресерчит, иногда допиливает Catalyst(я туда даже контрибьютил) и вообще крутой человек из Тинькофф, его канал незаслуженно непопулярен
Маркетологи тинька, свяжитесь со мной, если вдруг хотите заплатить за интеграцию. Я не против
Правила просты: 6 попыток, слово из 5 букв.
Нужно предложить существительное.
Игра подсветит, каких букв нет, какие есть, но не на той позиции, и угаданные буквы.
Пример: правильное слово 'канат', а вы пишете 'набат' – последние две и вторая буква угаданы, первая присутствует, но не на той позиции, а 'б' исключается.
Я подумал и решил, что игра алгоритмически проходима, так что используйте мой скрипт. Он сильно помогает решать эту задачу.
1. Скачиваем массив всех русских слов
2. Из них отбираем только те, что содержат нужные буквы
3. Из них вычищаем слова, где есть ненужные буквы
4. Фильтруем по знанию о позициях присутствующих букв
5. Оставляем только существительные
На выходе остается буквально несколько слов, из которых можно выбрать наиболее адекватное с наибольшим числом уникальных букв и отгадать слово дня. Вы великолепны!
В качестве компенсации желтому банку, подписывайтесь на канал @scitator_ai. Он ресерчит, иногда допиливает Catalyst
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5❤2 1 1
CrackTinkoff.ipynb
5.5 KB
Скрипт для кракеров, инструкции внутри. Осторожно, внутри аж Pymorphy2, у новоявленных LLM экспертов может случиться шок
UPD:
Да вот вам коллаб просто https://colab.research.google.com/drive/1H8K_bHMcX935PDIzISvhMcJgt1DQnBo6?usp=sharing
UPD:
Да вот вам коллаб просто https://colab.research.google.com/drive/1H8K_bHMcX935PDIzISvhMcJgt1DQnBo6?usp=sharing
😁13🔥3👨💻1 1 1 1
Рубрика "идеи для изи контрибюшнов"
Есть такой майкрософтовский фреймворк для DL: torchscale.
Фреймворк предназначен для обучения PyTorch моделей на нескольких GPU эффективно и, в общем, для использования DataParallel "из коробки". Кстати, у них есть даже собственная реализация статьиLongSeq + VIT => LongVIT.
Решил поиграться с ним, но вот у меня он отказывался запускаться даже для примеров. Оказалось, господа инженеры забыли добавить часть зависимостей в requirements.txt, вероятно, потому что на их тестовом стенде всё уже было на месте.
Угадайте, кто за ними починил?
К чести мейнтейнеров этого фреймворка: после открытия пулреквеста не прошло и двух часов, как его влили в мастер. Сегодня ставлю внезапный лайк людям, подарившим мне бесконечную любовь к Windows 95🤍️
Мораль, как обычно: все ошибаются, и если вы что-то починили, поделитесь со всеми. Будете контрибьютором фреймворка с 3к звездочками. Ну, или хотя бы переименуйте что-нибудь в polars и разберитесь, как всё это работает. Обычно контрибьюшн гайды позволяют неплохо прокачаться в том, как нужно писать код.
Есть такой майкрософтовский фреймворк для DL: torchscale.
Фреймворк предназначен для обучения PyTorch моделей на нескольких GPU эффективно и, в общем, для использования DataParallel "из коробки". Кстати, у них есть даже собственная реализация статьи
Решил поиграться с ним, но вот у меня он отказывался запускаться даже для примеров. Оказалось, господа инженеры забыли добавить часть зависимостей в requirements.txt, вероятно, потому что на их тестовом стенде всё уже было на месте.
К чести мейнтейнеров этого фреймворка: после открытия пулреквеста не прошло и двух часов, как его влили в мастер. Сегодня ставлю внезапный лайк людям, подарившим мне бесконечную любовь к Windows 95
Мораль, как обычно: все ошибаются, и если вы что-то починили, поделитесь со всеми. Будете контрибьютором фреймворка с 3к звездочками. Ну, или хотя бы переименуйте что-нибудь в polars и разберитесь, как всё это работает. Обычно контрибьюшн гайды позволяют неплохо прокачаться в том, как нужно писать код.
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - microsoft/torchscale: Foundation Architecture for (M)LLMs
Foundation Architecture for (M)LLMs. Contribute to microsoft/torchscale development by creating an account on GitHub.
❤19🔥10👍3 2 2🥴1
Тут один английский сэр наконец созрел и поставил аватарку на свой канал. Это будет означать только одно:
Пора сработать моему смарткнотракту на привлечение к нему внимание.
У Сережи совершенно противоположный моему каналу контент:
Он пишет о том, как избегать мл в бизнесе и если избежать не удается- как его правильно сервить, чтобы никто по дороге не умер.
Лично наблюдал, как из нескольких стажеров он вырастил плотных и ответственных сенйорчиков, а потом под шум уехал работать в мету на E5.
https://news.1rj.ru/str/pragmaticml
Подписывайтесь, я сам вычитываю посты перед публикацией и за качество ручаюсь. Ну и с Сережей каждый день общаюсь😍 . Он даже поддался на мою агитацию и тоже воспользовался секретным сигналом, и тоже неудачно. Разбор кстати почему так вышло и как вообще секретный сигнал иногда работает- через час. А еще я вам наверно задолжал разбор open problems
Пора сработать моему смарткнотракту на привлечение к нему внимание.
У Сережи совершенно противоположный моему каналу контент:
Он пишет о том, как избегать мл в бизнесе и если избежать не удается- как его правильно сервить, чтобы никто по дороге не умер.
Лично наблюдал, как из нескольких стажеров он вырастил плотных и ответственных сенйорчиков, а потом под шум уехал работать в мету на E5.
https://news.1rj.ru/str/pragmaticml
Подписывайтесь, я сам вычитываю посты перед публикацией и за качество ручаюсь. Ну и с Сережей каждый день общаюсь
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7🔥3🌭2
Секретный сигнал не сработал, но вот идею за трюком я вам расскажу:
В некоторых соревнованиях скор не сильно превосходит случайное угадывание, и лучше всего паблик-сабмиты работают через невоспроизводимые паблик-ядра. Хитрые авторы этих ядер часто получают медали за обсуждение, но они не готовы делиться кодом обучения своих моделей, что не способствует развитию сообщества.Я всегда ставлю минусы таким ядрам, потому что такая дешевая гонка за кармой должна быть хоть как-то уравновешена 😈
Под конец некоторых соревнований можно заметить, что бронза заканчивается именно теми скорами, которые были представлены такими публичными решениями.
Kaggle так устроен, что если вы сабмитите одни и те же предикты с вашим другом, тот, кто послал первым, будет выше в рейтинге. Получается, что в бронзе и чуть ниже нее выстраивается ряд из сотен человек с абсолютно одинаковыми значениями предсказания. При этом они отсортированы по скорости, и, несмотря на вашу быстрейшую по эту сторону Миссисипи руку, где-то в Дели найдется стрелок еще быстрее. И его банда. Пусть этим непреодолимым пределом по метрике будет const. Им заканчивается бронза. Часть решений в бронзе представляют собой улучшения этого лучшего публичного решения, до которого не все дошли, или там просто немного подправили коэффициенты, чтобы быть выше на паблике. Допустим, такие решения заслуживают половину бронзовых медалей на лидерборде.
Итак, чтобы превзойти всех бандальерос в бронзе, нужно быть немного лучше, чем топовое публичное ядро, плюс еще немного. Запишем это как const. Но помним, что для того чтобы попасть в бронзу, достаточно превзойти константу.
Теперь представим, что мы добавим к этой константе случайную величину X с малым весом, например, из равномерного распределения. Тогда наш скор можно представить как const * 0.99 + 0.01 * X. Малый вес нужен, потому что функции качества оценивают это самое качество не вполне линейно, и при борьбе за тысячные на лидерборде локальная оценка уже не так точна, плотность объектов невелика, и случайности много. Так что можем моделировать всю разницу как случайную величину и в малой локальной области вокруг const полагать, что изменения линейны.
Рассмотрим два случая:
1. Вы подаете просто лучшее публичное решение и получаете const на лидерборде. Вы попадаете куда-то рядом с Делийскими стрелками, и вероятность получить медали стремится к нулю.
2. Вы подаете лучшее публичное решение с добавлением шума и получаете const + X на лидерборде и в прайвате. Вероятность P(const + X > const) около 0.5. У вас есть шанс случайно опередить конкурентов.
Для прайват-лидерборда у вас обычно есть два сабмита. Вероятно, вы помните из курса теории вероятностей, что P(X > 0) <= P(max(X_1, X_2) > 0). Для равномерного распределения на [-0.5, 0.5], например, можно показать, что P(max(X_1, X_2) > 0) = 0.75. Таким образом, если подать два раза топовое публичное ядро с шумом, то вероятность достичь бронзы уже больше 50% при идеальных условиях.
Как можно понять, что трюк может сработать и попробовать его использовать🧠 :
1. Сделать сложное собственное решение в соревновании. В UBC, например, очень большие изображения, и сложно предобработать их, поэтому создать хорошо работающее ядро сложно.
2. Понять, что вы не верите в свое решение.
3. Зайти в соревнование, но идеи закончились на последней неделе.
4. Топовое публичное решение не выглядит злонамеренным или случайным.
Но в этот раз трюк не сработал 💩:
1. Видимо, я выбрал переобученное ядро для базы. Возможно, степень его переобученности можно было бы определить по тому, насколько тонко подобраны коэффициенты, и добавить нормальную валидацию для TMA. Было два типа и один из них был хорошо представлен в прайвете/лб, но не в трейне
2. Не всегда трюк работает, ведь это случайность.
Если у вас есть свои размышления о том, какие распределения лучше использовать для моделирования и смешивания с предсказаниями, и как оптимизировать вес примешивания, делитесь ими в комментариях. Я не могу прийти к каким-то окончательным выводам. Кстати, этот трюк применялся даже для получения серебра, но не для меня.
В некоторых соревнованиях скор не сильно превосходит случайное угадывание, и лучше всего паблик-сабмиты работают через невоспроизводимые паблик-ядра. Хитрые авторы этих ядер часто получают медали за обсуждение, но они не готовы делиться кодом обучения своих моделей, что не способствует развитию сообщества.
Под конец некоторых соревнований можно заметить, что бронза заканчивается именно теми скорами, которые были представлены такими публичными решениями.
Kaggle так устроен, что если вы сабмитите одни и те же предикты с вашим другом, тот, кто послал первым, будет выше в рейтинге. Получается, что в бронзе и чуть ниже нее выстраивается ряд из сотен человек с абсолютно одинаковыми значениями предсказания. При этом они отсортированы по скорости, и, несмотря на вашу быстрейшую по эту сторону Миссисипи руку, где-то в Дели найдется стрелок еще быстрее. И его банда. Пусть этим непреодолимым пределом по метрике будет const. Им заканчивается бронза. Часть решений в бронзе представляют собой улучшения этого лучшего публичного решения, до которого не все дошли, или там просто немного подправили коэффициенты, чтобы быть выше на паблике. Допустим, такие решения заслуживают половину бронзовых медалей на лидерборде.
Итак, чтобы превзойти всех бандальерос в бронзе, нужно быть немного лучше, чем топовое публичное ядро, плюс еще немного. Запишем это как const. Но помним, что для того чтобы попасть в бронзу, достаточно превзойти константу.
Теперь представим, что мы добавим к этой константе случайную величину X с малым весом, например, из равномерного распределения. Тогда наш скор можно представить как const * 0.99 + 0.01 * X. Малый вес нужен, потому что функции качества оценивают это самое качество не вполне линейно, и при борьбе за тысячные на лидерборде локальная оценка уже не так точна, плотность объектов невелика, и случайности много. Так что можем моделировать всю разницу как случайную величину и в малой локальной области вокруг const полагать, что изменения линейны.
Рассмотрим два случая:
1. Вы подаете просто лучшее публичное решение и получаете const на лидерборде. Вы попадаете куда-то рядом с Делийскими стрелками, и вероятность получить медали стремится к нулю.
2. Вы подаете лучшее публичное решение с добавлением шума и получаете const + X на лидерборде и в прайвате. Вероятность P(const + X > const) около 0.5. У вас есть шанс случайно опередить конкурентов.
Для прайват-лидерборда у вас обычно есть два сабмита. Вероятно, вы помните из курса теории вероятностей, что P(X > 0) <= P(max(X_1, X_2) > 0). Для равномерного распределения на [-0.5, 0.5], например, можно показать, что P(max(X_1, X_2) > 0) = 0.75. Таким образом, если подать два раза топовое публичное ядро с шумом, то вероятность достичь бронзы уже больше 50% при идеальных условиях.
Как можно понять, что трюк может сработать и попробовать его использовать
1. Сделать сложное собственное решение в соревновании. В UBC, например, очень большие изображения, и сложно предобработать их, поэтому создать хорошо работающее ядро сложно.
2. Понять, что вы не верите в свое решение.
3. Зайти в соревнование, но идеи закончились на последней неделе.
4. Топовое публичное решение не выглядит злонамеренным или случайным.
Но в этот раз трюк не сработал 💩:
1. Видимо, я выбрал переобученное ядро для базы. Возможно, степень его переобученности можно было бы определить по тому, насколько тонко подобраны коэффициенты, и добавить нормальную валидацию для TMA. Было два типа и один из них был хорошо представлен в прайвете/лб, но не в трейне
2. Не всегда трюк работает, ведь это случайность.
Если у вас есть свои размышления о том, какие распределения лучше использовать для моделирования и смешивания с предсказаниями, и как оптимизировать вес примешивания, делитесь ими в комментариях. Я не могу прийти к каким-то окончательным выводам. Кстати, этот трюк применялся даже для получения серебра, но не для меня.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍7❤2😁2🤔1🥴1 1
#openproblems
Давайте немного разбираться с Open Problems, где не удалось взять золото, но все равно все очень довольны.
Начнем с краткого описания соревы:
Компания-организатор занимается тем, что пытается оптимизировать проведение дорогостоящих экспериментов с препаратами на живых, но отделенных от самих созданий клетках🧪 (in vitro) 🧪 . У клеток много разных типов и препарат лечащий одну клетку мог спокойно убить все клетки другого типа в том же организме. Взяли много таких экспериментов, в том числе контрольные. Можно увидеть на картинке подробности того, как проводился тест
И того на вход у нас есть:
1. Химическая формула препарата (строка в формате SMILES)
Например вот так записывается Л-аланин: N[C@@H](C)C(=O)O
Сейчас пойду завтракать и его есть
2. Тип клетки, которая будет воздействовать на препарат (просто название-категориалка)
Пример T cell CD8+, надеюсь к меня их очень много. Они убивают рак
Все, больше ничего нет. Есть только таргеты. Таргеты забавные:
Для каждого эксперимента замеряли экспрессию генов и прогнали ее через эконометрически-биоинформатическую модель-пакет из R под названием Limma (Linear Models for Microarray Data) сравнивая с контрольным экспериментом. Взяли diff p-value изменений каждого гена и их логарифмировали и умножили все это дело на знак изменения (уменьшение- минус, увеличение плюс).
Решайте задачу господа! Через час пост про то, как 6 и 7 место смело ворвались в топ и всех порвали.
Давайте немного разбираться с Open Problems, где не удалось взять золото, но все равно все очень довольны.
Начнем с краткого описания соревы:
Компания-организатор занимается тем, что пытается оптимизировать проведение дорогостоящих экспериментов с препаратами на живых, но отделенных от самих созданий клетках
И того на вход у нас есть:
1. Химическая формула препарата (строка в формате SMILES)
Сейчас пойду завтракать и его есть
2. Тип клетки, которая будет воздействовать на препарат (просто название-категориалка)
Все, больше ничего нет. Есть только таргеты. Таргеты забавные:
Для каждого эксперимента замеряли экспрессию генов и прогнали ее через эконометрически-биоинформатическую модель-пакет из R под названием Limma (Linear Models for Microarray Data) сравнивая с контрольным экспериментом. Взяли diff p-value изменений каждого гена и их логарифмировали и умножили все это дело на знак изменения (уменьшение- минус, увеличение плюс).
Решайте задачу господа! Через час пост про то, как 6 и 7 место смело ворвались в топ и всех порвали.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10🏆2🦄1
#openproblems
Мужчина с седьмого места был прямолинеен и верил в лучшее:
Он взял статью о том, как учить эмбединги для препаратов и... выучил их.
Для трехмерной матрицы (экспрессия гена, позиция в клетке, тип клетки) градиентным спуском учится факторизация, а затем поверх этих эмедов уже учится взаимодействие гена в клетке с препаратом уже другой сетью.
Прием можно представить как нормализацию для каждого триплета взаимодействий, а затем доучивание того, как всю эту великолепную микровселенную меняет препарат.
Пошлем kudos человеку, который не стакал 10к неинтерпретируемых моделей (как мы)
Мужчина с седьмого места был прямолинеен и верил в лучшее:
Он взял статью о том, как учить эмбединги для препаратов и... выучил их.
Для трехмерной матрицы (экспрессия гена, позиция в клетке, тип клетки) градиентным спуском учится факторизация, а затем поверх этих эмедов уже учится взаимодействие гена в клетке с препаратом уже другой сетью.
Прием можно представить как нормализацию для каждого триплета взаимодействий, а затем доучивание того, как всю эту великолепную микровселенную меняет препарат.
Пошлем kudos человеку, который не стакал 10к неинтерпретируемых моделей (как мы)
👍22 3😍2🔥1👏1😁1🥴1
#openproblems
Муж с 6 места, наоборот, поступил в лучших традициях Александра Геннадьевича:
Разобрался с пакетом Limma на R:
1. Обучил Limma на трейне
2. Предсказал тест
3. Понял, что цифры на трейне не совсем сходятся
Понял, что Limma была обучена на трейне и тесте одновременно (так правильно, это же эконометрическая модель!), а он учился только на трейне.
4. Вспомнил два ключевых слова и одно секретное(среднее, дисперсия и таргет-лик) и домножил на коэффициенты параметры линейной модели, чтобы цифры сходились.
5. Посчитал обратное преобразование из получившейся модели
Таким образом он получил пайплайн восстановления оригинальных экспрессий генов и получил великолепное свойство для таргетов:
Теперь таргеты были не из островершинного распределния(что бы не говорили, бог хранит гдр-война Королева за то, что заставил меня помнить все каноничные названия на русском языке для этих штук) , а из вполне себе нормального. Но эта моделька хорошо перформила на private test, на лб она работала средне. Тем ценнее вера в себя и в свою схему валидации!
Поэтому на всякий противопожарный случай, автор сблендил решения еще и с моделью, учащейся на обычные таргеты.
Из интересных штук, которые можно себе унести в любые соревнования/продакшны: учился в обеих моделях на Smooth L1 loss и клянется, что это сильно помогло на лб и валидации, еще и стабильности добавило.
Муж с 6 места, наоборот, поступил в лучших традициях Александра Геннадьевича:
Разобрался с пакетом Limma на R:
1. Обучил Limma на трейне
2. Предсказал тест
3. Понял, что цифры на трейне не совсем сходятся
Понял, что Limma была обучена на трейне и тесте одновременно (так правильно, это же эконометрическая модель!), а он учился только на трейне.
4. Вспомнил два ключевых слова и одно секретное
5. Посчитал обратное преобразование из получившейся модели
Таким образом он получил пайплайн восстановления оригинальных экспрессий генов и получил великолепное свойство для таргетов:
Теперь таргеты были не из островершинного распределния
Поэтому на всякий противопожарный случай, автор сблендил решения еще и с моделью, учащейся на обычные таргеты.
Из интересных штук, которые можно себе унести в любые соревнования/продакшны: учился в обеих моделях на Smooth L1 loss и клянется, что это сильно помогло на лб и валидации, еще и стабильности добавило.
👍10❤8🔥3 2