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
#nature #biology #evolution #genitals #fun

В почту свалилось письмо от Alpina с рекламой новой захватывающей книги. )

«Парадокс пениса. Уроки жизни из мира животных» Эмили Уиллингем

"Герои этой книги: черви, которые самооплодотворяют себя; пауки для которых пенис не только средство для эротических приключений, но и орган осязания (а еще они пользуются им при захвате жертв на охоте); некоторые усоногие отращивают пенис к сезону спаривания, а затем сбрасывают его, другие удлиняют, наращивая дополнительные сегменты (не очень реализуемый лайфхак); бабочки парусники могут видеть и вульвой и пенисом, они у них оснащены фоторецепторами; у многих паучих две вагины, а у голожаберного моллюска три пениса; пенис крокодила всегда находится в жестком состоянии и выскакивает наружу, как подушка безопасности; сумчатые мыши в определенный момент жизни начинают многочасовые тантрические упражнения, после этого умирают от истощения; самцы медоносной пчелы также умирают после секса, эякуляция отрывает им пенис; у 97% видов птиц нет пениса, они передают гаметы партнеру через клоакальный поцелуй; у самки гиены не просто огромный клитор, она через него же и рожает; многие самки приматов сообщают самцам о готовности к зачатию изменением цвета половых органов; киты иногда совокупляются втроем (читайте книгу). И все это не просто перечисление удивительных фактов. Это рассказ о том, почему пенисы именно такие, почему и как выигрывают те или иные эволюционные стратегии.

И о размерах. Самый большой у синего кита, средняя длина его пениса составляет 3,7 м. У одного из японских китов пенис всего 2,7 м, но огромные яички весом около тонны. Среди наземных млекопитающих побеждают африканские лесные слоны со своими скоромными 90 см. Самый большой относительно размера тела у усоногих, их пенис в восемь раз превышает длину тела, если бы они были размером с синего кита, у них были бы члены 200-метровой длины. Они, кстати, еще и гермафродиты, так что партнёром может стать и сосед слева, и сосед справа. Согласитесь, удобно."

https://alpinabook.ru/catalog/book-paradoks-penisa/
1
#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