Обработка данных: байесовское машинное обучение на языке Python, часть 1

О чём этот курс

Здравствуйте и добро пожаловать на занятия по теме «Обработка данных: байесовское машинное обучение на языке Python, часть 1».

Этот курс целиком посвящён А/В-тестированию. А/В-тестирование используется повсюду: в маркетинге, розничной торговле, новостных лентах, онлайн-рекламе и многом другом. Оно полностью посвящено сравнению. Если вы управляете бизнесом, вы не можете просто сказать: этот логотип привлечёт больше клиентов, чем тот, – никто вам на слово не поверит. Вместо этого вы должны быть в состоянии доказать высказываемые утверждения с помощью чисел и статистических данных.

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

Вначалемы посмотрим, можно ли улучшить традиционное A/B-тестирование с помощью адаптивных методов. Это поможетнам решить так называемую дилемму исследования и использования.

Мытакже изучим эпсилон-жадный алгоритм, о котором, вероятно, вы уже слышали вконтексте обучения и подкреплением. Мы улучшим эпсилон-жадный алгоритм спомощью схожего алгоритма, который называется UCB1.

Инаконец, мы улучшим их обоих, используя полностью байесовский подход.

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

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

Вы изучите фундаментальные инструменты байесовского метода на примере А/В-тестирования, а в будущем сможете перенести эти байесовские методы в улучшенные модели машинного обучения.

Где взять код для этого курса

Весь код из моих курсов по машинному обучению находится в репозитарии Github по адресу https://github.com/lazyprogrammer/machine_learning_examples.

Папка называется ab_testing.

Github – это система контроля версий, позволяющая хранить все обновления материалов курса. Чтобы загрузить код, запустите команду git clone и адрес страницы репозитария:

git clone git@github.com:lazyprogrammer/machine_learning_examples/git

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

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

И последнее. Если вы не знаете, как пользоваться командой git, или нужна помощь в настройке среды разработки с правильными библиотеками языка Python, вы можете обратиться к лекции по настройке среды в приложении.

Как успешно пройти курс

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

Что касается предпосылок для данного курса, то первое – это знание теории вероятностей на уровне бакалавра: вы должны знать как о дискретных, так и о непрерывных распределениях вероятностей, что такое совместное и условное распределение, а также что такое плотность распределения вероятностей, функция распределения вероятностей и кумулятивная функция распределения. Второе – дифференциальное счисление – само по себе является предпосылкой для изучения теории вероятностей, так что само собой разумеется, что вы с ним знакомы. Третье – вам должны иметь навыки написания кода на языке Python и знать инструментарий библиотеки Numpy, включающий в себя библиотеки Numpy, Scipy и Matplotlib. Если это не так, то у меня есть бесплатный курс, который называется «Инструментарий Numpy на языке Python».

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

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

И последнее. Если у вас возникли затруднения в усвоении чего-либо, не стесняйтесь обращаться на форум. Я проверяю его несколько раз в день, так что ответ вы получите быстро.

Андрей Никитенко
Андрей Никитенко
Задать вопрос эксперту
Понравилась статья? Поделить с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: