DBSCAN: интересный алгоритм кластеризации
DBSCAN (Density-based spatial clustering of applications with noise), как следует из названия, оперирует плотностью данных. На вход он просит матрицу близости и два параметра — радиус епсилон-окрестности и количество соседей. Так сразу и не поймёшь, что это за параметры и как из выбрать. И кроме того, причем тут плотность и когда вообще применять DBSCAN? Давайте разберёмся.
😻 #clustering
DBSCAN (Density-based spatial clustering of applications with noise), как следует из названия, оперирует плотностью данных. На вход он просит матрицу близости и два параметра — радиус епсилон-окрестности и количество соседей. Так сразу и не поймёшь, что это за параметры и как из выбрать. И кроме того, причем тут плотность и когда вообще применять DBSCAN? Давайте разберёмся.
😻 #clustering
Центральная идея обучения с подкреплением: гипотеза вознаграждения
А еще мышки, кошки, сыр и дисконтирование.
😻 #RL
А еще мышки, кошки, сыр и дисконтирование.
😻 #RL
Что такое DWH
Часто этот термин трактуют неправильно, вот мы и решили расставить точки над и. Data Warehouse – это не БД, а система управления данными, предназначенная для Бизнес-аналитики (BI).
😻 #это_что
Часто этот термин трактуют неправильно, вот мы и решили расставить точки над и. Data Warehouse – это не БД, а система управления данными, предназначенная для Бизнес-аналитики (BI).
😻 #это_что
👍1
Как по книжкам познать математику для машинного обучения и анализа данных?
Наша подборка в помощь: собрали как русскоязычные, так и англоязычные книги для любого уровня подготовки.
😻 #read
Наша подборка в помощь: собрали как русскоязычные, так и англоязычные книги для любого уровня подготовки.
😻 #read
Object Importance
Это метод, который позволяет определить, как каждая запись трейна влияет на метрику.
Другими словами, он позволяет найти и избавится от бесполезных записей (шум или выбросы, например).
Этот метод хорошо реализован в Catboost:
Отрицательные значения означают, что строка уменьшает значение метрики, а положительные - что увеличивает. В зависимости от метрики нужно обратить внимание на значения определенного знака. После этого можно попробовать выкинуть плохо влияющие записи и переобучить модель.
Вот здесь есть еще туториал по использованию.
😻 #boost
Это метод, который позволяет определить, как каждая запись трейна влияет на метрику.
Другими словами, он позволяет найти и избавится от бесполезных записей (шум или выбросы, например).
Этот метод хорошо реализован в 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
GitHub
catboost/catboost/tutorials/model_analysis/object_importance_tutorial.ipynb at master · catboost/catboost
A fast, scalable, high performance Gradient Boosting on Decision Trees library, used for ranking, classification, regression and other machine learning tasks for Python, R, Java, C++. Supports comp...
Совет по написанию SQL запросов: всегда перечисляйте поля
В некоторых запросах можно использовать вместо названий столбцов их номера или не указывать их вовсе. Но во избежании багов и во имя читаемости так лучше не делать. Особенно обратите внимание на три кейса:
1) Не ставьте * в запросах типа SELECT. Вот так не очень хорошо:
I
В некоторых запросах можно использовать вместо названий столбцов их номера или не указывать их вовсе. Но во избежании багов и во имя читаемости так лучше не делать. Особенно обратите внимание на три кейса:
1) Не ставьте * в запросах типа SELECT. Вот так не очень хорошо:
SELECT *
FROM table
Вот так гораздо лучше: SELECT col, col2, col3
FROM table
2) При добавлении данных в таблицу, так же как и в SELECT перечисляйте поля таблицы. Вот так делать не нужно: INSERT INTO table
VALUES (col1, col2, col3……)
Лучше вот так: I
NSERT 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 можно реализовать так:
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
Написана простым языком, мало формул, много практических историй. Она структурирует в себе ряд понятий, которые нигде прежде структурированы не были. Кроме того, в книге рассказывается про ML алгоритмы (без глубокой математики) и про особенности их примнения на практике. А ещё про OLAP кубы, историю Retail Rocket и очень интересную и насыщенную карьеру автора. В общем, рекомендуем.
😻 #read