Forwarded from data hate
Как-то давно Яндекс проводил митам, где собирался рассказывать про беспилотники. Даже обещал что-то показать. Из-за ажиотажа и нежелания того, чтобы на митап попали журналисты было тестовое задание. Причем в отличие от других митапов Яндекса это были не совсем простые вопросы на 5 минут, а достаточно сложная задача.
Заключалась она в следующем. Есть “игра” или “среда”, которая представляет собой двумерное поле из клеток. Есть клетки, по которым можно двигаться, есть стены, через которые нельзя двигаться. В этом пространстве двигается ровер - робот доставщик. На поле спавнятся заказы. Эти заказы нужно было быстро доставлять. Чем быстрее доставил, тем больше очков получил. Если не успел доставить заказ за указанное время, то получил 0 очков. Это соревнование проводилось на платформе Яндекс.Контест. Топ N участников по очкам попадали на митап.
Как решать задачу? Для начала нужно представить поле в виде графа. А дальше уже дело техники. Проблема была в том, что из библиотек был только pandas и numpy и ничего для графов. Не было у них библиотеки networkx или аналога. Нужно было писать самому. Пришлось залезть в исходники networkx и по их мотивам реализовать граф и поиск кратчайшего пути. В итоге я написал свой mini-networkx и реализовал свой бейзлайн для движения ровера. Проходили не все тест кейсы, где-то падал по времени, где-то алгоритм ломался при нескольких одновременных заказах. Но где-то в топе я оказался. Кто написал мне на почту с предложением купить этот код. Но я не продался.
В итоге я попал в заветные топ N, но не смог пойти на митап, так как уехал в Сочи.
Заключалась она в следующем. Есть “игра” или “среда”, которая представляет собой двумерное поле из клеток. Есть клетки, по которым можно двигаться, есть стены, через которые нельзя двигаться. В этом пространстве двигается ровер - робот доставщик. На поле спавнятся заказы. Эти заказы нужно было быстро доставлять. Чем быстрее доставил, тем больше очков получил. Если не успел доставить заказ за указанное время, то получил 0 очков. Это соревнование проводилось на платформе Яндекс.Контест. Топ N участников по очкам попадали на митап.
Как решать задачу? Для начала нужно представить поле в виде графа. А дальше уже дело техники. Проблема была в том, что из библиотек был только pandas и numpy и ничего для графов. Не было у них библиотеки networkx или аналога. Нужно было писать самому. Пришлось залезть в исходники networkx и по их мотивам реализовать граф и поиск кратчайшего пути. В итоге я написал свой mini-networkx и реализовал свой бейзлайн для движения ровера. Проходили не все тест кейсы, где-то падал по времени, где-то алгоритм ломался при нескольких одновременных заказах. Но где-то в топе я оказался. Кто написал мне на почту с предложением купить этот код. Но я не продался.
В итоге я попал в заветные топ N, но не смог пойти на митап, так как уехал в Сочи.
Forwarded from data hate
Есть такая библиотека pandas-profiling. Её суть в том, что ты берешь датафрейм и она выдает тепе EDA, то есть графики, гистограммы картинки про этот датафрейм по одному клику. Как понятно из названия датафрейм, который она принимает на вход - это pandas dataframe.
Много лет назад я искал аналог для spark'a. Тогда я обнаружил заглушку для библиотеки с названием spark-profiling https://pypi.org/project/spark-profiling. Там было написано To be released. С тех пор я каждые пол года захожу на эту страницу. Жду хоть каких-то обновление. а там все так же:
Много лет назад я искал аналог для spark'a. Тогда я обнаружил заглушку для библиотеки с названием spark-profiling https://pypi.org/project/spark-profiling. Там было написано To be released. С тех пор я каждые пол года захожу на эту страницу. Жду хоть каких-то обновление. а там все так же:
Released: Apr 27, 2020
Project denoscription: To be releasedPyPI
spark-profiling
Generate profile report for spark DataFrame
Forwarded from data hate
Продолжение истории с одного из прошлых мест работы.
Суббота, день. Я бегу по беговой дорожке. Не думаю о работе, погрузился в свои мысли, смотрю на солнечный пейзаж в окне. И тут получаю сообщение от бота c алертами. Проблема при монтировании вольюма. И не просто сообщение, а сообщение, которое тегает меня. А теганье через @ продировается через все мьюты. И ты не можешь его не заменить.
В итоге я вышел из этого чата с алертами. Потом правда пришлось незаметно возвращаться, но это уже другая история.
Я прочитал в одном курсе про system design очень важные слова. Алертинг - это всегда призыв к действию. Иначе он не нужен. Как же это точно. Зачем мне этот алерт. Я не шарю что этот алерт значит, надо ли что-то чинить. А если и надо, то я не смогу, потому что я занимаюсь своими делами, И не должен потому что этом мой выходной. А дежурства тогда у нас не были предусмотрены.
Суббота, день. Я бегу по беговой дорожке. Не думаю о работе, погрузился в свои мысли, смотрю на солнечный пейзаж в окне. И тут получаю сообщение от бота c алертами. Проблема при монтировании вольюма. И не просто сообщение, а сообщение, которое тегает меня. А теганье через @ продировается через все мьюты. И ты не можешь его не заменить.
В итоге я вышел из этого чата с алертами. Потом правда пришлось незаметно возвращаться, но это уже другая история.
Я прочитал в одном курсе про system design очень важные слова. Алертинг - это всегда призыв к действию. Иначе он не нужен. Как же это точно. Зачем мне этот алерт. Я не шарю что этот алерт значит, надо ли что-то чинить. А если и надо, то я не смогу, потому что я занимаюсь своими делами, И не должен потому что этом мой выходной. А дежурства тогда у нас не были предусмотрены.
Forwarded from data hate
Случай с одного из прошлых мест работы. У нас был пайплан в airflow, который работал каждый час. Однажды у нас этот пайплан сломался. Я уже не помню почему - главное что упал прод. Узнали мы о том, что все упало только в воскресенье. То есть спустся 2 дня. Почему-то не сработал мониторинг, который должен был написать нам в телеграм, что все плохо.
Не сработал он из-за того, что в процессе нижнее подчеркивание сломало сообщение об ошибки. А появилось это сообщение из-за того, что у нас появился новый сотрудник с _ в нике в телега. А в критичных случаях телеграм бот должен тегал всех DS'ов.
Потом я этому коллеге в шутку написал: "из-за тебя сломался мониторинг"
Не сработал он из-за того, что в процессе нижнее подчеркивание сломало сообщение об ошибки. А появилось это сообщение из-за того, что у нас появился новый сотрудник с _ в нике в телега. А в критичных случаях телеграм бот должен тегал всех DS'ов.
Потом я этому коллеге в шутку написал: "из-за тебя сломался мониторинг"
Forwarded from data hate
На 2 курсе бакалавриата у нас был выбор: пойти на обычное программирование или на интересное. В интересном было много курсов, и я выбрал программирование на LabVIEW. LabVIEW - язык программирования на основе блок диаграмм. Но его главная особенность - возможность быстро подключиться к любой железке и быстро набросать интерфейс для взаимодействия с ней. В конце курса каждый студент должен был сделать проект. Мой проект назывался “задача слежения”. Заключалась она в следующем. Имелась камера Logitech Orbit. Она могла поворачиваться влево вправо и наклоняться вверх вниз.
Можно попробовать выбрать объект и следить за ним. Если он не в центре, то необходимо повернуть камеру в нужную сторону. Сегодня эта задача не звучит сложной, но как это сделать если на дворе 2013 год, а код нужно писать на языке LabVIEW. К счастью, все не так плохо, как кажется. Была готовая библиотека, которая по небольшой картинке находит расположение максимально похожее на заданное изображении. За давностью лет я не помню как она работала, но там точно и речи не шло про нейронные сети.
Еще удалось реализовать фичу расчета расстояния от камеры до точки. Делалась это на основе того как смещалось положение объекта в кадре в зависимости от ворота камеры. Тут с со слежением было попроще, потому что окружение объекта не двигалось, а менялся только ракурс. Из-за сильного люфта была очень большая погрешность измерения расстояния. Но отличить 30 см от 1 метра, и метр от 3 метров было реально.
С тех пор к языку LabVIEW больше никогда не возвращался, но еще долго писал его в резюме.
Можно попробовать выбрать объект и следить за ним. Если он не в центре, то необходимо повернуть камеру в нужную сторону. Сегодня эта задача не звучит сложной, но как это сделать если на дворе 2013 год, а код нужно писать на языке LabVIEW. К счастью, все не так плохо, как кажется. Была готовая библиотека, которая по небольшой картинке находит расположение максимально похожее на заданное изображении. За давностью лет я не помню как она работала, но там точно и речи не шло про нейронные сети.
Еще удалось реализовать фичу расчета расстояния от камеры до точки. Делалась это на основе того как смещалось положение объекта в кадре в зависимости от ворота камеры. Тут с со слежением было попроще, потому что окружение объекта не двигалось, а менялся только ракурс. Из-за сильного люфта была очень большая погрешность измерения расстояния. Но отличить 30 см от 1 метра, и метр от 3 метров было реально.
С тех пор к языку LabVIEW больше никогда не возвращался, но еще долго писал его в резюме.
Forwarded from data hate
Есть фраза от которой у меня все полыхает внутри: “История не терпит сослагательного наклонения”. Мол, зачем задумываться, что было бы если бы Наполеон не напал, если бы мы не победили в Сталинградской битве и т.д. Это не случилось вот мы и не знаем, что бы было поэтому и не стоит про это говорить.
Кто там не должен терпеть? Давайте посмотри на определение истории как науки.
История — наука, изучающая всевозможные источники о прошлом для того, чтобы установить последовательность событий, объективность описанных фактов и сделать выводы о причинах событий.
Как сделать выводы о причинах событий не рассуждая о том куда бы все пришло, если бы не все сложилось иначе. Посмотрим например на Сталинградскую битву. Что было бы если бы мы её проиграли? Предположим, что тогда мы бы проиграли войну. Тогда делаем вывод о причине события: война выиграна, в том числе, благодаря победе в этой битве.
Или если мы считаем, что и без этого была бы одержана победа, то мы вычеркиваем эту битву из причин победы в войне.
Это чем-то похоже на методы оценки экономических эффектов, даже при отсутствии AB теста. Это непросто. Приходится опираться на некоторые предположения и делать допущения. Но можно употребить сослагательное наклонение и сказать, к примеру, если бы не эта рекламная кампания, то продажи были бы такие. Это ничем принципиально не отличается от если бы в истории.
Кто там не должен терпеть? Давайте посмотри на определение истории как науки.
История — наука, изучающая всевозможные источники о прошлом для того, чтобы установить последовательность событий, объективность описанных фактов и сделать выводы о причинах событий.
Как сделать выводы о причинах событий не рассуждая о том куда бы все пришло, если бы не все сложилось иначе. Посмотрим например на Сталинградскую битву. Что было бы если бы мы её проиграли? Предположим, что тогда мы бы проиграли войну. Тогда делаем вывод о причине события: война выиграна, в том числе, благодаря победе в этой битве.
Или если мы считаем, что и без этого была бы одержана победа, то мы вычеркиваем эту битву из причин победы в войне.
Это чем-то похоже на методы оценки экономических эффектов, даже при отсутствии AB теста. Это непросто. Приходится опираться на некоторые предположения и делать допущения. Но можно употребить сослагательное наклонение и сказать, к примеру, если бы не эта рекламная кампания, то продажи были бы такие. Это ничем принципиально не отличается от если бы в истории.
Forwarded from DevFM
This media is not supported in your browser
VIEW IN TELEGRAM
Список матюков
Недавно была задача на фильтрацию всяких непотребств в продукте. Начали думать, где бы взять хороший, полный словарик, а если ещё будут английские слова, так вообще замечательно.
И мы узнали, что, оказывается, самые разнообразные матюки можно найти в Steam.
В комментах приложим файлики для изучения и общего развития на русском и английском языках. А также файлики со словами-исключениями, чтобы избегать ложного срабатывания.
Для особо пытливых другие языки можно найти в Windows в Steam, в папочке resource.
#edu
Недавно была задача на фильтрацию всяких непотребств в продукте. Начали думать, где бы взять хороший, полный словарик, а если ещё будут английские слова, так вообще замечательно.
И мы узнали, что, оказывается, самые разнообразные матюки можно найти в Steam.
В комментах приложим файлики для изучения и общего развития на русском и английском языках. А также файлики со словами-исключениями, чтобы избегать ложного срабатывания.
Для особо пытливых другие языки можно найти в Windows в Steam, в папочке resource.
#edu
⚡2
#wisdom
Here’s Mark Twain:
“There’s no such thing as a new idea. We simply take a lot of old ideas and put them into a sort of mental kaleidoscope. (…) We keep making new combinations indefinitely, but they are the same old pieces of coloured glass that have been in use through all the ages”.
Here’s Mark Twain:
“There’s no such thing as a new idea. We simply take a lot of old ideas and put them into a sort of mental kaleidoscope. (…) We keep making new combinations indefinitely, but they are the same old pieces of coloured glass that have been in use through all the ages”.
👍1
#python #codegems #yan
Юджин Ян показывает интересные лучшие практики Питона при разработке своих библиотек.
Кратко - используйте super().init() в методе init базового класса, чтобы работало множественное наследование.
Почаще используйте миксины для модульности добавления функционала к объектам.
Используйте относительные импорты from .utils.validation import check_X_y.
__init__.py можно использовать, если провели рефакторинг кода и вынесли что-то в отдельный модуль, а ломать совместимость не хочется.
conftest.py можно использовать для хранения глобальных фикстур (к которы можно обращаться из разных тестовых модулей).
https://eugeneyan.com/writing/uncommon-python/
Юджин Ян показывает интересные лучшие практики Питона при разработке своих библиотек.
Кратко - используйте super().init() в методе init базового класса, чтобы работало множественное наследование.
class BaseAdapter:
"""The Base Transport Adapter"""
def __init__(self):
super().__init__()
Почаще используйте миксины для модульности добавления функционала к объектам.
Используйте относительные импорты from .utils.validation import check_X_y.
__init__.py можно использовать, если провели рефакторинг кода и вынесли что-то в отдельный модуль, а ломать совместимость не хочется.
conftest.py можно использовать для хранения глобальных фикстур (к которы можно обращаться из разных тестовых модулей).
https://eugeneyan.com/writing/uncommon-python/
eugeneyan.com
Uncommon Uses of Python in Commonly Used Libraries
Some off-the-beaten uses of Python learned from reading libraries.
#yan #leadership #management #psychology
Советы, как эффективно продвигать свою точку зрения в коллективе.
https://eugeneyan.com/writing/influencing-without-authority/
Советы, как эффективно продвигать свою точку зрения в коллективе.
https://eugeneyan.com/writing/influencing-without-authority/
eugeneyan.com
Influencing without Authority for Data Scientists
Show them the data, the Socratic method, earning trust, and more.
✍2
#mlstories
Эту работу можно рассматривать как антипример ) Взяли метрикой R2, нет CV, вместо него единичное разбиение на train/test, нет нормального FS, вместо него какой-то странный неясно по какому датасету выполненный отбор из 500+ 7 признаков с наивысшей (линейной?) корреляцией с таргетом. Veery fishy!
https://www.youtube.com/watch?v=vPdw9I3_kCY
Эту работу можно рассматривать как антипример ) Взяли метрикой R2, нет CV, вместо него единичное разбиение на train/test, нет нормального FS, вместо него какой-то странный неясно по какому датасету выполненный отбор из 500+ 7 признаков с наивысшей (линейной?) корреляцией с таргетом. Veery fishy!
https://www.youtube.com/watch?v=vPdw9I3_kCY
YouTube
Предсказание химических сдвигов ядер азота в органических соединениях для ЯМР-исследований
Выступление слушателя группы НС262 Евгения Андреевича Коваленко на конкурсе курсовых работ для шестого потока
Тема курсовой работы: "Предсказание химических сдвигов ядер азота в органических соединениях для проведения ЯМР-исследований"
Исследование выполнено…
Тема курсовой работы: "Предсказание химических сдвигов ядер азота в органических соединениях для проведения ЯМР-исследований"
Исследование выполнено…
#cuda #c_plus_plus #thrust #codegems
Показывают, как оптимизировать куда-ядро (расчёт гистограммы и блок внимания).
https://www.youtube.com/watch?v=V89I4B1krZ8
Показывают, как оптимизировать куда-ядро (расчёт гистограммы и блок внимания).
https://www.youtube.com/watch?v=V89I4B1krZ8
YouTube
Григорий Алексеев | Custom CUDA Kernels: Practical Approaches to Low-Level Optimizations
Спикер: Григорий Алексеев, AI Team in perplexity.ai
Тема доклада: Расскажет об опыте написания собственного CUDA-kernel-а для оптимизации Flash Attention
Data Fest 2024: https://ods.ai/events/datafest2024
Презентацию к докладу Вы можете скачать в треке OptimalDL:…
Тема доклада: Расскажет об опыте написания собственного CUDA-kernel-а для оптимизации Flash Attention
Data Fest 2024: https://ods.ai/events/datafest2024
Презентацию к докладу Вы можете скачать в треке OptimalDL:…
#mlstories #nevergrad
Интересно использование пост-оптимизатора и разрешение конфликта моделей. Проект с 3+ дата-сайентистами окупился за полгода.
https://www.youtube.com/watch?v=LtIKx7aNMGE
Интересно использование пост-оптимизатора и разрешение конфликта моделей. Проект с 3+ дата-сайентистами окупился за полгода.
https://www.youtube.com/watch?v=LtIKx7aNMGE
YouTube
Александр Верхоломов | Разработка рекомендательной системы для производства аммиака
Спикер: Александр Верхоломов, АО МХК "Еврохим", Senior DataScientist
Data Fest 2024: https://ods.ai/events/datafest2024
Презентацию к докладу Вы можете скачать в треке секции ML in Manufacturing: https://ods.ai/tracks/df24-ml-in-manufacturing
______
Наши…
Data Fest 2024: https://ods.ai/events/datafest2024
Презентацию к докладу Вы можете скачать в треке секции ML in Manufacturing: https://ods.ai/tracks/df24-ml-in-manufacturing
______
Наши…
#featureselection #featureextraction
Простенькое, но приятное интро в FS/FX.
https://www.youtube.com/watch?v=rxiORUw-nKs&
Простенькое, но приятное интро в FS/FX.
https://www.youtube.com/watch?v=rxiORUw-nKs&
YouTube
Основы машинного обучения, лекция 16 — отбор признаков
Курс "Основы машинного обучения", майнор "Интеллектуальный анализ данных", НИУ ВШЭ
Лектор — Евгений Соколов
Страничка курса: http://wiki.cs.hse.ru/Основы_машинного_обучения
Все видео курса: https://www.youtube.com/playlist?list=PLEwK9wdS5g0rco8Fan1hA…
Лектор — Евгений Соколов
Страничка курса: http://wiki.cs.hse.ru/Основы_машинного_обучения
Все видео курса: https://www.youtube.com/playlist?list=PLEwK9wdS5g0rco8Fan1hA…
Forwarded from epsilon correct
Правильный HPO: Vizier
Сегодня коллеги наканецта заопенсорсили тулсет для оптимизации гиперпараметров Vizier, который, в отличие от множества альтернатив, адекватно работает. Вот тут можно почитать блогпост о нем, вот тут можно сразу прыгнуть в гитхаб.
Надеюсь, опен-сорсная версия окажется такой же полезной, как и внутренний продукт. К слову, он продается в Google Cloud, и теперь не совсем понятно, как эти два продукта будут сосуществовать (classic Google).
Сегодня коллеги наканецта заопенсорсили тулсет для оптимизации гиперпараметров Vizier, который, в отличие от множества альтернатив, адекватно работает. Вот тут можно почитать блогпост о нем, вот тут можно сразу прыгнуть в гитхаб.
Надеюсь, опен-сорсная версия окажется такой же полезной, как и внутренний продукт. К слову, он продается в Google Cloud, и теперь не совсем понятно, как эти два продукта будут сосуществовать (classic Google).
🔥1
#biology #neurons #brain #conciousness #ethics
"Некоторые люди в коме находятся в сознании и ученым даже удалось установить контакт, задавая вопросы и получая ответы "да-нет". Это пугающее открытие ставит новые этические дилеммы - что, если человек в коме испытывает постоянную боль, может ли он принимать решение об отключении систем жизнеобеспечения?"
https://www.youtube.com/watch?v=K7czo-edP2w
"Некоторые люди в коме находятся в сознании и ученым даже удалось установить контакт, задавая вопросы и получая ответы "да-нет". Это пугающее открытие ставит новые этические дилеммы - что, если человек в коме испытывает постоянную боль, может ли он принимать решение об отключении систем жизнеобеспечения?"
https://www.youtube.com/watch?v=K7czo-edP2w
YouTube
Учёным удалось связаться с людьми в коме
Некоторые люди в коме находятся в сознании и ученым даже удалось установить контакт, задавая вопросы и получая ответы "да-нет". Это пугающее открытие ставит новые этические дилеммы - что, если человек в коме испытывает постоянную боль, может ли он принимать…
🌚1