Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
18.8K subscribers
2.23K photos
111 videos
64 files
4.64K links
Все самое полезное для дата сайентиста в одном канале.

По рекламе: @proglib_adv

Курс по ML: https://clc.to/4hNluQ

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5b03124c8ba6dcaa121c9
加入频道
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👍41
🚀 Awesome Machine Learning — фреймворки и библиотеки для ML

Этот репозиторий был вдохновлён другим — awesome-php. Включает в себя библиотеки, фреймворки и инструменты для машинного обучения на всех языках программирования: от С до Julia (Python, конечно, тоже есть).

Вот темы, которые есть в списке, на примере Python:
🔸 Компьютерное зрение
SimpleCV
pytessarct
🔸 Обработка естественного языка
NLTK
Transformers
🔸 Анализ данных/визуализация
plotly
DataComPy
🔸 Код соревнований Kaggle
🔸 Обучение с подкреплением
DeepMind Lab
ViZDoom

🔗 Ссылка на репозиторий Awesome Machine Learning
👍5
This media is not supported in your browser
VIEW IN TELEGRAM
🥺 Итоги недели в мире ИИ и обзоры новых сервисов

У нас вышла новая статья на 📰 по мотивам еженедельной рассылки про последние новости и тенденции в мире ИИ.

Ниже — небольшая выдержка из статьи, а целиком читайте здесь 👈

💬 Новости

🔘Искусственный интеллект успешно прошёл сложные экзамены и сравнился по с человеческим IQ во многих областях. Например, ИИ так же хорош, как человек в понимании, объяснении и обсуждение текста, изображений и видео.
🔘Microsoft выпустила новую модель VASA-1, которая генерирует потрясающе реалистичные видео на основе одного фото и одной аудиозаписи.
🔘Появился первый в мире конкурс красоты и успешности для ИИ-инфлюенсеров Мисс AI.

🛠 Инструменты

🔘Vidyard AI Avatars — генерирует видео с участием вашего ИИ-двойника.
🔘Flim — ИИ-поисковик для креативных людей.
🔘EasyFolders — сохраняет диалоги с ChatGPT и Claude в удобных древовидных папках.

📈 Исследования

🔘ИИ помог учёным определить области мозга, связанные с психозом. Анализ данных МРТ с помощью нового алгоритма машинного обучения выявил характерные «подписи» в мозге людей с расстройствами.

Вы можете подписаться на email-рассылку здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
⚡️ Вышел PyTorch 2.3

Основное нововведение — поддержка пользовательских ядер Triton в torch.compile. Их можно переносить без снижения производительности или сбоев в графике.

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

Помимо этого в PyTorch 2.3:
▫️Tensor Parallel API, который позволяет реализовать распределённые вычисления. API был специально адаптирован для обучения трансформеров с очень большим количеством параметров.
▫️Подкласс torch.sparse.SparseSemiStructuredTensor, который реализует полуструктурированную разреженность и позволяет добиться ускорения вычислений до 1.6 раза по сравнению с умножениями плотных (dense) матриц.

🔗 Прочесть о релизе подробнее можно здесь
👍4🔥1
🦾🧠🏋Качаем мозги к лету!

Хотите начать работать с большими данными, применять методы машинного обучения, статистический анализ, а также разрабатывать алгоритмы для извлечения информации?

Тогда наш полугодовой курс «Математика для Data Science» от преподавателей МГУ, подходит для этого. И мы можете попасть на него со скидкой 40%

➡️ Математика для Data Science 29 990 ₽ 17 994 ₽

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

У вас не будет шансов не усвоить какие-то темы курса👌

⭐️ Переходите и активируйте бесплатные вводные занятия курса https://proglib.io/w/b1ca6fe9
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
🐍🤔 «Задумчивый» код: временная сложность операций со структурами данных в Python

Вы когда-нибудь задумывались, почему некоторые операции в Python выполняются мгновенно, а другие заставляют ваш код «задумчиво» работать? В новой статье разбираемся во временной сложности и узнаём, как писать быстрый и эффективный код.

🔗 Читать статью
🔗 Зеркало
👍3
💬 Итак, настало время расшифровать аббревиатуры. На выбор:

🔹AI/ИИ
🔹ML
🔹DL
🔹GPT
🔹DS

👇Только неправильные ответы👇
😁82
PySpark_SQL_Cheat_Sheet.pdf
5.1 MB
PySpark: небольшой гайд по библиотеке

PySpark — это Python API для Apache Spark. А Apache Spark, в свою очередь, представляет собой движок для распределённой обработки задач, связанных с большими данными. Так, PySpark позволяет работать с данными любого размера.

Библиотека поддерживает все функции Spark, включая Spark SQL и DataFrames.

🔸Spark SQL предназначен для работы со структурированными данными и позволяет сочетать SQL-запросы с программами Spark.
🔸PySpark DataFrames позволяет читать, записывать, трансформировать и анализировать данные.

👆К посту мы прикрепили небольшую шпаргалку по этим двум основным инструментам PySpark
👍5
🎓 Небольшая подборка бесплатных курсов по классическому машинному обучению

▫️Stanford CS229: Machine Learning by Andrew Ng
Культовый курс по основам машинного обучения с Эндрю Ыном, американским учёным-информатиком. Представляет собой набор видеолекций.

▫️Алгоритмы Машинного обучения с нуля
Курс на Stepik, на котором подробно разбираются основные алгоритмы классического ML: линейная и логистическая регрессии, метод k-ближайших соседей, случайный лес, метод главных компонент и др.

▫️HarvardX: CS50's Introduction to Artificial Intelligence with Python
Курс, рассказывающий о концептах и алгоритмах, лежащих в основе современного ML. Также в программе есть теория вероятностей, нейросети, NLP и др.

▫️Машинное обучение (курс лекций, К.В. Воронцов)
В курсе делается упор на глубокое понимание математических основ. Автор — зав. лаб. «Машинное обучение и семантический анализ» Института искусственного интеллекта МГУ.
👍65
💵Моделирование курса валют методом Монте-Карло

Метод Монте-Карло позволяет исследовать какой-либо случайный процесс, многократно имитируя его.

Новая статья на «Хабре» посвящена анализу и прогнозированию валютных курсов с помощью такого подхода. Автор привёл примеры кода на Python и объяснил каждую используемую функцию.

🔗 Читать статью целиком
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍6
🤖🖼️ Как работают визуальные трансформеры: магия превращения пикселей в знания

Визуальные трансформеры (Vision Transformers, ViTs) — класс моделей глубокого обучения, которые достигли выдающихся результатов в задачах классификации изображений. В основе ViTs лежит архитектура трансформеров, изначально разработанная для обработки естественного языка.

В новой статье подробно рассказываем (с картинками), как работают такие модели компьютерного зрения.

🔗 Читать статью
🔗 Зеркало
👍52😁1
🤖 Машинное обучение для людей: Разбираемся простыми словами

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

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

🔗 Ссылка на материал
👍8🔥41
✍️ Правила внедрения машинного обучения от Google

У Google есть целый документ, в котором перечислены лучшие практики для специалистов по машинному обучению. Мы приведём избранные правила.

Не бойтесь запускать продукт без машинного обучения
Для машинного обучения всегда нужны данные. Если с этим есть проблема, то стоит попробовать использовать для своего продукта нечто другое, какую-нибудь простую эвристику. Иными словами, если ML не является абсолютно необходимым для вашего продукта, не применяйте его, пока у вас не будет достаточно данных.

Сначала придумайте метрики
Прежде чем определиться, что будет делать ваша система машинного обучения, попробуйте отследить как можно больше показателей в вашей текущей системе.

Между сложной эвристикой и машинным обучением выбирайте второе
Простая эвристика может помочь быстро запустить продукт. Сложную эвристику трудно поддерживать. Как только у вас появятся данные и базовое представление о том, чего вы пытаетесь достичь, переходите к машинному обучению.

Сделайте первую модель простой и правильно настройте инфраструктуру
Прежде чем кто-либо сможет использовать вашу новую продвинутую систему машинного обучения, вам необходимо будет определить:

- Как давать примеры на вход алгоритму.
- Что такое «хорошо» и «плохо» для вашей системы.
- Как интегрировать модель в ваше приложение.

Специалисты Google также советуют выбирать простые признаки для модели.

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

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

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

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

Не тратьте время на новые признаки, если проблемой стали несогласованные цели
Если цели, поставленные перед алгоритмом или системой машинного обучения, не соответствуют общим целям продукта или бизнеса, то не стоит пытаться решить их примитивным добавлением новых признаков.
👍8👏43
🤖 Напоминаем, что у нас есть еженедельная email-рассылка, посвященная последним новостям и тенденциям в мире искусственного интеллекта.

В ней:
● Новости о прорывных исследованиях в области машинного обучения и нейросетей
● Материалы о применении ИИ в разных сферах
● Статьи об этических аспектах развития технологий
● Подборки лучших онлайн-курсов и лекций по машинному обучению
● Обзоры инструментов и библиотек для разработки нейронных сетей
● Ссылки на репозитории с открытым исходным кодом ИИ-проектов
● Фильмы, сериалы и книги

👉Подписаться👈
😢1
Подборка однострочников для NumPy и Scikit-learn

Python — гибкий язык, позволяющий писать некоторые куски кода в одну строку. Эта особенность, конечно, распространяется и на популярные библиотеки для Data Science.

1️⃣Определение объектов со значениями выше среднего
## Качество воздуха по городам
X = np.array(
[[ 42, 40, 41, 43, 44, 43 ], # Hong Kong
[ 30, 31, 29, 29, 29, 30 ], # New York
[ 8, 13, 31, 11, 11, 9 ], # Berlin
[ 11, 11, 12, 13, 11, 12 ]]) # Montreal
cities = np.array(["Hong Kong", "New York", "Berlin", "Montreal"])

polluted = set(cities[np.nonzero(X > np.average(X))[0]])

print(polluted) # ->
'''
{'Berlin', 'Hong Kong', 'New York'}
'''


2️⃣Вычисление простого ассоциативного правила
## Каждая строка представляет собой корзину покупателя
## row = [course 1, course 2, ebook 1, ebook 2]
## Значение 1 говорит о том, что предмет был куплен.
basket = np.array([[0, 1, 1, 0],
[0, 0, 0, 1],
[1, 1, 0, 0],
[0, 1, 1, 1],
[1, 1, 1, 0],
[0, 1, 1, 0],
[1, 1, 0, 1],
[1, 1, 1, 1]])

copurchases = np.sum(np.all(basket[:,2:], axis = 1)) / basket.shape[0]

print(copurchases) # Выводит долю случаев, когда два конкретных товара (ebook 1 и ebook 2) были куплены вместе


3️⃣Вычисление максимального дохода после уплаты налогов за несколько лет
## Годовая зарплата в $1000 [2017, 2018, 2019]
alice = [99, 101, 103]
bob = [110, 108, 105]
tim = [90, 88, 85]
salaries = np.array([alice, bob, tim])
taxation = np.array([[0.2, 0.25, 0.22],
[0.4, 0.5, 0.5],
[0.1, 0.2, 0.1]])

max_income = np.max(salaries - salaries * taxation)

print(max_income)


4️⃣Логистическая регрессия в одну строку
from sklearn.linear_model import LogisticRegression
import numpy as np

## [Количество сигарет, наличие рака]
X = np.array([[0, "No"],
[10, "No"],
[60, "Yes"],
[90, "Yes"]])

model = LogisticRegression().fit(X[:,0].reshape(-1,1), X[:,1])

print(model.predict([[2],[12],[13],[40],[90]])) # -> ['No' 'No' 'No' 'Yes' 'Yes']


5️⃣Вычисление статистических показателей
## Ежедневные цены на акции 5 компаний 
x = np.array([[8, 9, 11, 12],
[1, 2, 2, 1],
[2, 8, 9, 9],
[9, 6, 6, 3],
[3, 3, 3, 3]])

avg, var, std = np.average(x, axis=1), np.var(x, axis=1), np.std(x, axis=1)

print("Averages: " + str(avg))
print("Variances: " + str(var))
print("Standard Deviations: " + str(std))
Please open Telegram to view this post
VIEW IN TELEGRAM
👍117🔥3
🚀 Продвинутые курсы от Google по решению задач машинного обучения

Это подборка небольших курсов от Google, каждый из которых рассматривает конкретную задачу или подход.

🔹Леса решений
Рассказывает о том, что такое деревья решений, и как работают их ансамбли.
🔹Рекомендательные системы
Охватывает коллаборативную фильтрацию, user-based и item-based алгоритмы, а также нейросети.
🔹Кластеризация
Рассказывает о подготовке данных, использовании алгоритмов (k-means) и оценке результатов.
🔹Генеративно-состязательные сети (GAN)
Формирует понимание того, как устроены такие сети.
🔹Классификация изображений
Курс рассматривает в основном свёрточные нейронные сети.
👏61
🔥 Коллекция датасетов для больших языковых моделей (LLM)

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

Датасеты разделены на категории в зависимости от того, какие задачи будет решать LLM:
▫️общего назначения;
▫️математические;
▫️генерации кода;
▫️диалоговые;
▫️выполнения роли агентов с возможностью вызова функций.

🔗 Ссылка на репозиторий
👍4
🎓 Подборка бесплатных курсов по глубокому машинному обучению

▪️Deep Learning School
Это образовательный проект Физтех-школы прикладной математики и информатики МФТИ. Обучение идёт бесплатно. Нужно просто зарегистрироваться на курс на сайте, заполнив форму. За новым набором можно следить в группе VK. Кроме того, лекции и семинары DLS доступны в любое время на Stepik

▪️Нейронные сети
Курс от Института биоинформатики. Делает упор на математической базе нейросетей, содержит много практических заданий и тестов.

▪️MIT 6.S191. Introduction to Deep Learning
Это вводный курс Массачусетского технологического института по методам глубокого обучения. Затрагивает обработку естественного языка, компьютерное зрение и др. В свободном доступе уже есть лекции, слайды и код программы 2022 года. Вот здесь можно подписаться на уведомления о выходе более свежих лекций. 

▪️Practical Deep Learning for Coders
Это курс для людей, у которых уже есть опыт разработки. Затрагивает следующие темы: обучение DL моделей для компьютерного зрения, обработки естественного языка, развёртывание моделей, использование PyTorch, fastai и Hugging Face.

▪️Learn PyTorch for Deep Learning: Zero to Mastery book
Онлайн-книга, посвящённая конкретно PyTorch. Начинает с основ и заканчивает внедрением моделей.
5👍2🔥1
💬 Как вы привыкли писать/как вам больше нравится — промпт или промт?

Это слово является заимствованием из английского языка — prompt можно перевести как «подсказка» или «запрос». В разных текстах встречаются разные варианты его написания на русском. Какой лучше, на ваш взгляд?

❤️ — промпт
👍 — промт

#интерактив
59👍31🔥1
📕 Feature Engineering and Selection: A Practical Approach for Predictive Models

Это бесплатная книга о работе с признаками (features) для предсказательных моделей. Вот её содержание:

▫️Предварительная визуализация данных;
▫️Кодирование категориальных переменных;
▫️Обработка числовых переменных;
▫️Обнаружение эффектов взаимодействия между предикторами;
▫️Обработка пропущенных значений;
▫️Методы поиска признаков: жадные и глобальные.

🔗 Ссылка на книгу
👍8😁1
Какие существуют методы аугментации для текстов?

Аугментацией называют процесс модификации существующих данных для создания новых образцов и расширения тренировочного набора. Обычно об аугментации говорят в контексте компьютерного зрения. Самый простой способ расширить набор картинок на основе существующих — это исказить их разными методами. Но что делать, если стоит задача получить новые образцы текста для NLP? Есть несколько способов.

Замена синонимом
Это самый простой метод перефразировать предложение. Однако реализовать его на большом массиве текстов может быть нелегко, так как не все синонимы являются корректной заменой (многое, например, зависит от контекста).

Сокращения
Можно применять общепринятые сокращения. Например, вместо «так как» — «т.к.». Существуют библиотеки для подобных аугментаций.

Использование векторных представлений слов
Случайные слова можно заменять на близкие к ним в пространстве векторных представлений (embeddings). Это, своего рода, альтернатива простой замене на синонимы.

Использование контекстных представлений
Кроме классических представлений (Word2Vec, GloVe), можно использовать те, которые учитывают контекст слова. Подойдут, например, модели на базе трансформеров.

Замена и удаление несущественного/существенного
В одной из работ Unsupervised Data Augmentation предлагается заменять несущественные слова, которые определены как слова с маленьким значением TF-IDF. В другой работе наоборот предлагается заменять самые значимые слова. Так, в задаче определения сентимента можно находить самое «сентиментное» слово и удалять его (например, слова «отличный», «превосходный», «классный», «улётный» и т.п.).

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

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

Генеративные модели
Можно синтезировать новые тексты с помощью генеративных моделей, тех же GPT.

#вопросы_с_собеседований
👍11