#open_source #ml #classic
Сегодня узнал из поста другой DS группы, который вы уже, возможно, видели о либе interpret. Мне тот пост не понравился, поэтому я решил написать свой 😅
Из крутого:
1. Специальный интерпретируемый GBM, разработанный Microsoft и другие glass-box модели 🔮
2. Полный набор инструментов для объяснения black-box моделей в одном месте🤔
3. Удобные встроенные интерактивные визуализации👀
Если дойдут руки попробовать, расскажу что как. Вообще довольно давно есть мысль взять какую-нибудь интересную задачу с открытыми данными, как бенчмарк всякого MLного. Если у вас такие есть, кидайте в комменты ☺️
Сегодня узнал из поста другой DS группы, который вы уже, возможно, видели о либе interpret. Мне тот пост не понравился, поэтому я решил написать свой 😅
Из крутого:
1. Специальный интерпретируемый GBM, разработанный Microsoft и другие glass-box модели 🔮
2. Полный набор инструментов для объяснения black-box моделей в одном месте
3. Удобные встроенные интерактивные визуализации
Если дойдут руки попробовать, расскажу что как. Вообще довольно давно есть мысль взять какую-нибудь интересную задачу с открытыми данными, как бенчмарк всякого MLного. Если у вас такие есть, кидайте в комменты ☺️
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - interpretml/interpret: Fit interpretable models. Explain blackbox machine learning.
Fit interpretable models. Explain blackbox machine learning. - interpretml/interpret
Forwarded from HypEx (Дмитрий Тихомиров)
Пока вы отдыхали (а может, считали часами АА-тесты на старой версии), мы не сидели сложа руки — выпуск версии 1.0.2 оказался мощным апдейтом:
- АА-тест теперь летает! Ускорение — от «в несколько раз» до «ого-го» на больших датасетах. (в 2000 раз быстрее на 2 млн строк)
- Т-тест стал умнее — теперь можно применять поправку Уэлча при неравных группах.
- Matching стал гибче — можно подбирать не одного, а сразу n-близнецов (наконец-то 💥).
- Результаты стали чище и понятнее — формат отчётов по АА/АБ/Matching обновили, добавили новые метрики.
🐞 Исправили баги:
- корректное сравнение в мэтчинге
- краши при константных значениях
- краши при дисбалансе
- проблема с КС-тестом
📚 Туториалы тоже не забыли — дописали, обновили, структурировали.
Да, релиз вышел 2 недели назад. Но мы — как хорошие исследователи: сначала проверим, протестим, допишем, потом и расскажем.
Пробуйте и пишите фидбек!
github.com/sb-ai-lab/hypex
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - sb-ai-lab/HypEx: Fast and customizable framework for automatic and quick Causal Inference in Python
Fast and customizable framework for automatic and quick Causal Inference in Python - sb-ai-lab/HypEx
🔥2
Полезное и актуальная, как раз думал, как по-красивее сделать иммутацию.
👍2
Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
Пропущенные данные — распространённая проблема в реальных проектах. Причины могут быть разными: ошибки при сборе, повреждение файлов, неполные опросы и прочее.
Представляем три продвинутых способа иммутации пропусков с использованием Pandas и Scikit-learn:
Использует модели, например, Байесовскую регрессию или случайный лес, чтобы последовательно заполнять пропуски, обучаясь на известных данных.
from sklearn.experimental import enable_iterative_imputer
from sklearn.impute import IterativeImputer
iterative_imputer = IterativeImputer(random_state=42, max_iter=10)
df_imputed = pd.DataFrame(iterative_imputer.fit_transform(df), columns=df.columns)
print(df_imputed.isnull().sum().sum()) # Пропусков больше нет
Можно менять модель, например, использовать RandomForestRegressor для иммутации.
Заполняет пропуски, опираясь на похожие строки с известными значениями. Вес соседей можно задавать по расстоянию или равномерно.
from sklearn.impute import KNNImputer
knn_imputer = KNNImputer(n_neighbors=5, weights='distance')
df_knn = pd.DataFrame(knn_imputer.fit_transform(df), columns=df.columns)
print(df_knn.isnull().sum().sum())
Запускаем разные иммутационные модели, получаем несколько вариантов заполненных данных, а затем выбираем лучший результат, ориентируясь на ключевые признаки:
from sklearn.linear_model import BayesianRidge
from sklearn.ensemble import ExtraTreesRegressor, RandomForestRegressor
imputers = {
'bayesian_ridge': IterativeImputer(estimator=BayesianRidge(), random_state=42),
'extra_trees': IterativeImputer(estimator=ExtraTreesRegressor(n_estimators=10, random_state=42), random_state=42),
'rf_regressor': IterativeImputer(estimator=RandomForestRegressor(n_estimators=10, random_state=42), random_state=42)
}
imputed_datasets = {}
for name, imputer in imputers.items():
imputed_datasets[name] = pd.DataFrame(imputer.fit_transform(df), columns=df.columns)
print(f"{name}: Средний доход = {imputed_datasets[name]['income'].mean():.2f}")
— KNN хорошо подходит для небольших числовых датасетов, но требует ресурсов на больших.
— Ансамблевые методы дают лучшее качество, но сложнее и тяжелее в вычислениях.
— MICE — золотая середина для многих задач.
Библиотека дата-сайентиста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🆒2
Forwarded from Представляешь,
создатели TikTok выкатили БЕСПЛАТНЫЙ аналог Cursor, еще и OPEN-SOURCE
ByteDance (да-да, те самые) выложили на GitHub исходники Trae Agent — ИИ-ассистента для программистов, который умеет писать код, править баги, задавать сам себе вопросы и даже запускать команды в терминале.
То есть буквально как Cursor, но с открытым кодом и без подписки на $60.
Что умеет:
- редактирует файлы и пишет коммиты,
- сам решает, что делать: рефакторить, тестить или гуглить,
- работает с GPT-4, Claude, OpenRouter и даже Doubao (внезапно),
- сохраняет «траекторию» своих действий — можно проверить, что он натворил.
Ссылка на GitHub: тык
@your_tech
ByteDance (да-да, те самые) выложили на GitHub исходники Trae Agent — ИИ-ассистента для программистов, который умеет писать код, править баги, задавать сам себе вопросы и даже запускать команды в терминале.
То есть буквально как Cursor, но с открытым кодом и без подписки на $60.
Что умеет:
- редактирует файлы и пишет коммиты,
- сам решает, что делать: рефакторить, тестить или гуглить,
- работает с GPT-4, Claude, OpenRouter и даже Doubao (внезапно),
- сохраняет «траекторию» своих действий — можно проверить, что он натворил.
Ссылка на GitHub: тык
@your_tech
#LLM
Сейчас произошел акт сравнения LLM с ризонингом.
На арене Deepseek, Алиса PRO и локально поднятая qwq с заданным системным промтом.
Запрос был про то, как можно извлечь фичи из поискового запроса.
Хуже всех оказалась Алиса. Она решила, что я делаю систему поиска и рассказала про то на каких признаках эти системы строятся. Совершенно бесполезная в рамках моего запроса информация.
На втором месте qwq. Она предложила только один способ: классификацию, но написала весь код реализации. Такой ответ может быть связан с системным промптом, в котором написано, что она помощник программиста и должна отвечать определенным образом с листингами.
Ну и Deepseek выдал большую телегу про то, что можно сделать, то есть именно то, что мне было интересно.
UPD пока писал, понял, что я Алисе не сказал пользоваться ризонингом и поиском. Запустил заново с этими атрибутами и ответ получился вполне хорошим. Не таким подробным, как у Deepseek, но коротко и по существу. Что в моем случае даже больше подходит под запрос, что выводит её в итоге на первое место.
Сейчас произошел акт сравнения LLM с ризонингом.
На арене Deepseek, Алиса PRO и локально поднятая qwq с заданным системным промтом.
Запрос был про то, как можно извлечь фичи из поискового запроса.
Хуже всех оказалась Алиса. Она решила, что я делаю систему поиска и рассказала про то на каких признаках эти системы строятся. Совершенно бесполезная в рамках моего запроса информация.
На втором месте qwq. Она предложила только один способ: классификацию, но написала весь код реализации. Такой ответ может быть связан с системным промптом, в котором написано, что она помощник программиста и должна отвечать определенным образом с листингами.
Ну и Deepseek выдал большую телегу про то, что можно сделать, то есть именно то, что мне было интересно.
UPD пока писал, понял, что я Алисе не сказал пользоваться ризонингом и поиском. Запустил заново с этими атрибутами и ответ получился вполне хорошим. Не таким подробным, как у Deepseek, но коротко и по существу. Что в моем случае даже больше подходит под запрос, что выводит её в итоге на первое место.
#open_source #dmdslab
Представляю вам очередную итерацию моих попыток сделать универсальные DS утилки: DmDSLab
Залил это дело в пупи, так что без проблем можете тестить:
Там пока особо полезного ничего нет. Но лично мне сейчас интересны общие относительно удобные структуры данных и функции для чистки данных.
Планирую постепенно дополнять функциями репу и писать доки на wiki.
Буду рад, если кому-то окажется полезным и вдвойне рад обратной связи 😊
Представляю вам очередную итерацию моих попыток сделать универсальные DS утилки: DmDSLab
Залил это дело в пупи, так что без проблем можете тестить:
pip install DmDSLab
Там пока особо полезного ничего нет. Но лично мне сейчас интересны общие относительно удобные структуры данных и функции для чистки данных.
Планирую постепенно дополнять функциями репу и писать доки на wiki.
Буду рад, если кому-то окажется полезным и вдвойне рад обратной связи 😊
Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
#classic
Попробовал "в бою" IterativeImputer и это немного разочаровательный опыт. На небольших данных я особого сравнения не делал, но это работало. А на больших (на самом деле не очень: в районе пары гигов) эта фигня за 7 часов не посчиталась. Тут, конечно, не без нюансов. Я не занимался особой настройкой, возможно, если более осознано заняться тонкой настройкой, то все отработало бы за более адекватное время, но что-то мне подсказывает, что заниматься тонкой настрой импутера и ждать не вразумительное количество времени без калбэков - это не то, что вы хотите при построении модели.
Я в итоге заполнял данные медианой и все равно получилась вполне себе приличного качества моделька, а импутинг такой занял всего 30 секунд.
// Картинка из небольшого исследоавния со сравнением методов импутинга. Если получится, хочу тоже такое провести.
Попробовал "в бою" IterativeImputer и это немного разочаровательный опыт. На небольших данных я особого сравнения не делал, но это работало. А на больших (на самом деле не очень: в районе пары гигов) эта фигня за 7 часов не посчиталась. Тут, конечно, не без нюансов. Я не занимался особой настройкой, возможно, если более осознано заняться тонкой настройкой, то все отработало бы за более адекватное время, но что-то мне подсказывает, что заниматься тонкой настрой импутера и ждать не вразумительное количество времени без калбэков - это не то, что вы хотите при построении модели.
Я в итоге заполнял данные медианой и все равно получилась вполне себе приличного качества моделька, а импутинг такой занял всего 30 секунд.
// Картинка из небольшого исследоавния со сравнением методов импутинга. Если получится, хочу тоже такое провести.
👍3
Замутил директ по минимальному прайсу. Не знаю зачем, но пусть будет)
Можете туда, например, писать интересующие Вас темы, которые я постараюсь разобрать.
Можете туда, например, писать интересующие Вас темы, которые я постараюсь разобрать.
😁2
Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
Теперь не нужно писать кастомные CUDA-ядра или лезть в C++ —
cuda.cccl позволяет собирать мощные алгоритмы на Python, используя CUB и Thrust под капотом.Библиотека делится на:
parallel — высокоуровневые, компонуемые алгоритмы над массивами и итераторами.cooperative — блок/варп-ориентированные примитивы для numba.cuda.Почему быстрее:
Кому пригодится:
Установка:
pip install cuda-cccl
👉 Подробнее: https://clc.to/4qFCRQ
Библиотека дата-сайентиста #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
#classic
Открыл для себя сегодня новый пласт задач в ML. Вернее переоткрыл, так как ранее уже сталкивался и даже решал, но сейчас подхожу к вопросу более системно.
Итак, PU learning (positive-unlabeled). Это класс задач, в котором в наличии только положительно размеченные классы и куча неразмеченных, то есть таких, где могут быть, как положительные, так и отрицательные метки, но где какие непонятно.
Самое банальное, что можно сделать: это тупо разметить все, что не положительное отрицательным. По опыту такие модели в итоге не очень соответствуют реальности. Ещё вариант - взять случайную выборку и разметить её негативным классом, чтобы классов стало 3: положительный неизвестный и негативны, тогда это классика semi-supervised learning, но тоже сомнительное соответствие истине.
Есть более продвинутые методы работы с этой задачей, но для бейслайна применить любой из этих методов можно.
Например, я искал пользователей, которые владеют автомобилем. У меня есть достоверные единички и огромное число неразмеченных пользователей. Я сделал рандомную выборку неразмеченных, счел их ноликами и построил модель. Получилась отличная модель с отличными метриками. Случайных пользователей вне обучающей выборке отлично размечает, но есть нюанс...
Получилось, что только у 16% пользователей есть авто. Открываем социсследования, смотрим статистику. В РФ автомобиль есть у 30-50% граждан в зависимости от источника, что далеко от модельного распределения.
Эта тема точно пойдет ко мне в книгу, так что я пошел плотно исследовать её. Посты по теме еще будут😉
Открыл для себя сегодня новый пласт задач в ML. Вернее переоткрыл, так как ранее уже сталкивался и даже решал, но сейчас подхожу к вопросу более системно.
Итак, PU learning (positive-unlabeled). Это класс задач, в котором в наличии только положительно размеченные классы и куча неразмеченных, то есть таких, где могут быть, как положительные, так и отрицательные метки, но где какие непонятно.
Самое банальное, что можно сделать: это тупо разметить все, что не положительное отрицательным. По опыту такие модели в итоге не очень соответствуют реальности. Ещё вариант - взять случайную выборку и разметить её негативным классом, чтобы классов стало 3: положительный неизвестный и негативны, тогда это классика semi-supervised learning, но тоже сомнительное соответствие истине.
Есть более продвинутые методы работы с этой задачей, но для бейслайна применить любой из этих методов можно.
Например, я искал пользователей, которые владеют автомобилем. У меня есть достоверные единички и огромное число неразмеченных пользователей. Я сделал рандомную выборку неразмеченных, счел их ноликами и построил модель. Получилась отличная модель с отличными метриками. Случайных пользователей вне обучающей выборке отлично размечает, но есть нюанс...
Получилось, что только у 16% пользователей есть авто. Открываем социсследования, смотрим статистику. В РФ автомобиль есть у 30-50% граждан в зависимости от источника, что далеко от модельного распределения.
Эта тема точно пойдет ко мне в книгу, так что я пошел плотно исследовать её. Посты по теме еще будут
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Представляешь,
УСКОРЕННЫЙ на 30% Python 3.14 уже можно ПОТРОГАТЬ
Все благодаря первому релиз-кандидату грядущего апдейта. С заметным ускорением и кучей оптимизаций под капотом.
Самые интересные улучшения:
- встроенный JIT (теперь по умолчанию для Windows и macOS);
- free-threaded Python — настоящая многопоточность без GIL;
- UUID генерятся до 40% быстрее;
- CLI-инструменты теперь с цветным выводом (да, наконец-то);
В продакшен проектах лучше не использовать, но вот в петах и для изучения новшеств — самое то. Финальный релиз состоится 7 октября.
@your_tech
Все благодаря первому релиз-кандидату грядущего апдейта. С заметным ускорением и кучей оптимизаций под капотом.
Самые интересные улучшения:
- встроенный JIT (теперь по умолчанию для Windows и macOS);
- free-threaded Python — настоящая многопоточность без GIL;
- UUID генерятся до 40% быстрее;
- CLI-инструменты теперь с цветным выводом (да, наконец-то);
В продакшен проектах лучше не использовать, но вот в петах и для изучения новшеств — самое то. Финальный релиз состоится 7 октября.
@your_tech
🔥3
#open_source
#ml
#classic
#myproject@dm_projects_log
Я тут заново пересобрал либу. Очень заморочился с оформлением репы, как раньше не заморачивался. И ридми написал, и wiki замутил, все обмазано тестами и даже CICD пайплайн. Зачем я так заморочился? Наверное захотелось красоты, и в эту либу я верю примерно так же, как в HypEx.
Да от этого всего воняет нейронками, что не удивительно, ибо я их активно юзаю, но сам все ревьюю и много всего исправляю за нейронкой. Еще один косяк - почти все на русском. Меня штормило от русского к английскому, поэтому можно встретить и то и то. Забавно, что коммиты я пишу на английском, как и часть докстрингов с комментами, но все доки и описания на русском. Наверное мне просто так удобно, а пользоваться этим все равно вряд ли кто-то кроме меня будет.
Так вот... Зачем это все... Зачем вам может быть интересна эта версия либы? В целом, там в релизе все написано, но если коротко, то тут неплохая коллекция открытых данных с удобным инструментом для скачивания. Я их подбирал для одного своего конкретного исследования, но это именно отборные данные. Так что не брезгуйте юзать. Если есть желание, можно самостоятельно написать конфиг и выгрузить датасет с сайта. Правда работать будут только те, которые импортятся в Python.
P.S. Вообще есть более свежий релиз, но там я разбирался с ошибками сборки, обновлял README.md и упразднил автоматическую публикацию, так как с ней было слишком много проблем, а самому публиковать не сложно, так как есть написанный скрипт, так что функционально разницы нет.
#ml
#classic
#myproject@dm_projects_log
Я тут заново пересобрал либу. Очень заморочился с оформлением репы, как раньше не заморачивался. И ридми написал, и wiki замутил, все обмазано тестами и даже CICD пайплайн. Зачем я так заморочился? Наверное захотелось красоты, и в эту либу я верю примерно так же, как в HypEx.
Да от этого всего воняет нейронками, что не удивительно, ибо я их активно юзаю, но сам все ревьюю и много всего исправляю за нейронкой. Еще один косяк - почти все на русском. Меня штормило от русского к английскому, поэтому можно встретить и то и то. Забавно, что коммиты я пишу на английском, как и часть докстрингов с комментами, но все доки и описания на русском. Наверное мне просто так удобно, а пользоваться этим все равно вряд ли кто-то кроме меня будет.
Так вот... Зачем это все... Зачем вам может быть интересна эта версия либы? В целом, там в релизе все написано, но если коротко, то тут неплохая коллекция открытых данных с удобным инструментом для скачивания. Я их подбирал для одного своего конкретного исследования, но это именно отборные данные. Так что не брезгуйте юзать. Если есть желание, можно самостоятельно написать конфиг и выгрузить датасет с сайта. Правда работать будут только те, которые импортятся в Python.
P.S. Вообще есть более свежий релиз, но там я разбирался с ошибками сборки, обновлял README.md и упразднил автоматическую публикацию, так как с ней было слишком много проблем, а самому публиковать не сложно, так как есть написанный скрипт, так что функционально разницы нет.
GitHub
Release v1.0.0 - Первый стабильный релиз · Dmatryus/DmDSLab
История изменений
[1.0.0] - 2025-07-24
🎉 Первый стабильный релиз
Это первый стабильный релиз DmDSLab - набора инструментов для лаборатории Data Science, предназначенного для
автоматизации рутинных ...
[1.0.0] - 2025-07-24
🎉 Первый стабильный релиз
Это первый стабильный релиз DmDSLab - набора инструментов для лаборатории Data Science, предназначенного для
автоматизации рутинных ...
👍2🔥2
Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
🎉 OpenCV исполнилось 25 лет — серьёзная веха для мира компьютерного зрения
Библиотека была выпущена Intel в 2000 году как open source — и с тех пор стала стандартом де-факто.
OpenCV democratized компьютерное зрение: сделала доступной обработку изображений и видео не только крупным лабораториям и корпорациям, но и каждому студенту, разработчику и энтузиасту.
Благодаря OpenCV миллионы людей научились:
— распознавать лица и объекты;
— строить системы трекинга и распознавания движений;
— анализировать кадры в реальном времени;
— автоматизировать обработку изображений и видео в исследованиях и бизнесе.
👉 25 лет спустя — это по-прежнему первая библиотека, которую изучают в CV, и первый инструмент, к которому тянется рука при решении практической задачи.
Поздравляем библиотеку — 🎉
🔗 Блог-пост в честь юбилея: https://clc.to/zEyBLQ
А вы помните, с чего началось ваше знакомство с OpenCV?
Библиотека дата-сайентиста #свежак
Библиотека была выпущена Intel в 2000 году как open source — и с тех пор стала стандартом де-факто.
OpenCV democratized компьютерное зрение: сделала доступной обработку изображений и видео не только крупным лабораториям и корпорациям, но и каждому студенту, разработчику и энтузиасту.
Благодаря OpenCV миллионы людей научились:
— распознавать лица и объекты;
— строить системы трекинга и распознавания движений;
— анализировать кадры в реальном времени;
— автоматизировать обработку изображений и видео в исследованиях и бизнесе.
👉 25 лет спустя — это по-прежнему первая библиотека, которую изучают в CV, и первый инструмент, к которому тянется рука при решении практической задачи.
Поздравляем библиотеку — 🎉
А вы помните, с чего началось ваше знакомство с OpenCV?
Библиотека дата-сайентиста #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
#open_source
#ml
#classic
#myproject@dm_projects_log
Замутил новую версию либы. Переработал загрузчик датасетов полностью.
Что не отображено в доках, так это изменение подхода к разработке: больше ручной работы - меньше нейронок.
#ml
#classic
#myproject@dm_projects_log
Замутил новую версию либы. Переработал загрузчик датасетов полностью.
Что не отображено в доках, так это изменение подхода к разработке: больше ручной работы - меньше нейронок.
GitHub
Release DmDSLab 2.0.0 - UCI Integration & Modern Python · Dmatryus/DmDSLab
🎉 DmDSLab 2.0.0 - UCI Integration & Modern Python
Мы рады представить DmDSLab 2.0.0 - крупнейшее обновление библиотеки с момента её создания! Эта версия привносит долгожданную интеграцию с UCI ...
Мы рады представить DmDSLab 2.0.0 - крупнейшее обновление библиотеки с момента её создания! Эта версия привносит долгожданную интеграцию с UCI ...
🔥2
