Анализ данных (Data analysis)
46.3K subscribers
2.32K photos
268 videos
1 file
2.05K links
Data science, наука о данных.

@haarrp - админ

@itchannels_telegram - 🔥 главное в ит

@ai_machinelearning_big_data - ML

@machinelearning_interview - вопросы с собесдований по Ml

РКН: clck.ru/3FmyAp
Download Telegram
No Black Box Machine Learning Course – Learn Without Libraries

Как насчет курса по машинному обучению, который не опирается на библиотеки?

В этом курсе "без черного ящика" алгоритмы изучаются с нуля.

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

Video
Github
Course

@data_analysis_ml
10🔥6👍3
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 В больших проектах #SQL-запросы могут становиться сложными.

Документирование помогает прояснить функциональность каждого запроса для других членов команды.

С помощью #dbt вы можете легко документировать свои запросы с помощью команды 𝐝𝐛𝐭 𝐝𝐨𝐜𝐬 𝐠𝐞𝐧𝐞𝐫𝐚𝐭𝐞.

📌 Что такое dbt
📌 Больше примеров

@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
👍103🔥2👎1
🔥 Дайджест полезных материалов из мира Машинного обучения за неделю

Почитать:
Есть ли жизнь после Nvidia?
Откройте свое будущее: Изучите 15 бесплатных курсов IBM прямо сейчас
Перевод трактата по демонологии при помощи GPT-4 и Claude
Откройте свое будущее: Изучите 15 бесплатных курсов IBM прямо сейчас
SAGE: коррекция орфографии с помощью языковых моделей
Python, Go или… готовим сырой видеопоток с полсотни камер
Как мы используем NLP в банке
Нейронные сети для планирования движения беспилотных автомобилей
Организация GPU-вычислений для машинного обучения в компании: проблемы и трудности
Детекция дефектов дорожного покрытия без размеченных данных: Хакатон, LiDAR, RANSAC, ICP и 44 бесcонных часов
Чат GPT-4V, который видит — что он умеет
Feature engineering и кластерный анализ клиентов на PySpark
Trabaje con sus datos en tiempo real usando Langchain
BakaLLM, part 3: it's testing time, it's testing time
Enabling Language Models to Implicitly Learn Self-Improvement
Introdução ao Aprendizado de Máquina Online
Why Python is a first choice for Data scientist
Mastering Machine Learning: Your Path to Excellence with UpSkill Certifications
Data Science for Beginners: 2023-2024 Edition
Data Science for beginners, complete roadmap.
Data Science Beginner's guide.
The Ultimate Guide to Getting a Data Scientist Job in 2023 (Even If You're a Beginner)

Посмотреть:
🌐 Разбор задачи с собеседования Data Science. Подготовка на практике ( 26:12)
🌐 Cобеседование #Python топовый банк Goldman Sachs Associate на 12000 $ #задача #программирование ( 01:00)
🌐 Interview: "Large Language Model Operations: The Next Frontier in MLOps" ( 59:18)
🌐 Exploring the Generative AI Landscape: From Basics to Hands-on Applications - Raghav Bali ( 32:54)

Хорошего дня!

@data_analysis_ml
👍17🔥54
⚡️ 7 признаков того, что вы стали продвинутым пользователем Sklearn

Вы узнаете о семи неоспоримых признаках того, что стали продвинутым пользователем Sklearn, о чем, возможно, и не подозревали. А поскольку Sklearn — самая популярная МО-библиотека, можете считать эти признаки подтверждением своего профессионализма в области машинного обучения.

Начнем!

0. Разделение на три набора
Почти все, что вы делаете в машинном обучении, направлено на избежание чрезмерной подгонки. Один из лучших способов борьбы с этим явлением — разделение данных не на два, а на три набора!

Кэсси Козырьков, руководительница отдела интеллектуальных решений в Google, считает: разделение данных — самая мощная идея в машинном обучении.

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

При постоянном подстраивании гиперпараметров на основе производительности модели на конкретном тестовом наборе возникает риск переподгонки модели под этот конкретный набор.

Итак, вы обучаете выбранную модель, используя 50% имеющихся данных.
Затем проводите тонкую настройку и оценку модели на отдельном контрольном наборе, содержащем 25% данных. И наконец, когда baby-модель уже готова к внедрению, тестируете ее в последний раз, используя совершенно нетронутый (то есть вы даже не просматривали первые пять строк) тестовый набор.

Помня вышеупомянутое правило, вы сохраняете этот фрагмент кода на своем рабочем столе, чтобы скопировать/вставить его в любое время:

from sklearn.model_selection import train_test_split

def split_dataset(data, target, train_size=0.5, random_state=42):
# Разделение датасета на обучающий набор и остальные данные
X_train, remaining_data, y_train, remaining_target = train_test_split(
data, target, train_size=train_size, random_state=random_state
)

# Разделение оставшихся данных поровну на тестовый и валидационный наборы
X_val, X_test, y_val, y_test = train_test_split(
remaining_data, remaining_target, test_size=0.5, random_state=random_state
)

return X_train, X_val, X_test, y_train, y_val, y_test


1. Установление общепринятой базовой оценки
Как понять, вносят ли вклад в конечный продукт — идеальную модель — ваши действия в МО-проекте?

Подход “могу определить навскидку” не годится. Здесь нужна путеводная звезда — некий ориентир, на который всегда можно опереться, чтобы понять, может ли только что подготовленная модель пройти хотя бы простейшие тесты.

Как вы неоднократно убеждались на опыте своих проектов, эта путеводная звезда является общепринятой базовой эффективностью.

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

from sklearn.dummy import DummyClassifier

clf = DummyRegressor().fit(X_train, y_train)
clf.score(X_test, y_test)
Вы не устаете рекомендовать эту практику другим, включая вашего лучшего друга.

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

Когда вы напомнили ему о базовой оценке, он попробовал DummyClassifier и понял: задача в принципе была неразрешима и все его усилия оказались пустой тратой времени, потому что ни один из его экспериментов не смог превзойти модель случайного угадывания. Ему пришлось искать новый набор данных.

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

📌 Читать дальше

@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
👍264🔥4
📊 Pmdarima

Для достижения функциональности, аналогичной auto.arima в R, в рамках scikit-learn-подобного интерфейса, используйте Pmdarima.

Pmdarima - это статистическая библиотека, для анализа временных рядов на Python.

#Python #DataScience

Github

@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1432🔥1
A/B тестирование: как сделать правильный выбор?

А/В-тестирование – это метод, который используется для сравнения двух версий переменной, например, дизайна сайта при маркетинговом исследовании с целью выявления лучшей версии. Это критически важный метод исследования в Data Science, который часто используется различными организациями при принятии решений с целью оптимизации существующего продукта и максимизации прибыли.

Представлю, что компания, продающая мебель, хочет увеличить число кликов по баннеру «Мебель на заказ». Они значительно изменили дизайн сайта для этой цели. К сожалению, не существует способов предсказать, как именно изменится поведение людей на обновленном сайте по сравнению со старой версией. А/В-тестирование может помочь, например, измерить разницу в конверсии между двумя версиями сайта и сказать, является ли эта разница статистически значимой.

Нулевая гипотеза в рамках А/В-тестирования –
предположение о том, что разницы между версиями сайта А и В в действительности нет, а все наблюдаемые различия обусловлены случайностью. Моя задача в ходе А/В-тестирования – опровергнуть нулевую гипотезу. Альтернативная гипотеза в рамках А/В-тестирования утверждает, что версии сайта А и В различны с точки зрения поведения пользователей.

Уровень значимости – это порог вероятности для определения того, являются ли результаты эксперимента статистически значимыми. Чаще всего уровень значимости устанавливается равным 0,05. Это значит, что моё утверждение о значимости результата будет справедливо на 95%. Чем ниже выбранный уровень значимости, тем ниже риск того, что будет обнаружена разница, вызванная случайностью.

P—value – это вероятность наблюдения данного результата при условии, что нулевая гипотеза верна. Если p-value меньше, чем уровень значимости (α), то отвергается нулевая гипотеза в пользу альтернативной (то есть результаты являются статистически значимыми). Например, при уровне значимости 0,05 p-value должна быть меньше 0,05 для признания результатов эксперимента статистически значимыми.

Доверительный интервал – интервал значений, в котором, с вероятностью (1- α), лежит истинное значение переменной. Доверительный интервал является оценкой возможных значений переменной в зависимости от её стандартного отклонения.

Статистическая мощность – вероятность отклонения нулевой гипотезы в случае, если альтернативная гипотеза верна. Обычно статистическая мощность теста устанавливается равной 0,8. Это значение используется для вычисления размера выборки, необходимой для подтверждения гипотезы с необходимой силой эффекта.

Организация эксперимента
Для проведения А/В-теста требуется разделить всех пользователей на две группы: одна группа будет видеть старый дизайн сайта, а другая – новый. Пользователи распределяются между группами случайным образом. Как правило, группу, которой показывают новый дизайн сайта (В), называют тестовой, а группу, которой показывают старый дизайн (А) – контрольной.

Целевая метрика – CTR, то есть количество кликов на баннер, делённое на количество показов. Буду сравнивать среднее значение метрики CTR для контрольной и тестовой групп. Предположу, что в контрольной группе среднее значение метрики составляет 12%, а в тестовой – 14%.

Если среднее значение метрики в тестовой группе выше, чем в контрольной, то означает ли это, что дизайн сайта В лучше дизайна сайта А? Ответ: нет. Необходимо показать, что результаты А/В-теста статистически значимы. Это означает, что различие в версиях наблюдается не случайно и не обусловлено какой-либо ошибкой. Проверить это можно с помощью статистических тестов.

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

📌 Читать дальше

@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
👍449🔥3
Большие датафреймы могут потреблять значительные объемы памяти. Если обрабатывать #данные небольшими фрагментами, то можно избежать нехватки памяти и получить доступ к данным быстрее.

В приведенном примере кода используется chunksize=100000, что работает примерно в 5495 раз быстрее, чем без использования chunksize.

#tips #datascience #junior

@data_analysis_ml
👍35🔥96👎2
Cleanlab 🚀

Всего за 3 строки кода эта библиотека с открытым исходным кодом может очистить любой датасет!

Вы можете:
- удалять выбросы
- находить ошибки в данных
- выявлять дубликаты
- проводить активное обучение
- строить распределения
- И многое другое ...


Cleanlab разработана специалистами Массачусетского технологического института и работает на основе нового алгоритма под названием Confident Learning!

На картинке 2 приведено упрощенное объяснение этого алгоритма!


Библиотека работает с:

- Любыми данными (текст, изображения, таблицы, аудио и т.д.)
- Любые задачи ML (классификация,, распознавание, работа с LLM и многое другое ...)

Github

@data_analysis_ml
👍36🔥63
🖥 Feature engineering и кластерный анализ клиентов на PySpark.

BigData плотно входит в нашу жизнь. Датасеты растут и постоянно изменяются, что усложняет задачу кластеризации клиентов. Обычно для задач кластеризации используется библиотека Sklearn, но с большим объёмом данных её использовать не получиться. Spark позволяет реализовать параллельные вычисления на кластерах и имеет в составе своего фреймворка библиотеку машинного обучения MLlib. В случае больших данных, когда привычные инструменты отказываются работать с такими объёмами, PySpark приходит на выручку.

При этом, прежде чем запустить алгоритмы машинного обучения на вашем датасете, необходимо подготовить данные и провести feature engineering, а это достаточно трудозатратная задача, но в то же время необходимая, так как от этого этапа во многом зависит качество конечного результата. Данный этап также необходимо делать на PySpark, опять-таки из-за объёма данных.

Перед нами стояла задача анализа массива данных заёмщиков физических лиц – злостных неплательщиков кредитов, дела по которым уже направлены в суд. Этот массив необходимо было разбить на блоки (кластеры). Цель кластерного анализа – понять, какие группы по общим признакам можно выделить, и в дальнейшем разработать для каждой группы индивидуальную тактику взыскания, и, возможно, найти пути улучшения методологии скоринга.

1. Подготовка данных
1.1. Идеи
Подготовка данных – этап, предшествующий анализу и требующий хорошего понимания предметной области. Предобработка осуществляется если не руками самого эксперта в этой области, то в очень тесном с ним сотрудничестве. Останавливаться на предварительной подготовке данных долго не будем, поскольку общих рекомендаций здесь не выработать, только кратко отметим основные моменты, которые мы произвели с нашим датасетом и которые отличаются от классической борьбы с отсутствующими значениями.

Выбирали признаки, которые:

непосредственно характеризуют именно самого заёмщика, а не кредитный продукт, не договор и прочее;
имеют значение до выхода на просрочку (то есть, например, данные по процедурам взыскания в анализ не берём, так как хотим разобраться в причинах, которые к этому привели).

Убрали признаки:

дублирующие друг друга по существу (например, остаток основного долга (ОД) в валюте и остаток ОД в рублях – достаточно оставить только один показатель);
по которым слишком много вариантов (например, 100-200 значений для признака «должность на месте работы»).
В результате предобработки датасета количество исходных данных существенно сократилось. В исходном датасете количество признаков достигало 191, после чистки на основе описанных выше идей их осталось 43. Среди них:

признаки, связанные с первым кредитным договором: вид кредитования, срок кредита, признак реструктуризации, дата выдачи кредита, ставка, валюта и т.д.;
числовые признаки (итого по всем договорам): сумма обеспечения, сумма общей задолженности в рублях, сумма погашений по основному долгу;
признаки — индивидуальные характеристики заёмщика: пол, возраст, резидентство, признак vip, наличие заграничного паспорта, категория надёжности, данные, связанные с рабочей деятельности, данные, связанные с собственностью и т.д.

1.2 Реализация на PySpark
После импорта необходимых библиотеки и создания сессии Spark, входной точки каждого PySpark приложения, загружаем исходные данные и подготовленный совместно с экспертом список признаков в объекты Spark DataFrame. DataFrame – одна из двух абстракций массива данных в Spark (вторая абстракция — RDD), которая предоставляет более высокоуровневое API (по сравнению с RDD). Метод загрузки данных зависит от формата файла (в рассматриваемом примере CSV, но может быть JSON, ORC, Parquet и др.).

Далее на основе списка признаков из исходного датасета отбираем нужные колонки. Затем группируем полученный массив данных по идентификатору заёмщика, при этом для колонок с числовыми значениями данные суммируем, а для колонок с категориальными значениями оставляем только первое значение.

📌 Читать

@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
👍126🔥1
📊 Perspective

Perspective - это инструмент интерактивной аналитики и визуализации данных, который особенно хорошо подходит для работы с большими и/или потоковыми наборами данных. С его помощью можно создавать настраиваемые отчеты, информационные панели, блокноты и приложения, а затем развертывать их отдельно в браузере или совместно с Python и/или Jupyterlab.

Github
Проект

@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
👍126🔥5
Чтобы ограничить внешний доступ и модификацию переменной за пределами класса, сделайте ее приватной, используя двойное подчеркивание.

Это позволяет свести к минимуму вероятность непреднамеренных изменений.

#Python

@data_analysis_ml
👍171🔥1🥰1
🔥 Дайджест полезных материалов из мира Data Science за неделю

Почитать:
Как «воспитать ламу» и ускорить ML-эксперименты
Airflow vs NiFi: исследуем оркестратор для формирования витрин данных
Сравнение методов веб-скрепинга для данных Википедии: Beautiful Soup против WikipediaAPI
Применение нейросетевых подходов для формирования признаков в моделях
ipywidgets: создаем графические приложения на базе Jupyter
Как использовать GPU для ускорения аналитической обработки данных
Введение в библиотеку Diffusers и диффузионные модели
70 % программистов пользуются ИИ-ассистентами. Скоро код будут писать алгоритмы?
Проблематика Open Source: профиль риска, лицензирование, как выбирать продукт и подход к разработке решений
LLaMA 2, RWKV, Santacoder и другие LLM на iOS
MLOps на примере прогноза движений акций с помощью MLRun
Using ggplot2 for Visualization in R
ИИ вместо астролога или как я создавала астробота Катю
Learning to Decode the Surface Code with a Recurrent, Transformer-Based Neural Network
Milvus Adventures | October 13, 2023
Data Science Roadmap
Exploratory Data Analysis with Data Visualization Techniques
Data Visualization
Exploratory Data Analysis using Data Visualization Techniques.
Exploratory Data Analysis using Data Visualization Techniques
Nobel Laureates’ Countries, or Creating a Word Cloud with JS
Data Modelling
Exploratory Data Analysis using Data Visualization Techniques
Exploratory Data Analysis using Data Visualization Techniques
Stream Processing Engines and Streaming Databases: Design, Use Cases, and the Future

Посмотреть:
🌐 Chatgpt, Bard , Claude, Theb - используй API лучших нейросетей бесплатно и без ВПН на Python. ( 05:23)
🌐 NLP практика. Определяем тональность текста при помощи NLTK и DL ( 19:37)
🌐 Django шаблонизация и маршрутизация ( 09:11)
🌐 Задача, которая очень часто встречается на собеседованиях #python ( 00:59)
🌐 Решение непростой задачи с Leetcode, часто всплывает на собеседования #pythontutorial ( 00:59)
🌐 Хитрая задача с собеседования #Python ( 00:59)
🌐 Lightning Interview "The Storied History of Video Games and AI" ( 46:35)
🌐 Accelerate your AI/ML Initiatives and Deliver Business Value Quickly ( 33:08)
🌐 Leveraging Generative AI in Education - A M Aditya ( 31:24)
🌐 Google’s New AI Watched 2,500 Videos! But Why? (

Хорошего дня!

@data_analysis_ml
👍133🔥3
🖥 Если вы работаете с блокнотами jupyter для работы с Python и Data Science, попробуйте эти волшебные команды, которые сэкономят вам массу времени:🧵

1. Jupyter AI: выберите любую модель и пообщайтесь с ней прямо из блокнота Jupyter.

Используйте волшебную команду "%%ai", чтобы указать модель и пообщаться с ней, используя промыт на естественном языке: https://github.com/jupyterlab/jupyter-ai

2. %%latex:

Это позволяет отображать LaTeX-код в Jupyter Notebook. Картинка 2.

3. %%sql

С помощью команд %sql(line magic) и %%sql(cell magic) можно выполнить любой SQL-запрос. Картинка 3.

4. %run

Запуск Python-файла в блокноте становится простым.

Если у вас есть python-файл, например, "demo .py", и вы хотите запустить его в блокноте, то это можно сделать с помощью следующей команды

%run demo .py

5. %%writefile

Пример:

%%writefile app .py

В результате будет создан новый файл "app .py" со всем содержимым, присутствующим в ячейке.

6. %history -n

Все мы случайно удаляем команды и их результаты в блокноте.

Для отображения всех предыдущих команд можно воспользоваться этой волшебной командой

-n поможет получить последние n команд

@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30🔥143
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 GitUp

В командах Git иногда можно запутаться (путаница между "git reset" и "git revert" может привести к непредвиденным последствиям). Кроме того, исправление ошибок в Git может быть сложным.

GitUp представляет удобную модель взаимодействия с #Git, которая позволяет работать с Git быстро и безопасно.

GitUp предоставляет:

🔹 Быстрая отмена/повтор практически всех операций
🔹 Мгновенный поиск по всему репо, включая diff-содержимое
🔹 Интерактивный граф репо для редактирования репозитория.
🔹 Удобный пользовательский интерфейс, который работает быстрее, чем командная строка.

Github

@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥42
Графовые сверточные сети: введение в GNN

Графовые нейронные сети (GNN) представляют собой одну из наиболее интересных и быстро развивающихся архитектур в области глубокого обучения.

Будучи моделями глубокого обучения, предназначенными для обработки данных, структурированных в виде графов, GNN обладают универсальностью и огромными обучающими возможностями.

Среди различных типов GNN наиболее распространенной и широко применяемой моделью стали графовые сверточные сети (GCN).

Инновационность GCN обусловлена их способностью использовать для прогнозирования как особенности узла, так и его локальность, что обеспечивает эффективный способ обработки данных, структурированных в виде графов.

В этой статье будет подробно описан механизм работы слоя GCN с объяснением его внутреннего устройства.
Кроме того, вы узнаете, как практически применять этот слой для решения задач классификации узлов с использованием в качестве инструмента PyTorch Geometric.

PyTorch Geometric (PyG) — это специализированное расширение PyTorch, созданное для разработки и реализации GNN. Эта продвинутая и в то же время удобная в использовании библиотека предоставляет полный набор инструментов для машинного обучения на основе графов.

📌 Читать дальше
📌 PyTorch Geometric

@data_analysis_ml
👍142🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Build Web Apps in Jupyter Notebook

Если вы хотите создать веб-приложение в вашем #JupyterNotebook, попробуйте Mercury.

🖥 Github

@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👍92