Машинное обучение глазами студента. Первый курс
Решил я заняться учебой. Потому что познание - это единственное что доставляет ни и с чем не сравнимое удовольствие в этом несовершенном мире, который погряз в страданиях сансары.
Ну а как апологету постгуманизма и AI не знать на приличном уровне data science machine learning просто неприемлемо.
Я выбрал курсы от МФТИ+Yandex. Это не реклама именно этих курсов (потому ссылку не даю), можно выбрать какие нравятся больше - как русскоязычные, так и на других языках. Обучение дистанционное, в формате - лекции + практические задания. Без дедлайнов, что для меня важно, так как я работаю и у меня плотный график.
Что такое вообще машинное обучение и зачем оно нужно? На самом деле объяснить смысл можно на пальцах даже ребенку. К примеру в городе есть пункт проката велосипедов, и у нас есть статистика за несколько лет - сколько велосипедов выдавалось каждый день и какие были условия в этот день - какое время года, какая погода (ветер, осадки, температура), был ли этот день праздничный, выходной или рабочий и т.д. То есть совокупность всех признаков Х и ответов y. Задача в данном случае - создать такой алгоритм, чтобы он на основании этих признаков (Х) предсказывал прогнозируемое количество прокатов (у), например в следующем месяце с минимальным количеством ошибок. То есть в ответ мы получим некоторое вещественное значение. Такие задачи называются регрессиями.
А вот другой пример. Банк хочет получить кредитный скоринг, чтобы с его помощью руководствоваться при решении давать кредит или нет. У нас есть статистика по клиентам банка, которые уже брали кредит и либо вернули их или не вернули. Здесь признаками будут характеристики клиентов (возраст, где работает, его зарплата, семейное положение и т.д.) Ответами (y) будет либо 0 либо 1 (не вернул, вернул). Здесь нам надо предсказать принадлежность нового клиента к той или иной группе кредитуемых. И на этом основании выдать кредит или отказать в нем. Такие задачи называются - классификациями.
Я выбрал достаточно простые примеры, но та же идея лежит и в работе например распознавания образов.
Собственно к работа, настройка и оптимизация алгоритмов регрессии и классификации и является смыслом машинного обучения. Причем же тут слово обучение? И чем это отличается от понятия "прогноз"? А вот тут и есть основная часть работы. Создав модель алгоритма - мы должны ее протестировать на тестовых данных, потом опять посмотреть на результат - если нужно - применить другой алгоритм и проверить все заново. В постоянной оптимизации алгоритма прогноза, который будет становиться все сильнее (т.е. с меньшим количеством ошибок) и заключается основная работа.
Но вернемся к курсу, который называется: Математика и Python для анализа данных
Python это язык программирования, представленный в "Анаконде" - специальной платформе для решения задач датасайнс и машинного обучения.
Начало было быстрым и слегка скучным - азы Питона мне и так известны. Хотя у тех, кто впервые сел за кодинг будет шок - материал подается в экспресс режиме - "кто не понял, я не виноват".
Сразу же после вводной по Питону пошла математика. Собственно обучения по Питону там 20% остальное - математика. Математики много и она дается очень сжато. Т.е. в один курс впихнули всю базу, не задерживаясь на деталях. Функции и производные даны на 3+, линейная алгебра - на отлично, теория вероятностей на 3- а вот матстат это капец (что видно по количеству дизлайков). Понять из этого водопада формул что-либо весьма трудно. Это не лекция а пересказ конспекта. Учил по другим источникам.
Теперь практические задания. Задачек маловато, и что самое интересное - в лекциях нет примеров решений точнее принципов решений. И если с типовыми задачками (ну скажем на тервер) разобраться можно - есть гугл, то с большими заданиями придется попотеть.
Первая сложная задача на линейную алгебру отпугнула значительную часть студентов и произошел первый большой отсев (прощай денежки - курс платный). Решить ее без приличных знаний по программированию - довольно сложно. То есть тут надо быть минимум продвинутым джуниором, а это за пару недель с нуля точно не прокачать. Авторам курса бы следовало сказать, что для обучения нужно обладать таким уровнем. А если вы 0 в программинге, то сперва дать базовый курс по Питону! (нормальный курс, а не то что здесь в вводной части).
Вторая сложная задача (заключительная) - это практикум по ЦПТ (центральная предельная теорема). Вот это мне далось гораздо сложнее, потому что, как я писал выше - матстат подан неудобоваримо. На этой задаче (и вообще на матстате) завалилось еще больше студентов. Хотя смотришь сейчас на файл решения и думаешь что все просто.
Впереди ждал второй курс....
мой гитхаб с практиками по datascience
https://github.com/Stedar/datasciencecourse