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
#hardware #intel #gaudi

Чипы Gaudi3 добавлены в IBM Cloud. Я так и не добрался до их реального тестирования. Таблицы,что даёт Интел, выглядят подкрученными. В любом случае, конкуренция потребителю на пользу.

https://servernews.ru/1103065
Forwarded from asisakov
Книжный фундамент по машинному обучению

Впереди выходные. А значит есть время для интересного чтива. Если вы уже прочли трилогию «Задачи трёх тел», прочитали всех Стругацких и не знаете, на что же ещё накинуться, то я нашёл для вас решение!

Рассмотрим ключевые книги по ML (кстати, ни одну из них я не осилил до конца 😈):

1. "Pattern Recognition and Machine Learning" — Christopher Bishop

Основы распознавания образов, байесовские сети, графовые модели, методы SVM. Неплохая теоретическая база, хорошо раскрывается на примерах.
Конечно, может быть сложновато читать на английском языке, но для особо пытливых существует перевод. Хотя бы раз попробовать почитать эту книгу - база. Рекомендовано для глубокого погружения в теорию ML.

2. "Elements of Statistical Learning" — Trevor Hastie, Robert Tibshirani, Jerome Friedman

Статистические методы обучения, линейные методы, оценка моделей, бустинги. Для тех, кто предпочитает глубокий статистический анализ. Ну и понятно, что просто так без подготовки не осилить.
Зато можно понять математическую основу алгоритмов обучения.

3. "Machine Learning: A Probabilistic Perspective" — Kevin Murphy

Вероятностные модели, байесовский вывод. Немного даже теории информации. По классике, примеры на практике и есть даже введение в рекомендательные системы того времени!

Вы наверно спросите: «А как же русские книги?» А я отвечу, вот пожалуйста, но только одна:

4. "Глубокое обучение" — С. Николенко, А. Кадурин, Е. Архангельская

Классно, что написана на русском понятном языке. Здесь рассмотрены концепции и методы глубокого обучения, включая нейронные сети, свёрточные и рекуррентные сети. Допом были методы оптимизации. Тут основной акцент на глубоком обучении, поэтому методов классического машинного обучения не так много. Но это единственная зачитанная до дыр книга не из переведённых, которая норм зашла 🧠
В свободном доступе так сразу быстро не нашёл, но особо пытливые могут попробовать поискать и дальше первой ссылки выдачи.

Прошу обратить внимание, что я выделил фундаментальные по моему мнению книги. Хорошего вам погружения в материалы, ну и делитесь своим топом книг в комментарии. А среди вас я знаю точно найдутся те, кому есть что докинуть.
(только книги, а не статьи!)

#books
Please open Telegram to view this post
VIEW IN TELEGRAM
#python #books

Ссылки на посты по книжке "Л. Рамальо. Python – к вершинам мастерства: Лаконичное и эффективное программирование" (в оригинале - Fluent Python, 2nd Edition). Содержат материал, который показался мне интересным и вошёл в категорию #codegems.

Затрагиваются механизмы сопоставления (match), классы данных и их аналоги, аннотирование типами, инструменты itertools, работа с классами/ООП, генераторы, контекстные менеджеры, асинхронка, дескрипторы классов.

Пробегитесь по темам, если есть незнакомые слова, возможно, есть смысл перечитать актуальную доку Питон )

1. [], {} и ()/match/ChainMap/MappingProxyType
2. class init/dict/json
3. unicode: NFC/NDF, strxfrm/NamedTuple/dataclass
4. more dataclass/typehints
5. weakrefs/functional programming/more typehints
6. Any/|/TypeVar/TypeAlias/typing.Protocol
7. positional-only/closures/singledispath/decorator via class
8. getattr/reduce via initializer/zip,zip_longest/principle of failing fast
9. goose typing/vurtual subclass/Hashable/ABC/Decimal
10. UserDict, UserList, UserString/MRO/mixin/get_annotations
11. (sub)generator/coprogram/type: ignore/with/@contextmanager
12. else in for,while,try/scientific sins/GIL/getswitchinterval/asyncio
13. asyncio.to_thread/asyncpg/asyncio.Semaphore/async with/keyword.iskeyword
14. property/vars/metaprogramming
15. class denoscriptors

Если решите читать книгу - ТОЛЬКО в оригинале, русский перевод плох.
1
Forwarded from Data Secrets
Media is too big
VIEW IN TELEGRAM
У CEO Anthropic Дарио Амадея вышло новое интересное интервью. Краткое содержание:

➡️ По мнению Дарио, в будущем большие и мощные ИИ-модели будут порождать и координировать более мелкие для помощи в выполнении задач. Этот процесс будет похож на создание роевого интеллекта, и необходимость человеческого участия в нем будет близка к нулю.

➡️ Если масштабирование не выйдет на плато и мы не наткнемся на ранее не учтенные трудности, то, учитывая реалии, модель стоимостью 100 миллиардов долларов должна иметь интеллект уровня лауреата Нобелевской премии.

➡️ Ну и классика: ИИ может увеличить скорость научных открытий в 100 раз. Тем самым мы можем пройти путь, соразмерный прогрессу 20-го и 21-го века вместе взятых, всего за несколько лет.

Полностью интервью можно посмотреть здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
#gpt #llms #ai

"Испугался роботов".

Есть такой учёный, астроном, Владимир Сурдин. Классно рассказывает об астрономии, читает много лекций, в т.ч. не просто научно-популярных для широкой аудитории, но и на высоком техническом уровне для студентов-астрономов. При этом задаёт аудитории вопросы, на которые та зачастую затрудняется найти ответ.

Ну я возьми и напиши ему, мол, Владимир Георгиевич, используете ли современный ИИ в работе, если нет, попробуйте, может помочь на многих фронтах. На что он ответил: "Обращаться к ИИ за новыми идеями - значит перестать тренировать свою голову."

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

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

Ну, думаю, всё, человек сейчас в изумлении ответит: Ого, вот это инструмент, ОНО НАС ПОНИМАЕТ! Как же это ускорит мою работу по подготовке планов выступлений, иллюстраций, кода для вычислений, перевода, генерации новых идей! В ответ он придрался к тому, что в саммари о нём была указана неверная дата рождения, а астероид на фотографии оказался не сигарообразным (это и правда был косяк генерации, в промпте я просил сигарообразный. возможно, английский промпт сработал бы лучше, или дело просто в том, что генерация картинок пока в бете), да и шутки плоские. И заключил: "Нет, с роботами мне обсуждать нечего".

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

И я с ужасом подумал, батюшки, а я же этого человека считал отличным кандидатом на должность главы Роскосмоса, или чего-то подобного. А он, оказывается, отвергает прогресс, не понимает, боится его.

Пришла такая мысль: неужели это общая закономерность, и на управляющих должностях НЕЛЬЗЯ держать людей старше лет 50? Неужели они все цепляются за прошлое и не способны к инновациям?
👍2
#principles #wisdom #philosophy

Т.к. в бложике есть новые подписчики, потрачу место, но напомню важные, на мой взгляд, принципы, которыми стараюсь руководствоваться в работе.

Из них для меня самые значимые

Innovation over safe bets
Experiment over opinion
Long-term over short term


Я только сейчас осознал, что в нашем языке эти принципы реализованы в пословицах:

"Кто не рискует, тот не пьёт шампанского"
"Лучше один раз увидеть, чем сто раз услышать"
"Лучше с умным потерять, чем с дураком найти".

Самые сложно дающиеся мне это

Focus over context switching
Fast feedback over silent failure.

Есть такой принцип fail fast, с другой стороны, Джеймс Cаймонс добавлял: .. but don't give up too easily.
#hbo #series #veep

Прорекламирую сериальчик The Veep (Вице) про первую женщину вице-президента США.

Тонкий юмор, шикарная актёрская игра.

Сценарий со смыслом, о человеческих пороках и двуличности политики.
👍1
#astronomy

"Американский экспериментальный космический аппарат Advanced Composite Solar Sail System (ACS3) отправился на земную орбиту 24 апреля этого года, и сейчас операторы миссии подтвердили, что ему удалось успешно развернуть солнечный парус в космосе, сообщили в NASA.

Испытания ACS3 будут проводиться в течение ближайших недель — инженеры проведут наблюдение за манёвренностью паруса в космосе. Регулируя орбиту, они получат данные, которые смогут использоваться в проектировании и эксплуатации будущих миссий аппаратов с солнечными парусами. Сейчас ACS3 находится на орбите примерно вдвое выше МКС. Если посмотреть на него сверху, он выглядит как квадрат размером почти в половину теннисного корта — около 80 м²."

https://3dnews.ru/1110290/nasa-uspeshno-razvernulo-solnechniy-parus-na-orbite
#intel #management

Похоже, с назначением Гелсингера в своё время не угадали (

"По словам источников, со временем Тан начал разочаровываться в подходе к контрактному производству и бюрократической культуре Intel, не склонной к риску. Также он назвал раздутым штат компании. Согласно финансовому отчёту за последний квартал, в Intel работало 125 300 сотрудников по всему миру. Как сообщается, Патрик Гелсингер (Patrick Gelsinger), возглавивший Intel в 2021 году, добавил не менее 20 000 сотрудников в штат к 2022 году.

По словам источников, вопрос сокращения рабочих мест был одним из поводов для напряжённости между Таном и другими членами совета директоров. Taн хотел конкретных сокращений, включая менеджеров среднего звена, которые не вносят вклад в инженерные усилия Intel. По его словам, команды по некоторым проектам были в пять раз больше, чем выполняющие сопоставимую работу у конкурентов, таких как Advanced Micro Devices (AMD)."

https://3dnews.ru/1110085/sovet-direktorov-intel-pokinul-odin-iz-uchastnikov-izza-nesoglasiya-s-planom-ozdorovleniya-kompanii
#sklearn #codegems

Прошло больше года, и только сейчас в сайкит-лёрн замёрджили ГОТОВУЮ ветку, которая втрое ускоряет расчёт classification_report.

Adrin Jalali закодил решение в течение суток с момента, как я нашёл дублирующие вызовы в sklearn. Остальное время заняли бюрократические согласования.

Вывод: open-source это страшная бюрократия, не надейтесь, что вам что-то быстро исправят, делайте сами. Вместе с тем, не ленитесь создавать хотя бы багрепорты, чтобы следующие поколения DS-ов хоть немного могли почиллить 😅

Примерно с той же эффективностью можно оставлять багрепорты или запросы функциональности для catboost - да, сделают в течение года-полутора (что по сути вечность), но я таким путём за последние N лет пропихнул улучшений 4-5 туда.
🔥3
Forwarded from asisakov
Что перепробовать для улучшения моделей

Сегодня на работе обсуждали мл модельку и накидали возможные варианты ее улучшения. Предположим, что все возможные данные мы собрали и обучаем логистическую регрессию по специфичным соображениям.
Не думаю, что предложения прям сильно улучшат метрики, но
думаю это будет полезно проговорить. Далее оригинальный текст от меня.

Какие варианты улучшения предложили:

1. Рассматриваем корреляцию наших признаков с таргетом, а так же попарно
2. При работе с OHE (one-hot-encoding):
2.1. Удаляем один из сгенерированных признаков, чтобы убрать мультиколлинеарность
2.2. Смотрим корреляцию друг с другом
2.3. Вместо OHE для дней недели предполагаем sin/cos с fourier_order = 2, либо делаем нолики или единички для выходной/не выходной
2.4. Пробуем WOE-преобразование для категориальных переменных
2.5. Делаем проверку на VIF-score для того, чтобы избежать мультиколлинеарности в наших признаках, которые попадают в модель
3-4 дропнул
5. (опционально) Предполагаем дополнительную генерацию степеней признаков не дискретно = 1.1, 1.2, 1.3
6. При работе с фолдами в кросс-валидации рассматриваем пристально бакеты, где сильно разлетелись по метрикам на тесте (сравниваем распределения и средние у каждого признака и таргета, тут можно применить PSI)
7. Для проверки на важность рассматриваем следующее:
7.1. Накатываем Катбуст / lightgbm:
7.1.1. Смотрим важность по GAIN
7.1.2. Смотрим важность по SHAP-values
7.1.3. Смотрим важность по permutation importance
7.1.4. Отбираем фичи, которые попали в условный топ-N каждого из способов и предполагаем, что они самые крутые - далее смотрим, насколько сильно их скор разлетается
7.2. Делаем Recursive Feature Elimination
7.3. На сформированном финальном списке признаков пробуем найти дата-лики на будущее и смотрим просто по логике и выкидываем те, которые совсем не подходят.
7.4. (опционально) Если фичей меньше N, делаем полный перебор по всем вариантам применения этих признаков

Дополнительно про отбор признаков тут
Про генерацию признаков для временных рядов тут

Уверен, это вам точно пригодится при работе над вашими модельками. В комментариях кидайте ваши предположения по тому, что я мог упустить.

@asisakov_channel

#ml
👍1
Forwarded from Aleksandr
Возможно кэпство, но тем не менее:
- в доставшихся мне проектах частенько не дропаются константные/квазиконстантные (где > 99% значений одинаковые) фичи + дублированные фичи
- для снижения кардинальности кат фичей можно сливать редкие категории в одну "Others", удобно делать это вот этой тулзой. В целом рекомендую использовать feature-engine, в ней оч много преобразователей, делающих много рутинной работы
- автобиннинг: бьет вещ фичи на интервалы, на которых достигается максимальная дискр. способность фичи. Кат фичи он разбивает на группы по тому же критерию, опять-таки умный способ снижения кардинальности. Доступно несколько параметров, регулирующих размер и кол-во бинов , которые можно подбирать по CV. Для логрега это прям классическая схема: биннинг -> WOE-преобразование. Есть 2D вариант, когда бины "двумерные"
- еще пример использования автобиннинга для кат фичей: генерим парные фичи, например, "сем положение + тип занятости", получим сильно "кардинальную" кат фичу, но если ее прогнать через автобиннинг, то иногда такая побиненная пара у меня неожиданно выходила в топ, при том, что отдельные ее компоненты были слабыми. Тут главное не переобучиться и не делать парные фичи с очень большой кардинальностью
- все знают, что надо удалять корр. фичи, но как? Допустим, есть группа из фичей, у которых попарная корреляция больше 0.8, как и сколько из них убирать? Тут возможны варианты:
- Сортируем по значимости/корр с таргетом, оставляем топ-N, остальные дропаем. Способ измерения важности, N и порог корреляции подбираем по CV
- Видел и такую экзотику, как ужатие этой группы при помощи PCA, правда сам не пробовал. Если групп много, то для каждой будет свой PCA транформер (выглядит конечно громоздко)
- про важность фичей: пока что катбустовый встроенный механизм показал себя адекватнее всего
👍2