Необходимость ВУЗа для программиста
Есть мир айтишников, а есть остальной мир : гуманитариев, инженеров и всех кто не IT. Я сейчас буду рассматривать конкретно сторону IT. И это чисто субъективщина, свои мысли в комментарии. Буду рад обсудить 🤡
Начну с того, что нужно среднестатистическому прогеру - работа. Потому что основное обучение ремеслу происходит именно там, а значит и развитие по карьерной лестнице. Но джуну сложно получить еë, ведь даже при поиске первой работы, тебя просят
ВУЗ не даëт релевантный опыт работы, как следствие, выпускник выходит с голой попой и никому не нужный 🫣
1 год бакалавра необходим - это матан + линал, это база, особенно в DS. Но остальные три года? За это время можно выучить релевантные предметы и стать специалистом более лучшего качества в определённой сфере
Тут можно поспорить: ВУЗ тебя делает специалиста широкого качества. Ты сможешь и в DS, и в DA, и в разработку, да даже принтеры чинить сможешь. Но качество образования лично моего ВУЗа (МИРЭА) оставляет желать лучшего ПО НЕКОТОРЫМ ПРЕДМЕТАМ. На мой вопрос к преподавателю "зачем это мне нужно будет , и где я смогу это применять? ", препод с улыбкой отворачивается, игнорируя меня. И как тогда мне интересоваться предмету, если я даже не знаю зачем он мне нужен ?
Я слышал и видел много практик, когда человек работал с второго курса и на выходе из ВУЗа получал +200к, при этом забивая на образование в ВУЗе, но не забивая на личное образование 😎
Вопрос остаëтся открытым в комментариях, но стоит подчеркнуть, что ВУЗ даëт невероятно важную вещь в жизни - социальный лифт. Ты знакомишься, сотрудничаешь, враждуешь, дружишь, создаëшь... И все те дела, которые воспитывают тебя, как социальную единицу. В этом я полностью благодарен ВУЗу.
#Мысляки
Материалы по DS / DAPython / SQL
- Программирование на Python
- Алгоритмы и структуры данных МФТИ
- Тренировка алгосов
- Интерактивный тренажер по SQL
- Оконные функции
- Pandas
- Numpy
- Matplotlib
Статистика:
- Основы статистики I
- Основы статистики II
- A/B тестирование
- Математическая статистика
- Теория вероятностей
ML / AI
- Введение в Data Science и машинное обучение
- Машинное обучение МФТИ
- Глубинное обучение ШАД
- Машинное и глубокое обучение DLS
Tableau
- Визуализация данных с Tableau
- Tableau - продвинутый курс
Пост будет со временем дополняться
Пару ссылок взял у этого товарища - https://github.com/0n1xx
#Материалы #DataScience #DataAnalyst
Stepik: online education
Программирование на Python
Курс посвящен базовым понятиям и элементам языка программирования Python (операторы, числовые и строковые переменные, списки, условия и циклы). Курс является вводным и наиболее подойдет слушателям, не имеющим опыта написания программ ни на одном из языков…
Ebout Data Science | Дима Савелко pinned «Личный ROADMAP по Data Science/Data Analytics + ссылки на ресурсы Придерживаясь этого плана, я стал Junior Data Science по NLP🤓 1. Математика 🧮 Для начала хватит первого курса вышмата: - Линейная алгебра (матрица, определитель, обратная матрица и т.д.) …»
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…
Градиентный спуск.Что это такое ?
Разберёмся на примере:
Представьте, что вы находитесь среди гор, причём вы стоите на одной из вершин, и ваша задача - это спуститься вниз в самую глубокую точку, но при этом вы не понимаете - спускаетесь вы или нет, когда идёте вперёд. Но у вас в руке есть компас, который показывает, где находится самая высока точка среди вас этого горного массива. И вы уверенно шагаете напротив направления этой стрелки. 🏞
Градиентный спуск - это ваше движение для нахождения локального минимума функции вдоль градиента.
Градиент - это ваш компас, то есть вектор, который показывает направление наибольшее возрастания некоторой скалярной величины.
Градиент функции — это вектор, координатами которого являются частные производные этой функции по всем её переменным, грубо говоря, показывает точку куда смотрит ваш компас в вашем пространстве
Этапы градиентного спуска для функции одной переменной на картинке:
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
Про джунство на 2-ом курсе
Этот пост про:
1⃣ Как я к этому пришёл?
2⃣ Как совмещаю с вузом?
3⃣ Как меня взяли, если я на 2-ом курсе?
4⃣ Что я конкретно делаю на работе?
Можете смело пропускать пункты, которые вам не нравятся. Изложение будет по порядку 🙌
Как я к этому пришёл? 🏃♂
Работал. Много работал.
Это путь длинною в год, в начале которого я решил собрать команду, чтобы участвовать в хакатонах и параллельно изучал ML' ку в DLS.
Хакатоны дали мне бесценный опыт управления командой и некоторое виденье, как должны решаться бизнес задачки.
В конце весны, под самый разгар сессии, я решил активно начать искать различные вакансии. Путëм такого ожесточённого поиска я устроился на Karpov/Courses, а там пошло поехало...
Мне дали курсы от Толи Карпова, а они самая настоящая имба.
Я не останавливался в своих поисках работы ,и меня позвали на собеседование в DSM GROUP на аналитика, но во мне заметили потенциал дата сатаниста ,и дали мне офер сатанистом
Вывод: работай, не сдавайся, не бойся ошибок и работай
Как я совмещаю с вузом? 🫣
В вуз я хожу два раза в неделю, стараясь вовремя закрывать дедлайны, а все остальные дни хожу на работу. Спасибо моим любимым одногруппникам, что кидаете мне ДЗ. В целом каждый может совмещать, но работа - это дополнительные усилия и ответственность. Можно договариваться с одногруппниками, с преподавателями, короче, крутится и вертеться
Как меня взяли, если я на 2-ом курсе? 🤓
Всë зависит от работодателя: некоторым компаниям непринципиально взять студента, некоторые принимают только с высшим образованием, некоторые принимают только студентов. Мне повезло, моему руководителю было всë равно на возраст.
Ещё дело в том, сможете ли вы решить бизнес-задачу - вы должны доказать, что именно вы лучше всех выполните задачу и принесëте больше всех денег компании
Что я делаю на работе? 🧑💻
Я разрабатываю модель, которая должна определять один класс из десятки тысяч по текстовому описанию препарата. Это задача про nlp и про классический ml. Основная сложность заключается в достижении высокого качества. Мне нужно выбить accuracy ≈ 0.95, а я напомню, что это многоклассовая классификация по текстовому описанию
Более подробный пост будет, когда я выполню задачу, расскажу про технологии и подходы
Вывод:
- Работал много и усердно, чтобы был виден результат
- Вы должны чётко распределять нагрузку между работой и остальной жизнью
- Порешайте больше бизнес-задач в DS, чтобы показать работадателю, что
♂ ass you can ♂
#Мысляки
Линейная регрессияВы бизнесмен, продаёте квартиры. Вам необходимо узнать сколько будут стоить квартиры с определённым количеством квадратных метров (м^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. Линейные модели классификации и регрессии
Всем привет! Сегодня мы детально обсудим очень важный класс моделей машинного обучения – линейных. Ключевое отличие нашей подачи материала от аналогичной в курсах эконометрики и статистики – это...
Векторное представление слов
Вот представьте, что вам необходимо предсказать положительный или отрицательный отзыв фильма.Отзыв - "Фильм для дауничей, ливнул на 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…
Как сделать рекомендательную систему
🧮Мне дали тестовое задание после выигранного хака от Росэлторга 😎
На вход: у вас есть услуга ,и её надо продать. Также есть её описание: цена, категория, площадка продажи и тд.
На выход: топ покупателей, которые в потенциале могут заинтересовать этой услугой
Решение:
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