Aspiring Data Science – Telegram
Aspiring Data Science
386 subscribers
465 photos
12 videos
12 files
2.15K links
Заметки экономиста о программировании, прогнозировании и принятии решений, научном методе познания.
Контакт: @fingoldo

I call myself a data scientist because I know just enough math, economics & programming to be dangerous.
Download Telegram
#ml #featureselection #featureengineering #mrmr #sulov

Наткнулся на новую библиотечку по созданию и отбору признаков. Гордятся реализацией MRMR (Minimum Redundancy Maximum Relevance) и SULOV (Searching for Uncorrelated List of Variables).

https://github.com/AutoViML/featurewiz
❤‍🔥1👍1
#ml #dask #daskml

Продумываю переход на распределённое обучение с Dask, и внезапно оказывается, что там вроде бы и нет (распределённого) FS (feature selection), OR (outlier removal), TT (target transformer). По крайней мере, в официальной доке нигде упоминаний нет, и непонятно, что будет, если их попробовать с конвейером dask-ml, скорей всего, не сработает. Есть только HPT (Hyper Parameters Tuning) и ES (Early Stopping). В Spark MlLib есть хотя бы FS:
VectorSlicer
RFormula
ChiSqSelector
UnivariateFeatureSelector
VarianceThresholdSelector
#mlflow #bastards

Некоторые фреймворки поражают. В MLFlow в 2023 году НЕТ простой аутентификации. Разворачиваешь свой МЛ-сервер, желая сотрудничать с коллегами из других городов и стран? Будь готов, что твои эксперименты, модели, графики увидит весь мир, ведь парни из mlflow не смогли добавить простую функциональность даже типа логин/пароль. К тому же, если бэк хранится в СУБД, это ещё и прямая дорожка к SQL-иньекциям... Защитить сервер всё же можно, но это надо морочиться с установкой nginx, файлами конфига, документацией. Ну не мудаки ли? Хотя, с другой стороны, это же бесплатно, мудак тут скорее я.
💯2
Forwarded from New Yorko Times (Yury Kashnitsky)
ML system design в реальных проектах – 200 блог-постов
#links_with_intro #ml

Команда Evidently (наверняка знаете Эмели Драль, она с кофаундером Elena Samuylova пилит решение для мониторинга и тестирования ML-моделей) собрала около 200 блог-постов про ML system design в реальных проектах – от Netflix, Doordash, Booking и т.д. Кажется неплохим источником знаний для “курса по Data Science, которого нет”, про который я рассказывал раньше. Я не большой фанат ссылок на в целом классные подборки, которые добавляешь в закладки, а потом забываешь про них навсегда. Но в данном случае действительно крутой ресурс, в том числе для подготовки к собеседованиям.

Сюда же можно добавить еще 10 case studies, собранных Chip Huyen в книге “Designing Machine Learning Systems” (вот мой пост в том числе про эту книгу). Там каждый из 10 кейсов еще вкратце пересказан.

Про видео-интервью про ML system design и книгу Валерия Бабушкина & Арсения Кравченко, думаю, тут все и так в курсе.
#numpy #codegems #rint

Оказывается, есть в нампай такое вот округление к ближайшему целому:

preds = cat_cls.predict(X_test)
pred_labels =
np.rint(preds)
#astronomy #ml

"Учёные давно ищут источники высокоэнергичных частиц, которые прилетают из космоса на Землю. Их энергии таковы, что они должны рождаться вне пределов нашей галактики, чтобы они смогли преодолеть местные магнитные поля и вырваться в межзвёздное пространство. К сожалению, те же магнитные поля решительно изменяют траектории заряжённых частиц (протонов и заряженных атомных ядер) и это не позволяет отследить их до источника.

Другое дело нейтрино. Они почти не взаимодействуют с веществом и магнитными полями, поскольку имеют ничтожную массу и не имеют заряда. Поэтому нейтрино движутся по прямой траектории и могут указать на источник своего происхождения. Этим источником могут быть следы, которые высокоэнергичные частицы оставляют на своём пути, когда они врезаются в пыль и газ на своей траектории. Одним из продуктов таких столкновений является пара кварк-антикварк, известная как пион. Распад заряженных пионов, в свою очередь, порождает высокоэнергетическое электронное нейтрино. Проследив за траекторией этих нейтрино можно выйти на источник высокоэнергичных космических частиц.

Но есть ещё одна проблема — отсеять неуловимые высокоэнергетическое нейтрино из фона местных и таких же слабо регистрируемых нейтрино. В частности, необходимо было подавить фон атмосферных нейтрино (мюонных нейтрино). Вручную и с помощью обычных алгоритмов это не удавалось сделать много лет, пока на помощь не пришло машинное обучение. С помощью обучающихся алгоритмов учёные смогли заново проанализировать 10 лет наблюдений за нейтрино на установке IceCube во льдах Антарктиды.

Новый метод анализа позволил включить в набор данных в 20 раз больше событий с лучшей информацией о направлении, и это дало ошеломляющий результат. Учёным открылась новая карта Вселенной и, в частности, новый взгляд на нашу галактику Млечный Путь. Со статистической значимостью около 4,5 сигма (чуть-чуть не дотянули до пятёрки, что означало бы безоговорочное признание в научной среде открытия) были указаны источники высокоэнергичных нейтрино в центре нашей галактики, а не где-то там в невообразимой дали. Это даёт намёк на зарождение частиц с колоссальной энергией в центре нашей галактики, а не где-то за её пределами. В центре Млечного Пути происходит что-то невообразимое по выбросам энергии, и этот процесс оказалось возможным рассмотреть и, в перспективе, изучить."

https://3dnews.ru/1089230/v-tsentre-nashey-galaktiki-proishodyat-neponyatnie-no-nevoobrazimo-moshchnie-protsessi-na-eto-ukazali-neytrino
#ml #cpu #inference #tflight #paddlepaddle #onnx #openvino #tvm

По итогу рекомендуют onnx runtime, ускорение прогнозов в среднем от 20% до 400%. TVM интересен поддержкой множества форматов и компиляцией моделек напрямую в системные .dll и .so файлы.

https://www.youtube.com/watch?v=FHt0QtqQpxE
#kaggle #ml #competitions

Интересное преобразование таргета, корень 4-й степени, не слышал раньше про такое. Также fair loss в xgboost, усреднение весов нейросетей (по достижении равновесия), обучение SVR и kNN на подвыбрках. Исправление предсказаний xgboost-а это просто жесть, какой фигнёй только эти кэгглеры не занимаются )

https://www.youtube.com/watch?v=p7ArDjMImiI
Forwarded from Katser
📚 Хочу немного дополнить свой пост на vc "Источники для изучения data science и machine learning (книги, курсы и не только)”, состоящий из двух частей:
• часть про курсы, материалы и тд — стоит прочитать и посмотреть все, если нет какой-то хорошей базы, например, из института или хороших платных курсов (ФКН ВШЭ, физтех и др.). Курсы и материалы из тех, что рекомендую смотрел все, но не все очень внимательно, обычно беру из курса то, что нужно.
• часть про книги — не считаю, что все надо прочитать, но если надо подтянуть или разобраться в какой-то подобласти, то можно брать книжки из списка. Книги читал не все, но непрочитанные лежат в списке to read и ждут своей очереди.

Learning by doing
Я убежден, что во время изучения data science и machine learning надо сосредоточиться на практике как можно раньше (как только получается что-то делать) и учиться по типу "learning by doing".
В начале пути далеко не обязательно знать, что "под капотом" у алгоритмов и методов. Зависит от специфики работы и задач. Вот теорвер и матстат действительно часто нужны в работе, например, для анализа данных, для анализа результатов алгоритмов, для дизайна экспериментов и тд.

Как можно получать практику?
• Стажировки, работа, реальные проекты. Очевидно.
• Хакатоны, соревнования по анализу данных. Самой распространенной площадкой для соревнований является kaggle.com. Там еще есть датасеты, курсы и много полезных примеров кода и блокнотов, решающих самые разные задачи.
• Важной и интересной практикой являются тренажеры. Вот 2 известных сервиса, которыми я пользовался сам:
💻 для программирования - https://leetcode.com
🔍 для анализа данных - https://www.stratascratch.com
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Katser
📝Пост ради картинки!

Так как моя научная деятельность и диссертация связаны с алгоритмами обнаружения аномалий на основе глубокого обучения, я пересмотрел десятки обзоров и сотни (если не тысячи) работ с новыми методами и алгоритмами за последние несколько лет. Вывод примерно один: глубокое обучение лучше классического мл и экспертных/эвристических подходов и в этой области (работа с временными рядами, диагностика и поиск аномалий). То есть понятно, что и мой фокус смещен на выборку статей с глубоким обучением, да и в целом тренд в последние годы такой. При этом не помню статей, где предлагали новый метод, и он не был бы хоть в каких-то условиях лучше бейзлайна или SOTA моделей — иначе зачем вообще эта статья? Последняя мысль, кстати, очень спорная, но об этом другой раз. Вообщем отсюда и взялось, что глубокое обучение бьет все классические алгоритмы.

А как на самом деле?
На практике в проектах ты не всегда успеваешь дойти и повозиться с новыми сетками (и так надо с данными разобраться, с разметкой, бумажными журналами, с постановкой задачи, бейзлайны, бизнес-логика, физика и технология процесса и тд). В лучшем случае после бейзлайна без мл, простых постановок задач и линейных моделей, деревянных моделей, эвристик ты доходишь до рекуррентных сетей простой архитектуры (пара последовательных LSTM слоев или автоэнкодер с LSTM слоями, или даже FF автоэнкодер). Даже простые сетки не всегда хорошо работают, а более сложные иногда и отучить нормально не получается. Это происходит из-за проблем в данных (доклад, статья), небольших объемов, проблем с трансфером знаний даже между единицами оборудованием одной модели.
Поэтому по-прежнему классические алгоритмы, экспертные правила и эвристики активно используются как минимум в промышленности.

Неужели научные статьи врут?
Не совсем так. Я выделяю большую проблему с публичными данными и бенчмарками, на которых в статьях показаны результаты. Совсем мало публичных качественных датасетов в области временных рядов, в области аномалии, в области промышленности и технических систем. Поэтому и в работах часто показаны результаты в очень ограниченных условиях, на каких-то синтетических или сгенерированных данных.

Интересное исследование
Хочу поделиться одним обзором работ поиска аномалий во временных рядах 2022 года. Сравнения были проведены для 71 (очень много!) алгоритма на 976 датасетах (это всего 23 бенчмарка, но согласитесь, что 900+ звучит солиднее!). Картинка из этой статьи с многообразием и классификацией алгоритмов будет в следующем посте. Мне она так понравилась, что теперь использую ее во всех докладах по теме. Нам интересны выводы по итогам сравнения, дальше цитата из статьи:
“we found that deep learning approaches are not (yet) competitive despite their higher processing effort on training data. We could also confirm that “simple methods yield performance almost as good as more sophisticated methods”. Still, no single algorithm clearly performs best.”
То есть по-прежнему нет серебряной пули или явных лидеров как в классическом ML с их бустингами, да и превосходство глубокого обучения пока не подтверждается. Так что подход как и раньше — перебор алгоритмов, пока один не окажется лучше для вашей конкретной задачи и ваших конкретных данных, а опыт и экспертные/доменные знания все еще важен и может бить большие модели. Но, думаю, это не на долго.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Katser
📉Сегодняшние достижения в области ИИ просто невозможно представить без больших объемов данных (для обучения DALL-E использовались 250 млн пар картинка-описание, это очень много!). Вот области компьютерного зрения (CV) и обработки естественного языка (NLP) в основном не страдают от недостатка больших датасетов (корпусов текстов, наборов изображений и тд). Но в области временных рядов ситуация не такая радужная.

При этом не всегда важно собирать огромный датасет из реальных примеров текстов и изображений, хотя это и идеальный сценарий. Иногда можно аугментировать данные, то есть искусственно создать или синтезировать примеры, что может помочь в отсутствии больших датасетов. Понаучней определение аугментации возьмем из обзора: “The basic idea of data augmentation is to generate synthetic dataset covering unexplored input space while maintaining correct labels.”
Если рассмотреть аугментацию на примере изображений, то одним из простейших методов будет геометрическое преобразование: зеркальное отражение картинки (по вертикали или горизонтали) или поворот на 90/180/270 градусов. Это уже увеличивает количество доступных данных для обучения в 2 и более раза. В текстах можно переставлять слова в предложении. Подробнее об аугментации этих типов данных, включая подходы, код и библиотеки, можно почитать по ссылкам: CV и NLP

Но вернемся к временным рядам: и здесь опять все не очень хорошо. Аугментировать их сложнее, потому что, датасеты не такие большие и сильно отличаются между собой в зависимости от задачи и доменной области. Более того, в научных статьях постоянно пишут, что область аугментации временных рядов недоисследована. Это косвенно подтверждается и малым количеством open-source разработок для аугментации временных рядов в противовес CV и NLP. Но есть пара неплохих обзоров (раз, два) методов аугментации временных рядов. Обзоры совсем свежие — 2021-22 годов, немного по-разному классифицируют методы. В последнем, например, выделяют 3 основные группы:
• Классические преобразования (представлены на картинке в следующем посте)
• VAE
• GAN
Для деталей стоит почитать оригинальный обзор.

Из инструментов для аугментации временных рядов на python встречал только два:
• [3,4k звезд на гитхабе] https://github.com/timeseriesAI/tsai
• [300 звезд на гитхабе] https://github.com/arundo/tsaug
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Katser
Иллюстрация классических методов аугментации временных рядов к предыдущему посту.
#ml #fun

Ахаха, вот это я понимаю, серьёзный подход к менторству. Аж прослезился!
😁3
О куколдах-хейтерах
Итак, что я вкладываю в понятие «куколд». Это инертный, ленивый участник, он все бы понаблюдать, мало тестестерона, мало действия, мало энергии. Живет с мамой или с женой, которая ему как мама. Зарабатывает мало, потому что ему «мешают» или «его не ценят». Любит косплей. Какой-нибудь хентай. Еще не вышел из детства. Днем работает в Лаборатории Омегабанка, а вечером передевается в служанку. Много боится. Все время. Действий мало, мыслей много, отсюда депрессия (да, ребята, если много мыслей и мало действий это всегда так), очень сильно завидует. Да, часто куколд и есть хейтер. Сам нихрена не делает, а завидует много и любопытный, на десятки каналов может быть подписан. Он типа хочет быть «в курсе». Еще он сильно орет, что все должно быть бесплатно, что все должно расшариваться свободно. Они ж чего, красавцы, в бусти оформили бесплатную подписку и ждут халявы. А ты сам-то попробуй создать, попробуй напиши код, запиши видео, а потом требуй. А еще он пишет плохие комментарии. Часто девушкам или мужчинам, которых считает ниже/глупее себя. Например, плохие комментарии на канале Анастасии Никулиной, из-за чего она даже приостановила канал. Валерию Бабушкину-то фигню всякую боязно написать, со штангой в переулке встретит, а девушке можно. А она бесплатный контент делала. Кстати, народ, кто на нее подписан, было бы здорово написать ей теплые слова поддержки. Мне-то тоже много такие твари гадят («ты все у американцев стащил и за свое выдаешь»), но я хоть платный контент делаю. В группе Machine Learning https://news.1rj.ru/str/datasciencecourse одно время был такой типичный куколд, который все время хейтил Карпова за какие-то мелкие недочеты. Посмотрел я этого хейтера, довольно серый преподаватель, преподающий в одном из израильских университетов, довольно плохо объясняющий предмет, ролики на YouTube по 15-20 просмотров. Стало все понятно. Ну вот мне здесь ставят какашечки, дислайки. В общем, суть куколдизма – это нереализованная энергия, откладывание, неудовлетворение и часто хейт. Жестко я сегодня? Возможно. Но куколды должны знать свое место.
2👍1