Aspiring Data Science – Telegram
Aspiring Data Science
385 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
#chess #stats

Нашёл свою старую шахматную аналитику по рейтингам FIDE, вдруг кому надо подобное. Цель была в определении "восходящих звёзд" и особенно "подозрительно быстро восходящих звёзд".

https://github.com/fingoldo/FideRatings/blob/master/FideRatings.ipynb
🔥1
#ml #featureengineering #geofeatures #advicewanted

Есть задачка на генерацию геофичей. Юзер логинится в приложение в разных точках города, Известны его координаты при логине и метки времени. Какие бы интересные фичи построить из графа его перемещений?

Пока что нашел вот такую прекрасную серию статей

https://towardsdatascience.com/graph-machine-learning-with-python-pt-1-basics-metrics-and-algorithms-cc40972de113

https://towardsdatascience.com/graph-machine-learning-with-python-part-3-unsupervised-learning-aa2854fe0ff2

https://towardsdatascience.com/graph-machine-learning-with-python-part-4-supervised-semi-supervised-learning-d66878161b79
👍1
#surverys

Кто может посоветовать сервис для проведения опросов? Гугл формс, конечно, бесплатный, но по ссылке нельзя передать параметры (например, хэш юзера или кампании), и он не собирает ip, а если бы собирал, можно было бы у респондента не спрашивать страну.
СурвейМанки, с другой стороны, задирает цены, $34/mo и это только при оплате сразу за год, а так ещё выше.
#ml #graphs #convolution #templatematching #spectral #laplacian #fourier #gcn #chebyshev #chebnets #cayleynets #graphsage #gin

Оказывается, ну почти всё в нашей жизни можно представить как граф. Так вот внезапно ты становишься объктом исследования науки и учёных, о которых ничего и не знал.

https://youtu.be/Iiv9R6BjxHM
👍2
#recommendations

Попробовал трипадвизор, он советует кафешки, которые тупо не работают. Ну зато хоть размял свои мощные мышцы.
#payments

Уважаемые подписчики из России, мне удалось открыть карту в зарубежном банке, если у вас из-за войны/санкций такая же аховая ситуация с оплатой зарубежных облачных сервисов (AWS, GCP, etc), какая была у меня недавно, но очень надо, можете написать в личку для помощи с оплатой. По себе знаю, что фиг кто поможет.
🔥6
#ml #geofeatures #python

Отличная глава о подготовке геофичей

https://geographicdata.science/book/notebooks/12_feature_engineering.html
#featureengineering #supervisedlearning #standardpractice

Недавно был материал о стандартном подходе к решению ML-задач с разметкой (не хочется использовать термин "с учителем", нет там учителя/супервизора), хотелось бы подробнее остановиться на создании признаков.
Часто бывает, что в модельной задаче есть целые группы признаков, которые относятся к определённой сущности: пользователю, компании, активностям, внешней среде, локациям. Часть из них текстовые, часть графовые. Это всё ещё часто осложняется временной структурой, и надо думать об агрегатах этих всех признаков по некоторым скользящим окнам. Если всё это богатство слепить в одну таблицу, начинают буксовать любые алгоритмы, не говоря уже про требования к железу. Как не сойти с ума во время такой инженерии и добиться осмысленных результатов в рамках бюджета?
Пока я остановился на таком подходе.
1) определяем Cross-Validation schema и метрики
2) настраиваем библу для трекинга, типа neptune или mlflow
3) начинаем с DummyClassifier/Regressor (DummyLags, если у вас timeseries-задача) со всеми доступными strategy. Лучший по метрикам становится baseline-ом.
4) работаем индивидуально по группам, относящимся к отдельным классам сущностей (юзеры, компании, и т.п.), начиная с самых простых
5) также можно работать по признакам, объединённым типом данных, например, все текстовые. это позволит ещё и логично считать межпризнаковые связи, например, расстояния в разных пространствах.
6) на данной группе построенных признаков обучаемся, фиксируем CV метрики, делаем анализ важности признаков, фиксируем барчарт важностей и список как артефакт модели и фичерсета. важность признаков в группе позволяет понять, куда копать дальше, в какие дебри углубляться
7) если это временной ряд, надо строить окна. строим коррелограмму, ориентируемся на пики графика, начинаем с небольших окон.
8) когда все группы пройдены, анализируем важности признаков и принимаем решение о том, в какую сторону углубляться, повторяем цикл с более "тонкими" признаками
9) теперь объединяем группы, пробуем обучаться на всех сразу, и используя Feature Selector (по-прежнему на CV).
10) если остаётся время, пробуем отношения фичей из разных групп, их добавляем к основному датасету и прогоняем тоже через пункт 9

Теперь смотрим в свой трекинг, выбираем лучший вариант по соотношению сложность/качество. Страдает ли этот метод от подгонки? Конечно, ведь мы, принимая решения о новых фичах, заглядываем в метрики. Можно ли этого избежать? Не знаю. Но можно зарезервировать часть данных под OOS, и финальное решение принимать только по этому набору, это уменьшит смещение.
👍1
#featureengineering #hamilton

Новая библа для вдумчивого, покрытого тестами создания признаков. Каждый признак - функция. Драйвер выполняет функции в том числе на системах оркестрации типа prefect, airflow. Есть удобные декораторы метаданных, валидации. Наверное, это хорошо для энтерпрайза, где командная работа, и важно понимание, как что считается и кто за что в ответе. Также обещают масштабируемость (Ray, Dask, Spark).


https://www.youtube.com/watch?v=oQLEkjUNq0U&ab_channel=PyData
👍1
#fantasy #subwaytosally #kwerner #thecrowking

- Возьми вот, упругость тропок,
Возьми стынь и глубь колодцев,
И острый свет над покосами,
Закат – хлад излома дня.

- Не надо мне твоих тропок,
И крови сухих колодцев,
И окон, что в спину косятся,
Закатов, что тишь хранят.
Вороний король на троне
Из девятисот колосьев,
Из тысяч мышиных косточек
В степи ночной ждёт меня.

- Возьми тогда моё имя.
И будут – густые кроны,
Сыночки, что в доме возятся.
И счастье. И навсегда.

- Не нужно мне твоё имя,
И яблонь густые кроны,
И дети. Прозрачней воздуха
Кошмарное «навсегда».
В виски мои рвётся иней.
Вороний король в короне
Из сотни гадючьих хвостиков,
Не любит, не любит ждать.

***

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

Иди вслед за жуткой песенкой,
Его остроклювых пасынков –
Наследников;
Вдоль по просекам
Спеши же, пока тепло.
Смотри, как орут и бесятся,
Над выселками, над пасекой,
Пока в один миг ты просто так
Не встанешь сам на крыло.

Тогда-то мы сможем встретиться,
Тогда-то мы сможем свидеться,
В десятках мышиных косточек,
Да в склёванных колосках.
И будут сыны и доченьки,
И будет закат над гнёздышком,
И будет летать над просекой
Осипшее
наше
«кар».

К. Вернер

https://www.youtube.com/watch?v=49tMqYbNXWA&ab_channel=xXPayongXx
1👍1
#chatgpt

"Как сообщает сайт Microsoft, более 1000 клиентов облачного сервиса уже подали заявки на использование наиболее передовых ИИ-моделей, включая Dall-E 2, GPT-3.5 и Codex. Использование вычислительных мощностей Azure, сообщает компания, обеспечивает подобным технологиям самые широкие перспективы.

Клиенты Azure OpenAI Service могут интегрировать ChatGPT в собственные приложения, предусмотрено даже наделение уже существующих ботов новыми способностями, возможно использование в колл-центрах и автоматизация обработки жалоб. Стоимость услуги составляет $0,002 за обработку 1 токена — это элементы, на которые разбивается текст при работе. Плата за использование начнёт взиматься с 13 марта."

https://servernews.ru/1083203
ANNs timeline
1
Нашла отличное руководство о том, как избежать распространенных ошибок при обработке данных, оценке и сравнении ml моделей:

https://arxiv.org/abs/2108.02497

Написано, что гайд предназначен для исследователей, но на самом деле он выглядит полезным и для практиков.

Мне особенно понравилось то, что здесь разобрано много неочевидных сценариев того, как информация из тестового множества может протечь в тренировочное. Из всего перечисленного новым для меня был сценарий протекания информации через мозг того, кто делает модель (см. совет 2.2).
А совет 3.7 я бы ещё обобщила следующим образом: если в пайплайне используется более одной обучаемой сущности - например, если на данных сначала обучается одна модель, а потом фичи из ее латентного пространства либо её выход используются в другой, нужно следить за тем, чтобы ни одна обучаемая сущность в пайплайне не имела доступа к тестовым данным ни в каком виде (для мозга инженера придется ослабить это требование: ему всё-таки может потребоваться проверить, что данные в тесте выглядят адекватно, хотя лучше избежать соблазна слишком сильно в них всматриваться - см. п.2.2). В частности, для всех обучаемых моделей в пайплайне разбиение на трейн/тест/валидацию должно быть одинаковым.
Как-то раз у меня были очень неприятные протечки данных из-за того, что я не обратила на этот аспект достаточно внимания.

#учебные_материалы
👍2