10 рецептов машинного обучения от разработчиков Google
В десяти коротких видеоуроках курса машинного обучения от разработчиков Google рассмотрены приемы Machine Learning для начинающих аналитиков данных.
Для кого эти уроки?
В небольшом видеокурсе машинного обучения от разработчиков Google рассматриваются базовые рецепты решения задач Machine Learning. Логично, что в этом курсе наравне с библиотекой scikit-learn используется и фреймворк машинного обучения Google – TensorFlow. Отличительной особенностью курса является то, что для понимания некоторых моделей машинного обучения их код пишется с нуля без использования сторонних библиотек, на чистом Python. Таким образом, курс подойдет для тех, кто хорошо знаком с Python, но только приступает к обучению Machine Learning.
1. Hello World машинного обучения от разработчиков Google
Шесть строк на Python – все, что вам потребуется для написания первой программы машинного обучения. Во вступительном уроке кратко описывается, что такое машинное обучение и почему это важно. Рассматривается пример задачи классификации и дается соответствующий код с использованием библиотеки scikit-learn.
2. Визуализация дерева решений
В первом эпизоде дерево решений рассматривалось как «черный ящик»: какие-то данные принимались на вход, какой-то результат получался на выходе. Но в чем заключался алгоритм? Второй эпизод посвящен визуализации процесса, протекающего в этой предсказательной модели машинного обучения. Примером служит классическая задача классификации цветов ириса по трем видам.
3. Как подобрать хорошие признаки?
Хорошие признаки информативны, независимы и просты. В этом эпизоде при помощи гистограмм распределений параметров показывается, как отличить хорошие для обучения модели признаки от плохих, и почему составные признаки могут приводить к более быстрому обучению, чем простые.
4. Пишем конвейер кросс-валидации
В четвертом видеоуроке демонстрируется простейший конвейер кросс-валидации для контролируемого обучения из 12 строк кода. По пути обсуждаются вопросы обучающей и тестовой выборок, процесс обучения модели. В качестве инструмента визуализации процесса обучения используется ресурс playground.tensorflow.org.
5. Пишем классификатор с нуля
Пришло время написать первый классификатор, основанный на простейшей версии метода k-ближайших соседей. Для этого в программе из предыдущего урока вместо импорта классификатора из sklearn напишем с нуля свой собственный класс c методами для обучения модели (fit) и вывода предсказаний (predict). Для определения расстояний между соседями используется библиотека SciPy.
6. Обучение классификатора изображений
В шестом уроке описывается процесс создания собственного классификатора изображений с использованием TensorFlow – библиотеки глубокого обучениия Google. В качестве примера рассматривается задача классификации изображений цветов разных видов, однако вы можете тренировать классификатор на любых других примерах – главное, чтобы в соответствующих каталогах было хотя бы по сотне релевантных примеров. Подробное описание действий на TensorFlow for Poets.
7. Распознавание рукописных цифр
В этом видео рассматривается классическая задача машинного обучения, решаемая с использованием нейросетей – классификация рукописных цифр из датасета MNIST. К этому уроку написан блокнот Python (что это за зверь – мы рассказывали раньше). Для работы с этим уроком вам также потребуется Docker. Если описание из видео показалось вам не очень ясным, или заинтересовало, как происходит обучение, посмотрите введение в нейросети на примере распознавания цифр. Рассматриваемый линейный классификатор представляет простейший вариант нейронной сети, без скрытых слоев.
8. Пишем с нуля дерево решений
В этом уроке показывается, как с нуля на чистом Python написать модель дерева решений на примере алгоритма CART (деревья классификации и регрессии). Поиграть с кодом можно в блокноте Python или обычном py-файле. Попутно объясняются концепции меры нечистоты распределения по критерию Джини (Gini impurity) и информационного выигрыша (information gain).
9. Введение в проектирование признаков
В девятом уроке рассматриваются методы построения составных признаков, позволяющие более эффективно обучать модели: категориальное разбиение по заданным числовым границам, пересечение признаков, хэширование и вложение. В качестве инструмента визуализации применяется Facets.
10. Введение в Weka
Заключительный урок мини-курса машинного обучения от разработчиков Google знакомит с инструментом Weka – старой библиотекой с графическим интерфейсом, позволяющим визуализировать датасеты, обучать и оценивать различные классификаторы. Это один из инструментов, полезных в процессе обучения Machine Learning.