Как стать автором
Обновить
50
3.9
Егор Захаренко @egaoharu_kensei

Почта для связи egorzakharenko97@gmail.com

Отправить сообщение

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

Спасибо. Рад слышать, что статья оказалась полезной :)

Спасибо за хороший обзор. Побольше бы таких статей. А ваша команда выступала на этой конфе? Если да, то не могли бы рассказать что было представлено и где с этим можно ознакомиться? Думаю, многим это будет интересно.

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

Всё верно, просто возникло недопонимание). По сути, SVD является обобщением спектрального разложения и одним из его популярных примеров. Проще говоря, в скобках SVD указан не как расшифровка, а как один из примеров. Этот момент я только что подправил в статье, чтобы не было недопониманий. Спасибо за хорошее замечание.

К слову, такого рода "странные" обозначения иногда встречаются в статьях по ML, например, как в предпоследней из дополнительных источников.

Предположим, вам повезло и вы нашли хороший платный курс, который вам дал неплохую базу. Однако, сразу возникает вопрос: почему вы сами не смогли разобраться в данной теме? Дело в том, что вам на курсах все раскладывают по полочкам (в случае хороших) и дают ментора, но как быть в жизни, когда не у кого спросить и на работе придётся изучать новые технологии самостоятельно? Эти навыки очень важны и требуют времени на их приобретение. Лично вы готовы ждать пока выпускник научится самостоятельно учиться и решать свои проблемы? К слову, я тоже сам обучался, поэтому беру это не из головы :)

Приходится читать сложную литературу, документацию, изучать научные статьи, отсеивать некачественную информацию и справляться со стрессом самостоятельно, когда ничего не получается. Такой опыт можно получить на курсах? Вряд ли. Самоучки как раз этими навыками обладают, если ответственно обучались конечно же. К тому же сегодня в открытом доступе есть большое количество хороших бесплатных материалов. Не могу говорить про всех, но лично из своего опыта, все самоучки, которых я видел, гораздо сильнее выпускников с курсов или универов. Это касается не только айти.

Прочитав комментарии про ранги Junior - Senior, я так и не понял о чём идёт речь)

Например, группа Junior - это среди джунов или для джунов? На мой взгляд, более правильным было бы делать для Junior - Senior, поскольку любой из этих специалистов может писать статьи как сложного, так и простого уровня.

Спасибо :) Возможно, в будущем выпущу ещё одну статью, если будет большая активность со стороны аудитории на эту тему. К сожалению, пока что на это нет времени, поскольку на данный момент я работаю над другими статьями и проектами.

Спасибо :). Честно говоря, изначально я планировал рассказать про большее количество алгоритмов (в том числе и про не градиентные методы, а также про самые последние оптимизаторы) с их реализацией с нуля на питоне, но в последний момент решил этого не делать. Дело в том, что очень часто бывает так, что на бумаге алгоритм работает хорошо, а через год-два появляются контрпримеры, на которых ломаются его доказательства. Обычно проходит несколько лет, чтобы оптимизатор хорошо зарекомендовал себя на практике.

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

Честно говоря, я как-то пропустил ваш ответ. Прошу прощения, что отвечаю спустя год. Спасибо большое за дополнительные материалы, однако я уже за это время реализовал все ML-алгоритмы с нуля :)

Если вам будет интересно, можете ознакомиться с этим здесь.

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

В контексте машинного обучения numpy, pandas, matplotlib — это минимальный набор для анализа и обработки данных, которым предстоит пользоваться всегда или почти всегда. Хотя, лично я сюда бы ещё отнёс scipy и seaborn.

Например, при построении графиков решающих границ алгоритмов, я пользовался библиотекой MLxtend — вот она уже точно не является базовой, поскольку можно было бы обойтись и без неё, но просто она делает жизнь немного проще.

Без шуток, если вы считаете, что эту тему можно раскрыть более подробно и у вас это вызывает такой интерес, то почему бы не внести вклад в развитие IT-сообщества и сделать статьи по ML так, как хочется вам? По-моему, Хабр как раз для чего-то подобного и создавался.

Я не знаю по какой причине вас это так напугало и вы начали оправдываться, но уверен, что если вы сделаете то о чём говорите, то аудитория обязательно вас примет с теплом.

На гитхабе и kaggle также есть похожие проекты, которые так и называются "ml-алгоритмы с нуля". Правда, большинство из них либо слишком простые и представлены не в таком объёме, либо не работают вообще. Поэтому, если вам будет интересно, что такое "с нуля" и как это выглядит, то рекомендую посетить эти сайты. В любом случае, это будет гораздо лучше, чем писать глупости и придираться по мелочам.

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

Да, на практике используются готовые, оптимизированные модели, но их хорошее и глубокое понимание будет очень большим плюсом при выборе и отладке алгоритма, и тогда машинное обучение не будет казаться чёрным ящиком. Или если вы захотите заниматься исследованиями в ML, то есть разрабатывать свои собственные модели, то для этого также нужно иметь хорошее понимание как устроены классические концепции.

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

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

Тогда у меня есть к вам предложение: если у вас такой большой опыт в программировании и вы считаете, что в статье приведены недостаточно подробные реализации, не хотите написать по этому поводу собственные реализации ml-алгоритмов без импорта каких-либо библиотек или, как вы считаете, "с нуля", чтобы мы все убедились как надо делать правильно? Если есть человек, который может что-то сделать лучше, я буду только "за".

Можете использовать любой удобный для вас ЯП: в любом случае я прочитаю с большим интересом. Как вам идея? Сможете сразу показать мастер-класс и поделиться полезной информацией с молодёжью.

Если кому-то понравилась такая идея, давайте поддержим дядю Серёжу лайками под этим комментарием :)

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

Но перед тем как переходить к ML, лучше всё-таки изучить программирование и математику хотя бы на базовом уровне, чтобы это не казалось магией. По Python есть хорошие курсы на Stepik "Поколение Python" (там, кстати, и про библиотеки тоже рассказывается), а по математике есть хороший сайт mathprofi.

Можете уточнить какие библиотеки в контексте машинного обучения вы считаете базовыми и почему numpy, pandas и matplotlib на ваш взгляд ими не являются? Насколько я понял, вы хотите, чтобы я написал эти библиотеки с нуля, но каким образом это может помочь понять алгоритмы и основные концепции ML? Надеюсь, вы это сказали просто из-за незнания. Просто уточню, что алгоритмы scikit-learn также базируются на очень большом количестве библиотек, включая и вышеперечисленные.

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

К слову, позже по этим библиотекам тоже будут туториалы.

В контексте машинного обучения и программирования в целом, реализация алгоритмов с нуля (from scratch на английском) означает их создание с нуля без использования готовых библиотек (в данном случае scikit-learn). В каждой статье ниже это название указано перед кодом. Это общепринятый термин и он используется повсеместно.

Скорее всего, вы подумали, что "с нуля" — это уровень подготовки, но специально для этой цели я указал уровень сложности в как в статье, так и перед её названием. Когда выйдет курс, то я отдельно обозначу, что нужно изучить перед его прохождением и где это можно будет сделать.

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

1
23 ...

Информация

В рейтинге
1 030-й
Зарегистрирован
Активность

Специализация

ML Engineer
Deep Learning
Pytorch