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
#python #codegems #fs #expandvars

Пошёл тестировать BAMT. Пример из руководства выпал с ошибкой, смотрю, он пытается создать файл

C:\Users\Roman\BAMT\Nodes_data

Посмеялся, думаю, щас заведу им issue чтоб по дефолту заменили на какое-нить

%%LOCALAPPDATA%%\aimclub\BAMT\Nodes_data

Но сначала сам заменил локально, потестить:


PermissionError Traceback (most recent call last)
~\AppData\Local\Temp\ipykernel_3236\1667079916.py in <module>
----> 1 bn.fit_parameters(data)

C:\ProgramData\Anaconda3\lib\site-packages\bamt\networks\base.py in fit_parameters(self, data, dropna, n_jobs)
489
490 if not os.path.isdir(STORAGE):
--> 491 os.makedirs(STORAGE)
492
493 # init folder

C:\ProgramData\Anaconda3\lib\os.py in makedirs(name, mode, exist_ok)
213 if head and tail and not path.exists(head):
214 try:
--> 215 makedirs(head, exist_ok=exist_ok)
216 except FileExistsError:
217 # Defeats race condition when another thread created the path

C:\ProgramData\Anaconda3\lib\os.py in makedirs(name, mode, exist_ok)
213 if head and tail and not path.exists(head):
214 try:
--> 215 makedirs(head, exist_ok=exist_ok)
216 except FileExistsError:
217 # Defeats race condition when another thread created the path

C:\ProgramData\Anaconda3\lib\os.py in makedirs(name, mode, exist_ok)
213 if head and tail and not path.exists(head):
214 try:
--> 215 makedirs(head, exist_ok=exist_ok)
216 except FileExistsError:
217 # Defeats race condition when another thread created the path

C:\ProgramData\Anaconda3\lib\os.py in makedirs(name, mode, exist_ok)
223 return
224 try:
--> 225 mkdir(name, mode)
226 except OSError:
227 # Cannot rely on checking for EEXIST, since the operating system

PermissionError: [WinError 5] Access is denied: '%LOCALAPPDATA%'

Оказалось, питон на винде, в отличие от Проводника, не поддерживает сокращения типа %LOCALAPPDATA%. Получается, перед работой с файловой системой надо сначала любой путь пропускать через os.path.expandvars в качестве лучшей практики.

А лучше всего место для хранения настроек, раз уж локальная директория не подходит, получить с помошью platformdirs :

>>> from platformdirs import *
>>> appname = "SuperApp"
>>> appauthor = "Acme"
>>> user_data_dir(appname, appauthor)
'C:\\Users\\trentm\\AppData\\Local\\Acme\\SuperApp'
>>> user_data_dir(appname, appauthor, roaming=True)
'C:\\Users\\trentm\\AppData\\Roaming\\Acme\\SuperApp'
>>> user_cache_dir(appname, appauthor)
'C:\\Users\\trentm\\AppData\\Local\\Acme\\SuperApp\\Cache'
>>> user_log_dir(appname, appauthor)
'C:\\Users\\trentm\\AppData\\Local\\Acme\\SuperApp\\Logs'
>>> user_documents_dir()
'C:\\Users\\trentm\\Documents'
>>> user_downloads_dir()
'C:\\Users\\trentm\\Downloads'
>>> user_pictures_dir()
'C:\\Users\\trentm\\Pictures'
>>> user_videos_dir()
'C:\\Users\\trentm\\Videos'
>>> user_music_dir()
'C:\\Users\\trentm\\Music'
>>> user_desktop_dir()
'C:\\Users\\trentm\\Desktop'
>>> user_runtime_dir(appname, appauthor)
'C:\\Users\\trentm\\AppData\\Local\\Temp\\Acme\\SuperApp'
1
#ml #ensembling #regression #masters

У Тима есть любопытное сравнение RMSE методов ансамблирования для задачи регрессии.

"Model Quality:
• Three moderately good models
• These, plus a fourth completely worthless model
• These, plus a fifth good but strongly biased model
Number of training cases:
• A small dataset consisting of 20 cases
• A large dataset consisting of 200 cases
Noise contamination:
• A clean dataset, in which the true values are totally uncontaminated
• A noisy dataset, in which the true values are heavily contaminated with random noise

The columns in the summary table are labeled as follows:
Raw: Mean squared error of a single model
Avg: The predictions are simply averaged
Uncons: Unconstrained linear regression
Unbias: Constrained linear regression with no bias offset term
Bias: Constrained linear regression including a bias offset term
VarWt: Variance weighting
Bag: Bagging, as discussed in Chapter 5
GRNN: General regression neural network smoothing"
👍1
#ml #nadarayawatson #oil #ensembling #gazprom

Виктор Котежеков -Использование ИИ в процессах гидродинамического моделирования нефтегазовых месторождений

Понравилась идея ансамблировать с помощью Байесовской линейной регрессии. Консенсус моделируется как HalfNormal распределение (отрицательные веса запрещены) с растущим со временем стандартным отклонением.

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

https://www.youtube.com/watch?v=tODbO5eH3vw
#ml #regression #astroml #cylowess #locfit #gaussianprocess

Как сделать Linear, Ridge, Lasso нелинейными переводом входов в гауссов базис.

https://notebook.community/DanielAndreasen/Programmers-Club/notebook/Regression%20-%20an%20example%20notebook
Forwarded from Artem Ryblov’s Data Science Weekly (Artem Ryblov)
Mindful Modeler by Christoph Molnar

The newsletter combines the best of two worlds: the performance mindset of machine learning and the mindfulness of statistical thinking.

Machine learning has become mainstream while falling short in the silliest ways: lack of interpretability, biased and missing data, wrong conclusions, … To statisticians, these shortcomings are often unsurprising. Statisticians are relentless in their quest to understand how the data came about. They make sure that their models reflect the data-generating process and interpret models accordingly.
In a sea of people who basically know how to model.fit() and model.predict() you can stand out by bringing statistical thinking to the arena.
Sign up for this newsletter to combine performance-driven machine learning with statistical thinking. Become a mindful modeller.

You'll learn about:
- Thinking like a statistician while performing like a machine learner
- Spotting non-obvious data problems
- Interpretable machine learning
- Other modelling mindsets such as causal inference and prompt engineering

Link
https://mindfulmodeler.substack.com/

Navigational hashtags: #armknowledgesharing #armnewsletters
General hashtags: #modelling #modeling #ml #machinelearning #statistics #modelinterpretation #data #interpretability #casualinference

@accelerated_learning
👍1
#ads #marketing #ai

"Система следит за тем, как посетители магазина задерживаются у витрин, наклоняются к ним, берут в руки товары, сравнивают их и совершают прочие действия. Данные с камер транслируются на платформу генеративного ИИ, которая в виде «консьержа-аватара» делает им персональные предложения. В Fujitsu считают, что эта технология способствует возвращению покупателей к прилавкам с намерением приобрести конкретный товар.

Компания разработала эту платформу при содействии группы учёных под руководством Наото Ондзо (Naoto Onzo), директора Института маркетинга и коммуникаций при университете Васэда. Исследователи выдвинули гипотезу, что «на решения потребителей о покупке влияют теплота и компетентность, индикаторы осведомлённости поставщика услуг о личности и знаниях потребителя, а также дизайн и функциональность продукта». На основе этой гипотезы была разработана модель, которая «оценивает вероятность перемен в поведении при обслуживании клиента и [показе ему] рекламного контента на основе данных о поведении и атрибутах отдельных потребителей, проанализированных технологией распознавания человека».

В Fujitsu согласились, что эта идея имеет перспективы, поскольку клиенты хотят «увлекательного клиентоориентированного опыта», но разработка соответствующего контента требует времени, денег и кадровых ресурсов. ИИ делает то же быстрее и дешевле. Технология будет тестироваться в супермаркете до 15 октября, и основанное на этом пилотном проекте решение будет подготовлено уже до конца 2023 финансового года — он завершится 31 марта 2024 календарного года."

https://3dnews.ru/1091057/kameri-v-yaponskom-supermarkete-stali-nablyudat-za-pokupatelyami-chtobi-pokazivat-im-tselevuyu-reklamu
#ml #bayesnetworks #bamt

Попытка потестировать Bamt провалилась. В руководстве они выкатили пример предсказания байесовской сетью наличия питомца по профилю vk юзера. Получили точность 94% и на том посчитали пример завершённым. При более детальном рассмотрении оказалось:
1) питомец был всего у 5% пользователей, и bamt ВСЕГДА предсказывала класс 0 (те ничему не училась)
2) из 80+ фичей авторы библы взяли лишь 8. я ещё удивлялся, почему. она работает ОЧЕНЬ МЕДЛЕННО. 30k примеров, 8 фичей обучается примерно секунд 50. с мультипроцессингом.
3) в примере они обучались на train set и потом предсказывали на ... sample(100) от того же train set.
4) катбуст и особенно xgboost обучались за доли секунды. но даже они не смогли ничему научиться, что было видно на CV, потому что.. отобранные авторами 8 фичей были нерелевантными.
5) предсказывать наличие питомца всё же было можно, и с хорошей точностью, надо было просто взять все фичи. доказано бустингами. но bamt над всеми фичами сожрал всю память на ноуте. а на компе питон младше 3.9, bamt не поставился. Махнул я на всё рукой, у кого много памяти (от 32gb) и новый питон, можете попробовать мой блокнотик в аттаче.
6) гауссовы смеси в bamt постоянно вылетали с fitting the mixture model failed because some components have ill-defined empirical covariance (for instance caused by singleton or collapsed samples). Try to decrease the number of components, or increase reg_covar. В MathUtils.py к вызовам GaussianMixture(n_components=i, random_state=0) пришлось добавить с потолка reg_covar=1e-1, чтобы оно просто запускалось. Хотя как это влияет на качество решения - вопрос.

Ну и зарепортил недочёты. Вдруг что-то исправят.
👍4
#masters #ensembling #localaccuracy

Ещё одна оригинальная техника ансамблирования, с названием "по локальной точности". Для каждого экземпляра при выдаче прогноза участвует только одна из моделей ансамбля - "наиболее компетентная локально". в обучающем наборе ищется N (например, 10) примеров, наиболее похожих на прогнозный (по расстоянию в метрическом пространстве - например, евклидовом). Точность каждой модели ансамбля рассчитывается "локально" на этих N примерах, ответ позволяется дать победившей модели.
#dask #coiled

Так смешно. Мэтт Роклин, глава Coiled (и создатель Dask), прислал мне емэйл, что, мол, я престал пользоваться их продуктом, не предоставлю ли обратную связь, почему так вышло? Не знаю, часть ли это стандартной практики контроля качества, или связано с нашей беседой по поводу отсутствия в койлед функциональности мультипотоков, которая есть в опенсорсном dask-distributed, на что я указал им в issue и они пытались мне помочь (но их советы не сработали). Я ответил на письмо, что детальный feedback предоставлю, но мне только нужно понять, насколько развитие dask-distributed создаёт конфликт интересов с развитием коммерческого Койлед, к примеру, что будет, если я предложу PR по добавлению в AWS dask-cloudporvider спотовых инстансов, которых там по странному стечению обстоятельств не завезли. В течение часа Мэтт ответил, что это не проблема, и парни из nvidia, которые тоже поддерживают dask, будут рады это принять. Ну хорошо, подумал я, люди открыты меняться в лучшую сторону, и честно изложил во втором письме свои мысли по поводу того, что Койлед берёт слишком много денег за весьма скромную функциональность, и не пытается даже решить актуальные проблемы: выбор серверов где нагрузка юзера будет считаться быстрее и дешевле, гетерогенные кластера в разных облаках, прогноз interruption rates, prices, perf scores с помощью ML и предоставление пользователю этих оценок. Я как-то думал, это приведёт к плодотворной дискуссии, но прошло уже несколько дней, а мой визави просто пропал )

В связи с этим вспомнился анекдот:

- Вы указали в резюме, что Вашим основным недостатком является привычка всегда говорить напрямик и только правду, верно?
- Да.
- Но, знаете, я думаю, это вовсе не недостаток, а даже преимущество.
- Да мне по*уй, что ты там думаешь.
😁2
#selfdriving #yandex #taxi

"Компания «Яндекс» запустила в тестовом режиме сервис беспилотного такси в московском районе Ясенево в июне 2023 года. Стоимость любой поездки в роботакси составляет 100 рублей. В компании отмечали, что в тестировании могут поучаствовать пользователи от 18 лет. Заказать поездку можно в приложении «Яндекс Go».

Первые испытания роботакси «Яндекс» провёл в 2018 году в Иннополисе, после чего они были перенесены в Москву. К июню 2023 года беспилотные машины «Яндекса» наездили 24 млн км, а жители Иннополиса заказали более 60 тыс. поездок."

https://3dnews.ru/1091071/yandeks-pristupil-v-moskve-k-testirovaniyu-bespilotnih-avtomobiley-bez-voditelya-za-rulyom
#masters #ml #entropy #mutualinformation #featureselection #pld #fleuret

Читаю последние главы книги "Assessing and Improving Prediction and Classification" Тима Мастерса, и прямо хочется взять и самому реализовать расписанные там алгоритмы отбора предикторов на основе прямого последовательного включения (forward stepwise selection) и теории информации. Тем более что у меня же есть в планах большое сводное тестирование методов FS. Почему прямого - он самый быстрый, следовательно, в современных реалиях, когда предикторов десятки тысяч, самый практичный.

Самый простой вариант называется PLD, когда на каждом шаге в набор активных предикторов S выбирается фича, имеющая самую высокую взаимную информацию (ВИ/MI) с таргетом минус среднюю ВИ с уже зафиксированными переменными S.

Улучшенная версия Fleuret ещё более интеллектуальна, она смотрит на условную ВИ зафиксированных переменных и таргета при данном кандидате:

Suppose X is a candidate for inclusion and Z is a variable that is already in S, the set of predictors chosen so far. The conditional mutual information of X and Y given Z measures how much the candidate X contributes to predicting Y above and beyond what we already get from Z. A good candidate will have a large value of I(X;Y|Z) for every Z in S. If there is even one variable Z in S for which I(X;Y|Z) is small, there is little point in including this candidate X, because it contributes little beyond what is already contributed by that Z.
#ml #featureselection #mrmr #uber

Оказывается, сотрудники Uber уже проводили сравнение методов FS на синтетике (70 фичей, смешно) и 3 реальных датасетах (upsell/crosssell, ~ тысяча фичей) в парадигме mRMR. Работа мне не понравилась:
1) хотелось бы видеть сравнение с другими парадигмами FS
2) что за странный выбор моделей? самой сильной из выбранных был случайный лес. в 2019м бустинги уже были.
3) не было HPT
4) не было ES
5) для синтетики не показали, угадал ли блок FS истинные предикторы
6) непонятно, как обработали категорийку

Самое главное: судя про графикам, отбором признаков вообще заниматься не надо, если модель достаточно мощная. Случайный лес на всех признаках практически всегда не уступал конвейеру с FS. А зачем тогда тратить время на FS?

Но скажу из своего опыта: когда фичей десятки тысяч, и одна из них чуть ли не прямо определяет таргет, + есть изрядно избыточных, сдыхают даже бустинги (а именно, катбуст) - показывают слабую зависимость, хотя по идее должны 100% выучить связь.
Aspiring Data Science
#ml #featureselection #mrmr #uber Оказывается, сотрудники Uber уже проводили сравнение методов FS на синтетике (70 фичей, смешно) и 3 реальных датасетах (upsell/crosssell, ~ тысяча фичей) в парадигме mRMR. Работа мне не понравилась: 1) хотелось бы видеть…
#aws #amazon #cloud

"Компания Amazon отчиталась о работе во II четверти 2023 финансового года, которая была закрыта 30 июня. По ключевым показателям зафиксирован рост. В частности, общая выручка увеличилась в годовом исчислении на 11 % — со $121,2 млрд до $134,4 млрд. По итогам II квартала Amazon продемонстрировала чистую прибыль в размере $6,7 млрд, или $0,65 в пересчёте на одну ценную бумагу. Годом ранее компания понесла чистые убытки около $2,0 млрд, что эквивалентно $0,20 на одну акцию."

https://servernews.ru/1091078
#hardware #cpu #bergamo #genoax #avx512 #tensorflow

"Несмотря на то, что AVX-512 является детищем Intel, ситуация складывается довольно абсурдная: текущая серия Sapphire Rapids сильно отстаёт по количеству ядер от AMD Bergamo, а многоядерные (до 144 ядер) Xeon серии Sierra Forest, скорее всего, поддержки AVX-512/AVX10 не получат.

Таким образом, AMD Bergamo с ядрами Zen 4c являются единственными в мире 128-ядерными процессорами с поддержкой 512-битных расширений. На примере AMD EPYC 9754 видно, что несмотря на отсутствие полноценных регистров такой ширины, выгода от активации AVX-512 может быть весьма существенной, в некоторых случаях практически двукратной, а в TensorFlow — даже шести- или десятикратной.

А теперь перейдём к EPYC 9684X (Genoa-X) — также достаточно уникальному процессору, сочетающему в себе 96 ядер, AVX-512 и 3D V-Cache, доводящий общий объём кеша L3 до гигантского значения 1,1 Гбайт. В данном случае разница также сильно варьируется в зависимости от характера нагрузки, но в некоторых случаях может быть и двукратной.

В среднем эффект выражается в 12 % приросте производительности, что также весьма неплохо. На тактовую частоту и уровень энергопотребления отключение 3D V-Cache влияния не оказывает. Таким образом становится очевидно, что AMD EPYC 9684X — процессор специфический, уступающий по количеству ядер Bergamo и заточенный исключительно под нагрузки, могущие эффективно использовать огромный объём кеша, такие, как OpenFOAM или OpenVINO."

https://servernews.ru/1090769
#hardware #raspberry

"Дебютировал одноплатный компьютер Orange Pi 3B на аппаратной платформе Rockchip. Как сообщает ресурс CNX Software, новинка выполнена в форм-факторе Raspberry Pi 3B, но при этом предлагает более высокую производительность и расширенные возможности в плане хранения данных.

Изделие имеет габариты 85 × 56 мм и весит 49 г. Установлен процессор Rockchip RK3566, объединяющий четыре ядра Cortex-A55 с тактовой частотой до 1,8 ГГц и графический блок Arm Mali-G52 с поддержкой OpenGL ES 1.1/2.0/3.2, OpenCL 2.0, Vulkan 1.1. Есть NPU-модуль с быстродействием 0,8 TOPS для ускорения Caffe, TensorFlow, TFLite, ONNX, PyTorch, Keras, Darknet.

Мини-компьютер может нести на борту 2, 4 или 8 Гбайт оперативной памяти LPDDR4/4x. В оснащение входит eMMC-накопитель вместимостью от 16 до 256 Гбайт.

стройство оборудовано контроллером 1GbE (YT8531C; гнездо RJ-45), адаптерами Wi-Fi 5 (2,4/5 ГГц) и Bluetooth 5.0 (на базе CDTech 20U5622), интерфейсами HDMI 2.0 (до 4Kp60), MIPI DSI × 2 и eDP 1.3, одним портом USB 3.0 и тремя портами USB 2.0, аудиогнездом на 3,5 мм. Упомянуты также 40-контактная колодка, совместимая с Raspberry Pi (28× GPIO, UART, SPI, I2C, PWM), коннектор для вентилятора охлаждения (5 В) и порт USB Type-C для подачи питания (5 В / 3 A).

Говорится о поддержке Android 11, Ubuntu 22.04, Ubuntu 20.04, Debian 11, Debian 12, OpenHarmony 4.0 Beta1, Orange Pi OS (Arch), Orange Pi OS и пр. Цена варьируется от $35 до $68 в зависимости от размера памяти."

https://servernews.ru/1091098
👍1