Ebout Data Science | Дима Савелко pinned «Материалы по DS / DA Python / SQL - Программирование на Python - Алгоритмы и структуры данных МФТИ - Тренировка алгосов - Интерактивный тренажер по SQL - Оконные функции - Pandas - Numpy - Matplotlib Статистика: - Основы статистики I - Основы статистики…»
Основные типы задач машинного обучения
Умение различать типы задач в машинном обучении - это одна из самых важных задач, с которыми вы столкнётесь.Есть три основных вида задач машинного обучения:
- Обучение с учителем (Supervised Learning)
- Обучение без учителя (Unsupervised Learning)
- Обучение с подкреплением (Reinforcement Learning)
1️⃣ Обучение с учителем (Supervised Learning) - это когда у вас есть с чем сравнивать, то есть примеры правильных ответов, на которых обучается модель. Грубо говоря, вы показываете тупой машине, что является правильным ответом, а она со временем становится умной и красивой
а) Задача регрессии - предсказание определённого числа на основе каких-то данных. (Предсказание стоимости квартиры, исходя от месторасположения и количества квадратных метров)
б) Задача классификации - предсказание определённого класса тоже на основе каких-то данных (Предсказание пола человека по росту, весу и тд.)
2️⃣ Обучение без учителя (Unsupervised Learning) - это когда моделька предсказывает без вашего вмешательства, то есть вы не лезете в её обучение, она сильная и независимая
а) Кластеризация - объединение объектов в группы по схожим признакам
б) Рекомендательные системы - подбор контента на основе предпочтений пользователя (Spotify, youtube, netflix - все они используют рекомендательные системы)
в) Поиск аномалий — поиск объекта, сильно отличающегося от других
3️⃣ Обучение с подкреплением (Reinforcement Learning)
Модель обучается на основе её прошлых предсказаний, она взаимодействует с некоторой средой, получая от неё негативные и позитивные сигналы, тем самым выступая для себя в роле учителя
Пример
Почитать про машинное обучение можно здесь или здесь
#DataSciencce
YouTube
НА ЧТО СПОСОБЕН ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ ОТ OPENAI? @KosmoStory
➥ Подпишись - http://bit.ly/KosmoStory
➥ Наш основной канал - http://bit.ly/SUBKosmo
➥ Наш Telegram - https://telega.at/kosmo_off
➥ Группа Вк - https://vk.com/kosmo_official
Вся музыка взята с библиотеки Epidemic Sound
Production Music courtesy of Epidemic…
➥ Наш основной канал - http://bit.ly/SUBKosmo
➥ Наш Telegram - https://telega.at/kosmo_off
➥ Группа Вк - https://vk.com/kosmo_official
Вся музыка взята с библиотеки Epidemic Sound
Production Music courtesy of Epidemic…
🔥4❤1
Градиентный спуск.Что это такое ?
Разберёмся на примере:
Представьте, что вы находитесь среди гор, причём вы стоите на одной из вершин, и ваша задача - это спуститься вниз в самую глубокую точку, но при этом вы не понимаете - спускаетесь вы или нет, когда идёте вперёд. Но у вас в руке есть компас, который показывает, где находится самая высока точка среди вас этого горного массива. И вы уверенно шагаете напротив направления этой стрелки. 🏞
Градиентный спуск - это ваше движение для нахождения локального минимума функции вдоль градиента.
Градиент - это ваш компас, то есть вектор, который показывает направление наибольшее возрастания некоторой скалярной величины.
Градиент функции — это вектор, координатами которого являются частные производные этой функции по всем её переменным, грубо говоря, показывает точку куда смотрит ваш компас в вашем пространстве
Этапы градиентного спуска для функции одной переменной на картинке:
1️⃣ Мы появились в какой-то точке X_start, около которой хотим найти минимум функции
2️⃣ Затем мы находим наш градиент (направление нашего компаса)
3️⃣ И с определённой длиной шага спускаемся против направления нашего градиента. Определённая длина - это какое-то число, с которым мы будем спускаться вниз. Оно означает длину нашего шага. Назовём его learning_rate. Зачем это нужно, расскажу чуть позже.
4️⃣ Спустившись, мы получили новую точку X. И теперь повторяем всё с самого начало - то есть X_start = X
И наша финальная формула выглядит так: X = X_start - learning_rate * Градиент
Так как градиент - это вектор, который состоит из чисел. Они могут быть большими или маленькими. И мы можем спокойно перепрыгнуть наш минимум или вовсе не дойти до него. Поэтому для контроля мы используем Learning rate, он уменьшает наш шаг 🏃♀️
Подробнее можно посмотреть здесь или здесь
#DataScience
YouTube
[DeepLearning | видео 2] Градиентный спуск: как учатся нейронные сети
Оригинальная запись: https://www.youtube.com/watch?v=IHZwWFHWa-w
👍4🐳1
Про джунство на 2-ом курсеЭтот пост про:
1⃣ Как я к этому пришёл?
2⃣ Как совмещаю с вузом?
3⃣ Как меня взяли, если я на 2-ом курсе?
4⃣ Что я конкретно делаю на работе?
Можете смело пропускать пункты, которые вам не нравятся. Изложение будет по порядку 🙌
Как я к этому пришёл? 🏃♂
Работал. Много работал.
Это путь длинною в год, в начале которого я решил собрать команду, чтобы участвовать в хакатонах и параллельно изучал ML' ку в DLS.
Хакатоны дали мне бесценный опыт управления командой и некоторое виденье, как должны решаться бизнес задачки.
В конце весны, под самый разгар сессии, я решил активно начать искать различные вакансии. Путëм такого ожесточённого поиска я устроился на Karpov/Courses, а там пошло поехало...
Мне дали курсы от Толи Карпова, а они самая настоящая имба.
Я не останавливался в своих поисках работы ,и меня позвали на собеседование в DSM GROUP на аналитика, но во мне заметили потенциал дата сатаниста ,и дали мне офер сатанистом
Вывод: работай, не сдавайся, не бойся ошибок и работай
Как я совмещаю с вузом? 🫣
В вуз я хожу два раза в неделю, стараясь вовремя закрывать дедлайны, а все остальные дни хожу на работу. Спасибо моим любимым одногруппникам, что кидаете мне ДЗ. В целом каждый может совмещать, но работа - это дополнительные усилия и ответственность. Можно договариваться с одногруппниками, с преподавателями, короче, крутится и вертеться
Как меня взяли, если я на 2-ом курсе? 🤓
Всë зависит от работодателя: некоторым компаниям непринципиально взять студента, некоторые принимают только с высшим образованием, некоторые принимают только студентов. Мне повезло, моему руководителю было всë равно на возраст.
Ещё дело в том, сможете ли вы решить бизнес-задачу - вы должны доказать, что именно вы лучше всех выполните задачу и принесëте больше всех денег компании
Что я делаю на работе? 🧑💻
Я разрабатываю модель, которая должна определять один класс из десятки тысяч по текстовому описанию препарата. Это задача про nlp и про классический ml. Основная сложность заключается в достижении высокого качества. Мне нужно выбить accuracy ≈ 0.95, а я напомню, что это многоклассовая классификация по текстовому описанию
Более подробный пост будет, когда я выполню задачу, расскажу про технологии и подходы
Вывод:
- Работал много и усердно, чтобы был виден результат
- Вы должны чётко распределять нагрузку между работой и остальной жизнью
- Порешайте больше бизнес-задач в DS, чтобы показать работадателю, что
♂ ass you can ♂
#Мысляки
❤12🔥5⚡1🏆1👨💻1
Линейная регрессияВы бизнесмен, продаёте квартиры. Вам необходимо узнать сколько будут стоить квартиры с определённым количеством квадратных метров (м^2), пусть это количество = x 🤔
То есть, у вас есть:
- Количество минут до метро равное x
Вам необходимо:
- Узнать цену квартиры, пусть она будет равна y
У вас есть распределение цен в зависимости от количества квадратных метров (Красные точки на картинке снизу).
Окей, у нас есть данные, у нас есть задача: предсказать что-то от чего-то (Число на вход - число на выход). И тут приходит она - линейная регрессия 🤤
Линейная регрессия - это линейная модель, то есть зависимости в ней являются линейными: y = b_0 + b_1*x_1 + ... + b_n*x_n,
где b_0, b_1, ... b_n - это константы, обычные числа, x_1, ... x_n - переменные 🫠
Что делает линейная регрессия:
- Она инициализирует b-этки, то есть генерирует рандомные коэффициенты для нашей линейной модели
- Потом подбирает их особым образом, чтобы линия, которая получается в ходе построения модели, передавала зависимость между ценой и квадратными метрами
Как она подбирает b-этки:
Здесь в бой вступает функция потерь.
Вот представьте, что у вас получилось какое предсказание y, но оно плохое, недостаточно передаёт нашу истинную зависимость
Функция потерь показывает насколько наша модель ошибается. Взяв производную от функции потерь, и с помощью градиентного спуска будем корректировать b-этки, что позволит модели лучше передать зависимость в данных 🙄
И что дальше ? Как оценить нашу модель ?
Есть такая вещь, называется метриками. Они показывают насколько модели хорошо работают. Метрик существует довольно таки много, например, для линейной регрессии: MSE, MAE, RMSE, RMSLE. Чаще всего используется MSE. но всё таки зависит от задачи.
Итог:
Линейная регрессия - незаменимая вещь любого дата сатаниста, правильно отобрав фичи, можно выбить качество большее, чем у какой-нибудь нейронки.
Данный пост был ознакомительный, подробнее читать тут, а смотреть тут 🫡
#DataScience
Хабр
Открытый курс машинного обучения. Тема 4. Линейные модели классификации и регрессии
Всем привет! Сегодня мы детально обсудим очень важный класс моделей машинного обучения – линейных. Ключевое отличие нашей подачи материала от аналогичной в курсах эконометрики и статистики – это...
🔥6👍2❤1🍌1
Векторное представление слов
Вот представьте, что вам необходимо предсказать положительный или отрицательный отзыв фильма.Отзыв - "Фильм для дауничей, ливнул на 5 минуте" 🥴
Нам понятно, что явно отзыв отрицательный и написан недалёким человеком, но как машине понять окрас этого отзыва ?
Явно нужно построить модель бинарной классификации и засунуть в неё.... слова?! Нет, эмбеддинги
Эмбеддинги - это векторное представление чего-либо, в данном случае слов. То есть у нас есть слово "Мама", мы его представляем в вектор = [0,1, -3, ..., 12, -153]
Есть несколько методов, как можно представить слово в вектор.
1️⃣ Bag Of Words - для каждого слова подсчитываем его встречаемость в тексте.
Плюсы:
· Простой в применении;
· Не требует обработки текста.
Недостатки:
· Может порождать огромные матрицы;
· Не учитываем общий контекст задачи и среднюю частоту всех слов;
Смотреть тут
2️⃣ TF-IDF - позволяет выделить самые слова в тексте, учитывая общий контекст задачи, и то что написано в других объектах
Плюсы:
· Более компактный, чем bag of words;
· Учитывает важность слов.
Недостатки:
· Получаем оценку важности каждого слова через частности, но не погружаемся в контекст;
· Как и bag of words, у данного метода есть проблемы с однокоренными словами, падежами, склонениями и так далее.
Смотреть и читать
3️⃣ Word2Vec - название говорит само за себя, СловоКВектору
Плюсы:
· Модель быстро обучается и генерирует эмбеддинги (даже ваши собственные).
· Эмбеддинги наделены смыслом, спорные моменты поддаются расшифровке.
Минусы:
· Обучение на уровне слов: нет информации о предложении или контексте, в котором используется слово.
· Модель не учитывает то, что слово может иметь различное значение в зависимости от контекста использования
· Не очень хорошо обрабатывает неизвестные и редкие слова.
Смотреть
4️⃣ fastText - К основной модели Word2Vec добавлена модель символьных n-грамм. Это когда мы разбиваем слова на части "Черепаха" - "Чер", "ера", "реп", "епа", "пах", "аха"
Плюсы:
· Благодаря n-граммам неплохо работает на редких и устаревших словах.
· Решает проблему опечаток и склонений
Минусы:
· Обучение на уровне слов: нет информации о предложении или контексте, в котором используется слово.
· Игнорируется совместная встречаемость, то есть модель не учитывает различное значение слова в разных контекстах
Смотреть
Классная статья про эти и другие модели создания эмбеддингов
YouTube
Bag of Words
Analyzing and quantifying unstructured data, such as text, is the core of natural language processing. In this short video, director of data science, Max Margenot explains how to preprocess a text document using tokenization and stemming to create a bag of…
👍4❤2🐳2🤔1🤯1
Как сделать рекомендательную систему 🧮Мне дали тестовое задание после выигранного хака от Росэлторга 😎
На вход: у вас есть услуга ,и её надо продать. Также есть её описание: цена, категория, площадка продажи и тд.
На выход: топ покупателей, которые в потенциале могут заинтересовать этой услугой
Решение:
1️⃣ Преподготовка данных.
Датасеты, которые мне дали были довольно таки большие, поэтому я разбил его на рандомные строки и смерджил
Почистил их, сгенерил пару фич и свалидировал на основании времени
Дефолтная скучная фигня в данном случае
2️⃣ Обучение модельки
На одну услугу претендует несколько продавцов, но выигрывает только один. Поэтому я решил задачу бинарной классификации (чи купил/чи не купил).
ROC-AUC = 0.907 | PR-AUC = 0.955
Репозиторий с хорошими примерами использования CatBoost
3️⃣ Формирование эмбеддинга
Также в данных было описание: "Продам
Найдя похожие записи про продажи
Я использовал FastText над лемматизированными словами. так как он не боится редких слов и не боится орфографических ошибок из-за n-gramm
4️⃣ Метрики
Было подсчитано две метрики
1 - Для какой части процедур в зависимости от n угадали хотя бы одного участника, то есть с какой долей вероятности мы угадали хотя бы одно микрославича
2 - Общая доля угаданных уникальных участий, сколько в среднем микрославичей мы можем угадать
Вывод:
Можно построить рекомендательную системы таким образом, которым я рассказал. Такой подходит тогда, когда у вас нет оценки релевантности у продукта, а только лишь его описание. Такой метод называется Контентной рекомендацией.
Отбор кандидатов - нахождение похожих товаров с помощью FastText и косинусной близости
Формирование фичей и применение модельки поверх всего говна, которого мы сделали 💩
GitHub
RecSysRoseltorg/RecommendationSystem.ipynb at main · ditengm/RecSysRoseltorg
Recommendation system for purchases and customers - ditengm/RecSysRoseltorg
Как мы просрали хакатон
Был хакатон TenderHack, и задача была предсказать два таргета: спад цены и количество участников в определённой торговой сессии 🧮Кратко о решении:
1️⃣ Предобработали данные и сделали фичи
2️⃣ Сделал TF-IDF эмбеддинги на описании торговой сессии, затем уменьшил их размерность с UMAP и кластеризовал с помощью HDBSCAN (это проблема решения)
3️⃣ Добавил эти кластеры к фичам и классифицировал сессии на их статус (очень важная сессия)
4️⃣ Сделал две модели регрессии и предсказал таргеты
Проблема:
Если при условном миллионе моя модель работает, то при двух-трёх миллионах модель посылает меня нахуй🖕
Проблема в масштабируемости: TF-IDF имеет очень большую матрицу и обрабатывается большое количество времени
Мне понравилось, как ребята с первого места обработали текст. Они обработали его SBERT + LaBSE, что дало фиксированное количество признаков, учитывая английское описание слов. Но при этом их проблема была в том, что они не учитывали редкие слова, которые не были обучены ни SBERTом, ни LaBSE. Эту проблему можно победить правильным использованием или TF-IDF, или BM25. Ну это зависит от задачи 🫣
Итог:
Хак был крутой, самое главное, что я
Гитхаб на решение
#DataScience
GitHub
GitHub - ditengm/TenderHack: Predict of recession and participant amount of quotation session
Predict of recession and participant amount of quotation session - ditengm/TenderHack
😁4❤2😭1
Собес в ГазпромеНедавно проходил собес в Газпроме, и у меня спрашивали довольно таки интересные, а порой сложные вещи на интервью 🫣
1⃣ Что такое макро/микро метрики?
Это вещь используется при много классовой классификации, определëнным усреднением метрик
2⃣ Отличие word2vec и glow?
Это штука из слов создаëт осмысленные вектора. Их отличие в том, что glow в отличие от word2vec учитывает совместную встречаемость слов
3⃣ Как устроен трансформер?
Один из самых сложных вопросов. Трансформер выполняет seq2seq задачу, один из подвидов этой задачи - это перевод предложений из русского на английский к примеру
4⃣ Затем вопросы технического плана, от которых я выпал
- виды тестирования: unit-тесты, модульные тесты и не только
- многопоточность: multiprocessing, multithreading
- GIL
Итог: учите и познавайте всë, но не забывайте концентрироваться на одном
👍6❤3😨2
Погружение в NLPСобрал для вас серию статьей про NLP 😱
1️⃣ Эмбеддинги стоит прочитать статью и пост выше. Эмбеддинги - представление слов в вектор, то есть в цифру. Основа всех основ в NLP. да и не только в NLP
2️⃣ RNN и LSTM - статья. Рекуррентные нейронные сети - их архитектуру желательно знать для более глубокого понимания других архитектур нейронных сетей
3️⃣ Механизм внимания в seq2seq задачах - статья. Убийственная вещь, которая используется в такой мощной штуке, как трансформер
4️⃣ Трансформер - статья. Чаще всего именно эта архитектура используется для решения задач seq2seq, а такие языковые модели как BERT, GPT сделаны на основе архитектуры энкодера в трансформере
#DataScience
Библиотека программиста
Обзор четырёх популярных NLP-моделей 🙊 💬
RNNLM, Word2vec, GloVe и fastText. История создания, варианты использования, преимущества и недостатки четырёх моделей обработки естественного языка.
🍌1
2023 ГОД 🥳Этот год был тяжёлый....И я хочу с вами поделиться победами и открытиями🫡
1️⃣ Жизненные ценности - Самое главное за этот год 👨👨👦👦
Я понял, насколько важны друзья и родственники на моём пути. Друг или брат поможет, не предаст, всегда поддержит, чтобы не произошло ,он тебя не бросит. На данный момент первая ценность моей жизни - это человеческие отношения: родители, друзья, родственники. Спасибо сложностям и людям на моём пути, которые помогли мне это осознать.
2️⃣ Осознание своего пути🤔
Общаясь с друзьями и товарищами, я понимаю насколько сложно найти свою место в этой жизни: куда двигаться, к чему идти, как расти ?
В данном году Я свой вектор развития - и эта одно из главных достижений в моей жизни
3️⃣ Победа в хакатонах💪
Много поражений у меня было за спиной, но благодаря им я выиграл последующие соревнования. Если вы только начали свою Data Science деятельность, то бегом на kaggle и на хакатоны, только практика и опыт лучших поможет вам прокачаться
4️⃣ EngiishZone🗣
В этом году я пошёл на курсы по-английскому в Ezone (English Zone). Это то место, где я учу английский, а самое главное общаюсь с офигенными и разнообразными людьми. Это место помогает мне восстановить энергию для работы и последующий достижений. Благодаря данной школе я спокойно читаю статьи на английском и свободно говорю на нём
5️⃣ Знакомства🫂
Новые люди, которые перевернули моё отношение ко многим вещам: kaggle-мастер в 17 лет - легко, миллионер в 18 - изи, именно эти люди показали, что всё возможно. и предела нет.
Спасибо Вам, что читаете меня. Хочу Вам сказать одно - ЕБАШЬТЕ ,и всё у вас получиться, проверено на себе.
С Новой Годой !🥳
🔥10💅3❤2🗿2👍1🌭1
Как уничтожать собеседования ?В последний месяц я находился на собесы ,и хочу сказать вам. на что стоит обращать внимание. В каждой компании есть дефолтный стек тем, по которым вас будут пытать:
1️⃣ Python и Алгоритмы 🐍
Первое, что вам нужно сделать - это зайти на ютуб и написать "ТОП 10 ВОПРОС ПО ПИТОНЧИКУ НА СОБЕСЕДОВАНИИ ДЛЯ РАБОТЫ У ДЯДИ", вот неплохой сайт с основными вопросами.
Потом наступают алгосы, тут есть определённый список тем, которые нужно заботать: односвязные линейные списки, деревья, метод двух индексов, сортировки и многое другое, сайт с основными задачами, ну и base - это LeetCode, сайт где собраны задачи на алгосы. Старайтесь решать по 2-3 задачи в день ,и будет вам успех 🙌
Ещё вам нужно уметь вычислять сложность алгоритма. Сайт для этого
2️⃣ SQL 🗂
Опять же спрашиваем у гугла "ТОП 10 ВОПРОСОВ....", обычно спрашивают чуть теории по sql, а потом пытают по практике. Чтобы заботать практику вам сюда и сюда, а здесь вопросы
3️⃣ Статистика, A/B тесты 📈
Гугл -> "ТОП..."
Здесь спрашивают основы - ЦПТ, p-value, доверительный интервал... Вопросы и вопросы
По A/B тестам у вас могут спросить, как бы проверяли качество двух моделей с помощью A/B тестирования или просто провести A/B тест на теоретическом примере
4️⃣ Метрики в ML 📊
Google -> "...."
Метрики классификации: ROC-AUC, Precision, Recall, Accuracy, PR-AUC
Метрики для задачи регрессии: MSE, MAE, RMSE, RMSLE
5️⃣ Модели в ML 🤖
ГУГЛ.
Могут спросить про любую модельку, но здесь зачастую затрагивают градиентный бустинг или деревья, а чаще всего их вместе. Также стоит наизусть выучить тему bias variance trade-off
А эту вещь необходимо выучить для прохождения собесов
6️⃣ AI 🧮
Тут зависит от сферы куда вы идёте, тут всё индивидуально. Если я подаюсь на nlp вакансию, то и будут спрашивать nlp. Лично я углубляюсь в NLP и вот вам материал: эмбеддинги и модели
7️⃣ Собственные проекты 📝
Вы должны иметь свои проекты, принимать участие в хакатонах и в kaggle-соревнованиях, чтобы компания понимала, что на деле вы Лев Толстой, а не #%$ простой ☝️
Обычно их спрашивают в начале собеса, старайтесь максимально красиво их описать - это всегда будет бонусом.
Итог:
Ботайте все эти темы, делайте пет-проекты, и чем больше вы будете собеседоваться, тем больше шанс, что вам дадут долгожданный оффер 🧾
Python 3 | Data Science | Нейронные сети | AI - Искусственный Интеллект
51 Python Interview вопрос/ответ на собеседовании для Data Scientist - Python 3 | Data Science | Нейронные сети | AI - Искусственный…
51 Python Interview вопрос/ответ на собеседовании для Data Scientist. Вопросы по Python для исследователей данных и разработчиков программного обеспечения
❤8❤🔥2⚡1
Оффер в крупный синий холдинг в РФ и Head of Data Science в 19 лет
Мне предложили позицию Junior Data Scientist в крупном синем холдинге в РФ. Я там буду заниматься созданием рекомендательной системы для сотрудников всего холдинга, поэтому скоро будут ссылочки на ресурсы по рекомендалкам... 🤗Какой Head of Data Scientist, ты еб@#%*ый !?
Я был один Дата Саентист старой в компании, поэтому задача упала на одного меня, грубя говоря, я был Head of Data Science в 19 лет 🤡🤡🤡
Что нужно сделать ?
Передо мной стояла задача многоклассовой классификации. У нас есть бабушки, которые работают в аптеках, и они отсылают мега кривые записи об препаратах ,и мне нужно понять эту запись и выдать её эталон, который есть в справочнике 🤓
Как я сделал ?
1️⃣ Предобработал данные и построил TF-IDF эмбеддинги, Пробовал обучить FastText, но скор в конце был меньше, дообучить BERT было проблемно, так как мне дали комп с встроенным графическим процессором...
2️⃣ С помощью косинусного расстояния нашёл наиболее похожие записи и взял от них 100 первых записей. Почему именно 100 - эмпирическим путём я понял, что скор на данном количестве самый большой
3️⃣ Взял фичи с этих похожих записей и обучил CatBoost
4️⃣ Выкатил в прод, отсылая в БД предсказанный эталон
Идеи улучшения
1️⃣ Можно сначала кривые бабушкины записи обучить на эталоннах с помощью трансформера - seq2seq задача, а после этого можно выделять наиболее информативные фичи, что будет очень полезно для модели
2️⃣ Перебрать модели - я пробовал использовать только CatBoost, но я бы попробовал использовать случайный лес и построить нейронку
3️⃣ Попробовать обучить BERT-модель, так как там много данных ~25млн, бертовая модель смогла бы построить информативные эмбеддинги
Итог
От меня требовали, чтобы с вероятностью 97% моя штука предсказывала 25% данных. Пришло 100 штук, предсказал 25 штук, и я могу ошибиться только в 3%. Но я не смог достичь 25%, я сделал только 15%, то ли из-за моей тупости, то ли из-за мощностей. Скорее всего первое... 💩
❤🔥8👍4
NLP Kaggle соревнование🌚
Суть задачи:
Ребятки пишут в твиттер *совершенно справедливо заблокированная социальная сеть на территории РФ* посты, и порой они могут писать о пожарах, и задача заключается в том, чтобы определить действительно ли человек пишет о ЧП или нет 🚒🧑🚒
Сложность задачи:
"О Боже! Смотрите закат, словно огонь в небе" и "Напротив моего дома какой-то огонь". А вот теперь заставьте машину думать, где красивое небо, а где пожар 🔥
Решение:
- Текстовые данные были очень dirty, поэтому их необходимо вычистить до блеска 🧹
- Всякие мета-фичи по типу: стиль текста, sentiment score. Потому что текст официальный текст про пожар немного отличается по стилю и по уровню "агрессии" от публицистических твитов 🤬
- Длина предложения, количество хештегов, собачек, ссылок, наличие локации и keyword в описании твита 🐶
- Лемматизация текста и создание RoBERTa эмбеддингов 🎲
- Запихал в нейронку и обучил на 20 эпохах 🤖
Заключение:
В соревновании использовали F1-score. У меня он вышел 0.798, занял 402/800 место 🏆
GitHub, Kaggle Competition
GitHub
kaggle_comp_nlp_disaster_tree/README.md at main · ditengm/kaggle_comp_nlp_disaster_tree
The solve of kaggle competition of binary classification - ditengm/kaggle_comp_nlp_disaster_tree
🔥8👍1
Материалы по рекомендательным системамКраткое введение:
Есть два основных метода в RecSys:
коллаборативная фильтрация и модель, основанная на контенте✌️
Контентная рекомендация:
Вы рекомендуете фильм, новость, видео на основе данных пользователя: географическое положение, пол, количество вкидов снюса в день и тд. 🤢
Коллаборативная фильтрация:
Есть user-based подход: найти пользователей, чьи интересы максимально похожи на основе потребленных ими продуктов и выставленных оценок. Допустим Никита и Алёша очень любят гачимучи, моргенштерна и резиновый дилдо. И известно, что Дима тоже любит гачимучи и моргенштерна, и почему не порекомендовать ему резиновый предмет ? 🥵
А также есть Item-based. Данный метод рассматривает задачу с противоположной стороны: найти похожие объекты и посмотреть, как их оценивали до этого.
Ещё в этом подразделении есть матричная факторизация. Мы восстанавливаем оценки предметов тех людей, которые не оценили продукт. Тем самым мы можем принять решение о рекомендации 🤖
📚 Материалы по RecSyS 📚
Взял с поста у какого-то парня в LinkedIn эти ссылки, здесь полный список для изучения рекомендательных систем
1. Why do we need Domain Heuristics for RecSys?
2. Graph Algorithms better than Neural Networks / Matrix Factorization for RecSys?
3. Why do we need Session-based Recommender Systems?
4. How may look like the architecture of Recommender System in Production?
5. Why do we need Offline and Online Recommender System evaluation?
6. Why do we need two-stage Recommender System?
7. Do you know how to handle new user/products in Recommendation Systems?
8. Best Online Courses for RecSys?
Youtube:
1. Воронцов, ШАД
2. MTS BigData
3. Полезный плейлист по работе с текстом и RecSys
4. выступления из ODS по RecSys
5. MTS - Your first recsys
6. Большой плейлист по RecSys
🔥7👍4