Роман Зыков - Роман с Data Science. Как монетизировать большие данные [litres]
- Название:Роман с Data Science. Как монетизировать большие данные [litres]
- Автор:
- Жанр:
- Издательство:Издательство Питер
- Год:2021
- Город:Санкт-Петербург
- ISBN:978-5-4461-1879-3
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Роман Зыков - Роман с Data Science. Как монетизировать большие данные [litres] краткое содержание
Эта книга предназначена для думающих читателей, которые хотят попробовать свои силы в области анализа данных и создавать сервисы на их основе. Она будет вам полезна, если вы менеджер, который хочет ставить задачи аналитике и управлять ею. Если вы инвестор, с ней вам будет легче понять потенциал стартапа. Те, кто «пилит» свой стартап, найдут здесь рекомендации, как выбрать подходящие технологии и набрать команду. А начинающим специалистам книга поможет расширить кругозор и начать применять практики, о которых они раньше не задумывались, и это выделит их среди профессионалов такой непростой и изменчивой области. Книга не содержит примеров программного кода, в ней почти нет математики.
В формате PDF A4 сохранен издательский макет.
Роман с Data Science. Как монетизировать большие данные [litres] - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Глава 9
Машинное обучение на практике

Как изучать машинное обучение
Когда я учился в Твери, в самой обычной школе, и целый год самостоятельно готовился к поступлению в МФТИ, то обкладывался учебниками и решал олимпиадные задачи по четыре часа в день. Два часа уходило на математику, два часа на физику. Я привык так учиться, по-настоящему хорошие книги – мои лучшие друзья.
Я считаю, что получить фундаментальные знания о предмете можно только из книги. Но сейчас время идет быстрее, чем 20 лет назад, и его часто не хватает, чтобы прочитать весь учебник от корки до корки. Приходится часть информации хватать по верхам – и вот тут пригодятся хорошие онлайн-курсы. Я лично пользуюсь Coursera – они первыми сделали хороший коммерческий продукт, за которым стояли профессора Стэнфорда. Я прошел там дюжину различных предметов и именно на Coursera нашел самый лучший курс по машинному обучению. Это курс Machine Learning [61], автором которого является Эндрю Ын. Сам Эндрю – сооснователь Coursera. Я думаю, что его курс сделал очень многое для популярности этой платформы. Цифра зарегистрировавшихся на Machine Learning на сегодняшний момент перевалила за 3 миллиона. Также у Эндрю есть книга по практике машинного обучения [60], она доступна бесплатно.
Отличие этого курса от остальных заключается в том, что в нем выдержан очень хороший баланс между практикой и теорией. У меня фундаментальное образование МФТИ по физике и математике, но я не люблю, когда практический курс изобилует формулами и выкладками. Курс должен давать минимальную теоретическую информацию, чтобы сделать первые практические шаги как можно быстрее. После курса слушатель должен не просто понимать, как ему что-то сделать, но и почему. А глубоко изучать теорию нужно по книгам, а не по курсам.
Еще один большой плюс курса Эндрю Ына – вы будете сами программировать алгоритмы и поймете, как они устроены внутри. Это знания лишат вас страха перед машинным обучением – оно перестанет быть для вас магией и станет ремеслом. Я уверен, тот, кто усвоил школьный курс математики и знает технический английский, сможет без больших усилий пройти этот курс [61]. В нем не хватает только пары вещей – деревьев решений и ансамблей. Кстати, Machine Learning Эндрю Ына рекомендует и Шавье Аматриан на своей странице Quora.com.
Как еще можно освоить машинное обучение? Самостоятельно писать алгоритмы. Шавье рекомендует [62] следующую последовательность действий: взять хорошую книгу по машинному обучению, прочитать вводные главы, затем выбрать в книге алгоритм, который вам интересен, и написать его на том языке программирования, которым вы владеете. Если какие-то вещи непонятны, то можно подсмотреть готовую реализацию этого алгоритма в коде каких-либо библиотек (но лучше делать это по минимуму). Я давно заметил: чем сложнее даются знания, тем лучше они усваиваются. Не нужно бояться изобретать велосипед, эти знания пригодятся в дальнейшем. Я лично воспользовался советом Шавье несколько лет назад и написал свою небольшую библиотеку для машинного обучения на Scala [63]. В то время я читал книгу по дизайну программ на Scala и решил объединить эти знания и курс на Coursera. Для библиотеки использовал векторизованные вычисления так же, как это делал Эндрю Ын.
Если вам этот подход кажется слишком сложным из-за программирования, то Эндрю дал совет. Есть одна страшная программистская тайна – мы часто ищем решение какой-либо проблемы на stackoverflow.com. Это база или форум с вопросами и ответами, которые интересуют разработчиков. Когда мы находим ответ, то часто просто копируем код из форума в собственную программу. Эндрю советует не копировать, а перепечатать на клавиатуре ответ, а еще лучше – разобраться, почему он правильный. Он считает, что так разработчик или аналитик быстрее вырастут в профессиональном плане. Нет ничего страшного в копировании, многие художники занимались этим, прежде чем стать великими, считает он.
Соревнования по ML
Второго октября 2006 года компания Netflix объявила конкурс «Netflix Prize»: кто улучшит текущие рекомендации Netflix на 10 % по метрике RMSE, получит один миллион долларов призовых. В сентябре 2009 года команда победителей «BellKor’s Pragmatic Chaos» получила свой миллион долларов. Соревнование длилось почти три года, задача была непростой.
Параллельно под эгидой научной конференции ACM SIGKDD такие соревнования проходили на платформе KDD Cup. Каждый год – это новое соревнование со своими организаторами, данными и правилами.
Все эти события привели к созданию платформы для коммерческих соревнований по машинному обучению – Kaggle.com. Компания была основана в 2010 году тремя людьми и поглощена Google в 2017 году. Сейчас Kaggle предоставляет много сервисов, но первый и самый главный – соревнования по машинному обучению с хорошими призовыми. Система полностью аналогична конкурсу от Netflix: какая-то компания публикует свои данные и правила участия, по которым будут выбираться победители. В день окончания баллы всех команд фиксируются. Победители получают призы, а компания – решение своей задачи. Часто решение и его описание потом публикуются на форуме.
В соревнованиях по машинному обучению прокачиваются навыки практического использования ML и создания фич на базе датасета. Там может поучаствовать каждый зарегистрировавшийся и получить очень хороший опыт. Все выглядит отлично, не правда ли? Но в них есть другая сторона – эти решения нельзя использовать в лоб, можно взять оттуда лишь некоторые идеи. Например, сам Netflix заявил [65], что алгоритм – ансамбль победителей состоял из 107 субалгоритмов, из которых только два дали самый значимый результат: факторизация матриц (SVD) и ограниченная машина Больцмана (RBM). В компании не без труда внедрили эти два алгоритма в рабочую систему. Сработало правило Парето: 20 % усилий (2 алгоритма) дали 80 % результата. Отмечу еще раз: они не стали внедрять всего монстра целиком, а взяли всего лишь два его элемента. Победивший алгоритм невозможно внедрить, он очень ресурсоемкий и сложный. Его поддержка стоила бы космических денег.
Это и есть основной недостаток решений, полученных на таких соревнованиях, – нет ограничений на вычисления и простоту результата. Такие решения часто будут нежизнеспособными конструктами. И тем не менее я все равно призываю вас участвовать в соревнованиях, это полезно. Подсматривайте решения на форумах и повторяйте их, учитесь делать фичи – это непросто, но в них заключено искусство ML. Не нужно занимать топовые места, достаточно, чтобы метрики ваших решений были процентов на пять хуже лидера. Даже если вы просто окажетесь выше медианы оценок – уже хорошо. Так вы научитесь многому.
Читать дальшеИнтервал:
Закладка: