Data Secrets
77.4K subscribers
6.04K photos
593 videos
20 files
2.43K links
Главный по машинному обучению

Сотрудничество: @veron_28

РКН: clck.ru/3FY3GN
Download Telegram
У kNN есть один большой недостаток

Этот алгоритм не учитывает окрестность точки. Это значит, что мы полностью игнорируем, насколько близок был к нашей точке каждый из ее соседей. Но есть решение: Distance-weighted kNN. Подробности – в карточках.

😻 #train
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7114❤‍🔥5🤝1
TheilSenRegressor – устойчивый к выбросам близнец регрессии

Линейная регрессия – основа основ машинного обучения. Она прекрасна и часто работает гораздо лучше более сложных алгоритмов. Но есть проблема: она не устойчива к выбросам. Даже несколько выбросов могут существенно навредить итоговому скору. Но есть решение – TheilSenRegressor. Рассказываем.

😻 #train
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍636🔥3🤯2
Распространенное заблуждение про стандартизацию

Звучит оно так: стандартизацией можно пользоваться, чтобы устранить ассиметрию/сделать распределение нормальным. Как бы не так.

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

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

😻 #train
Please open Telegram to view this post
VIEW IN TELEGRAM
👍403
Лемматизация и стемминг текста

Обычно тексты содержат разные грамматические формы одного и того же слова (например, "ученый" и "ученым"), а также в документе могут встречаться однокоренные слова. Как объяснить машине, что это по сути одно и то же? Для этого нужно текст нормализовать, то есть привести все встречающиеся словоформы к одной, нормальной словарной форме. Самые простой варианты это сделать – использовать стемминг и лемматизацию.

😻 #NN #train
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍35🔥74
Вариации градиентного спуска

Градиентный спуск – это основа основ оптимизации в машинном обучении. Существует множество вариаций этого алгоритма. Три самые известные из них: стохастический спуск, batch спуск и mini-batch спуск. Сейчас расскажем, чем они отличаются и как работают.

😻 #train #NN
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍304🔥432
7 способов кодирования категориальных переменных, которые надо знать

Почти все реальные датасеты содержат категориальные фичи. Чтобы использовать их в моделях, нужно их закодировать. На карточке сверху изображены 7 способов это сделать:

1) One Hot Encoding – бинарное кодирования с добавлением новых столбцов.

2) Если убрать одну колонку из OHE, то мы избавимся от мультиколлинеарности и получим dummy encoding.

3) Если строчку со всеми нулями из пункта выше заменить на строку с -1, то получим effect encoding.

4) Или же можно просто присвоить каждому значению категории номер, и это будет label encoding.

5) Если данные как-то ранжированы по-порядку, то можно использовать ordinal encoding.

6) Count encoding – кодируем каждое значение частотой/абсолютами его встречаемости.

7) А если немного оптимизировать One Hot Encoding, то получим Binary Encoding. Например, если у нас 4 категории, то мы можем закодировать их всевозможными сочетаниями из двух битов (0 или 1).

😻 #train
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥35👍74
Как визуализировать дерево решений

Ну во-первых, это красиво. Во-вторых, самое прекрасное свойство деревьей решений – интерпретируемость, и визуализировать модель в этом случае очень полезно. Помимо того, что мы видим, как модель будет принимать решение, можно еще и оценить разделимость данных (например, посмотрев на индекс Джини и количество айтемов каждого класса в вершинах).

В комментариях написали готовый код для визуализации на примере Ирисов Фишера.

😻 #analytics #python #train
Please open Telegram to view this post
VIEW IN TELEGRAM
👍247
Самые популярные методы кросс-валидации

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

😻 #train
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32🔥84😍2❤‍🔥1🤯1
Что такое data leakage?

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

😻 #train #analytics
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍354🔥4
HalvingSearch – ускорение поиска по сетке

Подбор гперпараметров – сложная и распросраненная задача. Для ее решения часто используют поиск по сетке, но этот алгоритм очень уж медленный. Поэтому сегодня давайте обратим внимание на halving search. Его относительно недавно добавили в sklearn, и пришло время разобраться, как с ним работать.

😻 #train
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍47🔥53
Что делать с НЕнормальным распределением?

Как известно, моделям (особенно линейным) нравится, когда данные имеют нормальное распределение. Но что делать, если это не так? Рассказываем про два варианта: простой и посложнее.

😻 #train #analytics #python
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥45🌚86
Кластеризуем алгоритмы кластеризации

Алгоритмов кластеризации на свете целая куча. Чтобы помочь вам лучше их запомнить и понять, мы разбили их на группы по принципу работы: групп получилось всего 6 – вот они слева направо.

😻 #train
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍58❤‍🔥115
Пишем простую модель генерации текста

Необходимая теория – в карточках. А код уже в коментариях. И да, работать моделька будет не так хорошо, как GPT-4. Но надо же с чего-то начинать.

😻 #python #train
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍40🤯84🔥3
Проклятье размерности – кто наслал и что делать

Отводим порчу вместе с нашими редакторами.

😻 #train
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32🔥73
Как сделать линейную регрессию устойчивой к выбросам

Всем (ну почти) хороша линейная регрессия, вот только к выбросам неустойчива. Хотя и это можно исправить: краткий гайд – в карточках.

😻 #train
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72🔥218
Когда размер (усреднения) имеет значение

Все мы знаем классические метрики классификации вроде recall и f1. Но, если вы зайдете в sklearn, то увидите какие-то странные их вариации: f1-macro, f1-micro, f1-weighted… Знаете ли вы, чем они отличаются? Сейчас разберемся.

😻 #train
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍40🔥94
А мы написали нашу первую статью на Хабр!

Посвятили ее крутой библиотеке RecTools от коллег из МТС. Внутри:

▶️за что мы так любим эту библиотеку;
▶️ликбез по основным рексис-моделям (ItemKNN, ALS, SVD, Lightfm, DSSM);
▶️как готовить данные и запускать модели в библиотеке;
▶️как рассчитывать метрики;
▶️оставили много полезных дополнительных материалов.

Очень старались, так что ждем ваших реакций!

😻 #NN #train
Please open Telegram to view this post
VIEW IN TELEGRAM
👍55🔥20👏4🌚3
Как менять код на Python после запуска

Представьте: поставили вы обучаться модельку, радуетесь, но внезапно после первой эпохи осознаете, что забыли запринтить лос… И перезапускать не хочется (время же!), и без логирования как-то грустно живется.

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

Установить чудо можно через pip.

😻 #train #python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9812🫡7🔥5😁41