DataFrog: Data Science
1.87K subscribers
306 photos
5 videos
60 links
Журнал о Data Science | Machine Learning | Big Data | Deep Learning | Neural Networks | AI

@viktorreh
Download Telegram
Центральная идея обучения с подкреплением: гипотеза вознаграждения

А еще мышки, кошки, сыр и дисконтирование.

😻 #RL
Что такое DWH

Часто этот термин трактуют неправильно, вот мы и решили расставить точки над и. Data Warehouse – это не БД, а система управления данными, предназначенная для Бизнес-аналитики (BI).

😻 #это_что
👍1
Python и анализ данных

Автор:
Уэс Маккинни
Год издания: 2020

#python #ds #ru #книга

Скачать книгу
Как по книжкам познать математику для машинного обучения и анализа данных?

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

😻 #read
Object Importance

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

Этот метод хорошо реализован в Catboost:

train_pool = Pool(X_train, y_train)
val_pool = Pool(X_val, y_val)
cb = CatBoost({'eval_metric': 'RMSE'})
cb.fit(train_pool)
indices, scores = cb.get_object_importance(
val_pool,
train_pool,
importance_values_sign='Positive')

В функции доступны три метода расчета: SinglePoint (быстрый, но самый неточный), TopKLeaves ( помедленнее и поточнее) и AllPoints (долгий и самый точный).

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

Вот здесь есть еще туториал по использованию.

😻 #boost
4 способа фильтрации данных с помощью pandas\numpy 🌸

#python #numpy #pandas
Совет по написанию SQL запросов: всегда перечисляйте поля

В некоторых запросах можно использовать вместо названий столбцов их номера или не указывать их вовсе. Но во избежании багов и во имя читаемости так лучше не делать. Особенно обратите внимание на три кейса:

1) Не ставьте * в запросах типа SELECT. Вот так не очень хорошо:

SELECT *
FROM table

Вот так гораздо лучше:

SELECT col, col2, col3
FROM table

2) При добавлении данных в таблицу, так же как и в SELECT перечисляйте поля таблицы. Вот так делать не нужно:

INSERT INTO table
VALUES (col1, col2, col3……)

Лучше вот так:

INSERT INTO table (col1, col2, col3……)
VALUES (col1, col2, col3……)

3) При сортировке (ORDER BY) лучше использовать имена столбцов, а не их позиции (номера). Вот так не надо:

SELECT col, col2, col3
FROM table
ORDER BY 2, 1

Надо вот так:

SELECT col, col2, col3
FROM table
ORDER BY col2, col

😻 #SQL
Про pipe в pandas

pipe - это метод реализации паплайна в pandas через последовательную цепочку преобразований (не путать с Pipeline из скалерна).

Например, у нас есть ряд функций, каждая из которых отвечает за какое-то преобразование. Тогда пайплайн в pandas можно реализовать так:

def normilize(df):
...
return df

def fill_null(df, method):
...
return df

def parse_time(df):
...
return df

new_df = (df
.pipe(normilize)
.pipe(fill_null, method='median')
.pipe(parse_time)
)

😻 #preprocessing
👍1
Запускаем мозг перед рабочей неделей: интересная задача с собеседования аналитика

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

Сразу хочется ответить нет, но задача с подвохом. А ответ – в картинке (но сначала попытайтесь подумать сами)
1
Советуем отличную книгу

Написана простым языком, мало формул, много практических историй. Она структурирует в себе ряд понятий, которые нигде прежде структурированы не были. Кроме того, в книге рассказывается про ML алгоритмы (без глубокой математики) и про особенности их примнения на практике. А ещё про OLAP кубы, историю Retail Rocket и очень интересную и насыщенную карьеру автора. В общем, рекомендуем.

😻 #read
Самая крупная подборка видео по рекомендательным системам на русском языке от нашей команды:

Рекомендательная система на коленке, Михаил Трофимов

Дзен-митап: рекомендательные системы

Обзор нейросетевых рекомендательных систем — Дмитрий Ушанов

Яндекс изнутри: рекомендательные системы Музыки и Дзена

Пишем графовую рекомендательную систему для музыки

Рекомендательные системы | Евгений Соколов | Лекториум

R&D рекомендательной системы — как обучить и выкатить алгоритм в продакшн - Виталий Давыдов

DLS. Семинар. Recommender System.

Архитектура рекомендательной системы Дзена / Дмитрий Кондрашкин

МТС. Построение sequential recommender systems

Архитектура Real Time рекомендательной системы на примере банка: с нуля до готового продукта

Рекомендательная система на базе DataSphere

Андрей Зимовнов. Архитектура рекомендаций Дзена

Дзен-митап: исследования и рекомендательные системы

Ладно, не только от нашей команды, еще спасибо рекомендательным системам YouTube :)

😻 #recommendation_system
Keras уже курит на заднем сидении
Два самых простых способа удалить выбросы
tqdm в pandas

Если применить apply к большому датафрейму, на это может уйти много времени, но сложно сказать, сколько именно. В таких ситуациях хочется научиться как-то отслеживать прогресс. Чтобы это сделать, можно использовать tqdm.

Для этого сначала установим/обновим бибилиотеку:

pip install tqdm
pip install tqdm -U

Затем испортируем tqdm и применяем вместо обычного apply функцию progressapply. Работает она точно так же, только еще показывает прогресс-бар:

`df = pd.DataFrame(np.random.randint(0, 100, (1000000, 100)))

tqdm.pandas(desc="power DataFrame 1M x 100 of random int!")

df.progress
apply(lambda x: x2)
df.groupby(0)1.count().progressapply(lambda x: x**2)
`
Кстати, еще можно менять формат бара через опцию bar
format. Например:

tqdm.pandas(desc="MyBar", bar_format='{desc:<5.5}{percentage:3.0f}%|{bar:50}{r_bar}')

😻 #numpy_pandas #pandas