Модели машинного обучения: объясняем пятилетнему ребенку

Продолжаем нашу постоянную рубрику #чтопочитать

Специалисты компании Sociaro подготовили перевод очередной статьи, которая поможет разобраться в том, что такое Машинное обучение.

Статья Megan Dibble с Medium Towards Data Science это максимально простое объяснение работы ML моделей.

Если вы новичок в data science, заголовок не был направлен на то, чтобы вас обидеть. Это мой второй пост на тему популярного вопроса на интервью, который звучит примерно так: «объясните мне [вставить техническую тему], как вы бы объяснили пятилетнему ребенку.»

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

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

Определение Машинного Обучения

<p>Illustration of Machine Learning</p>

Illustration of Machine Learning

Машинное обучение – это когда вы загружаете большое количество данных в компьютерную программу и выбираете модель, которая «подгонит» эти данные так, чтобы компьютер (без вашей помощи) мог придумывать прогнозы. Компьютер строит модели, используя алгоритмы, которые варьируются от простых уравнений (например, уравнение прямой) до очень сложных систем логики/математики, которые позволяют компьютеру сделать самые лучшие прогнозы.

Название – машинное обучение - очень удачное, потому что как только вы выбираете модель, которую будете использовать и настраивать (другими словами, улучшать с помощью корректировок), машина будет пользоваться моделью для изучения закономерностей в ваших данных. Затем вы можете добавить новые условия (наблюдения) и она предскажет результат!

Определение машинного обучения с учителем

Обучение с учителем — это тип машинного обучения, в котором данные, которые вы засовываете в модель «помечаются». Пометка просто означает, что результат наблюдения (то есть ряд данных) известен. Например, если ваша модель пытается предсказать пойдут ли ваши друзья играть в гольф или нет, у вас могут быть такие переменные, как погода, день недели и так далее. Если ваши данные помечены, то ваша переменная будет иметь значение 1, в том случае если ваши друзья пошли играть в гольф, и значение 0, если они не пошли.

Определение машинного обучения без учителя

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

Модели Машинного Обучения С Учителем

[Требуется присутствие взрослых]

Логистическая регрессия

Логистическая регрессия используется для решения проблемы классификации. Это значит, что ваша целевая переменная (та которую вы хотите предсказать) состоит из категорий. Эти категории могут быть да/нет, или что-то вроде числа от 1 до 10, которое обозначает удовлетворенность клиента. Модель логистической регрессии использует уравнение, чтобы создать кривую с вашими данными, а затем использует эту кривую, чтобы спрогнозировать результаты нового наблюдения.

Illustration of Logistic Regression
Illustration of Logistic Regression

На графике выше, новое наблюдение получило бы в прогнозе 0, потому что оно попадает на левую часть кривой. Если посмотреть на данные, по которым построена кривая, это логично, потому что в области графика «прогнозируемое значение 0» большинство точек по оси y имеют значение 0.

Линейная Регрессия

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

Illustration of Linear Regression
Illustration of Linear Regression

Линейная Регрессия чем-то напоминает логистическую регрессию, но используется, когда целевая переменная – непрерывная, а это значит, что она может принимать практически любое числовое значение. На самом деле, любая модель с непрерывной целевой переменной может быть классифицирована как «регрессия». Примером непрерывной переменной может служить цена продажи дома.

Линейная регрессия хорошо интерпретируется. Уравнение модели содержит коэффициенты для каждой переменной, и эти коэффициенты показывают, насколько сильно меняется целевая переменная при малейшем изменении независимой переменной (х-переменной). Если показывать это на примере цен на продажу дома, это означает, что вы могли бы посмотреть на уравнение регрессии и сказать что-то типа «о, это говорит мне о том, что за каждый дополнительный 1м2 от размера дома (х-переменная), цена продажи (целевая переменная) увеличивается на $25.»

K Ближайших Соседей (KNN)

Эта модель может быть использована для классификации или для регрессии. Название - «К Ближайших Соседей» не должно сбить вас с толку. Для начала модель выводит все данные на график. Часть «К» в названии относится к числу ближайших соседних точек данных, на которые модель смотрит, чтобы определить каким должно быть прогнозное значение (см. иллюстрацию ниже). Вы, как будущий data science специалист, выбираете значение K и можете поиграть с ним, чтобы увидеть, какое из значений дает лучшие прогнозы.

Illustration of K Nearest Neighbors
Illustration of K Nearest Neighbors

Все точки данных, находящиеся в круге K=__, получают “голос " относительно того, каким должно быть значение целевой переменной для этой новой точки данных. Значение, которое получает большинство голосов – это значение, которое KNN прогнозирует для новой точки данных. В иллюстрации выше, 2 ближайших соседей – class 1, в то время как 1 соседей – class 2. Таким образом, модель бы спрогнозировала class 1 для этой точки данных. Если модель предсказывает числовое значение, а не категорию, то все «голоса» - числовые значения, которые усредняются, чтобы получить прогноз.

Метод опорных Векторов (SVMs)

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

Illustration of Support Vector Machines
Illustration of Support Vector Machines

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

Я объясняю эту модель на примере классификации, но вы также можете ее использовать для регрессии!

Деревья Решений & Случайные Леса

Про это я уже рассказывала в предыдущей статья, вы можете найти ее здесь (Деревья Решений и Случайные Леса ближе к концу):

Модели Машинного Обучения Без Учителя

[Читайте с осторожностью]

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

K Значит Кластеризация

Когда вы используете K кластеризацию, вы должны начать с предположения, что в вашем датасете присутствует K кластеров. Поскольку вы не знаете, сколько групп на самом деле в ваших данных, вы должны попробовать различные значения K и с помощью визуализации и метрик понять, какое значение K подходит. Метод K средних лучше всего работает с круговыми кластерами одинаковых размеров.

Этот алгоритм сначала выбирает лучшие точки данных K, чтобы сформировать центр каждого K кластера. Затем, он повторяет 2 следующих шага для каждой точки:

1. Присваивает точку данных ближайшему центру кластера

2. Создает новый центр, взяв среднее значение всех точек данных из этого кластера

Illustration of K Means Clustering
Illustration of K Means Clustering

DBSCAN Кластеризация

Модель кластеризации DBSCAN отличается от метода K средних тем, что от вас не требуется вводить значение K, а также она может найти кластеры любой формы (см. иллюстрацию ниже). Вместо того чтобы указывать количество кластеров, вы вводите минимальное количество точек данных, которые вы хотите, чтобы присутствовали в кластере, и радиус вокруг точки данных для поиска кластера. DBSCAN найдет кластеры за вас! Далее вы можете менять значения, используемые для создания модели, пока не получите кластеры подходящие для вашего датасета.

Модели машинного обучения: объясняем пятилетнему ребенку

Кроме того, модель DBSCAN классифицирует для вас точки «шума» (т.е. точки, которые находятся далеко от всех других наблюдений). Эта модель работает лучше, чем метод K средних, когда точки данных находятся очень близко друг к другу.

Нейронные сети

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

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

Даже поверхностное изучение принципа работы нейронных сетей, вполне возможно было бы слишком сложным для этой статьи. Если вы хотите узнать больше, вот «руководство» для начинающих: https://pathmind.com/wiki/neural-network.

Вывод

Надеюсь, что эта статья не только повысила ваше понимание вышеперечисленных моделей, но и помогла понять, насколько они крутые и полезные! Когда мы позволяем компьютеру выполнять работу/обучаться, мы можем расслаблено сидеть и смотреть какие паттерны он находит. Иногда это все может сбить с толку, ведь даже эксперты не понимают точную логику, по которой компьютер приходит к тому или иному выводу, но в некоторых случаях все, что нас волнует – это качество прогноза!

Однако существуют случаи, когда нам важно, как именно компьютер пришел к прогнозу, например, когда мы используем модель, чтобы определить какие кандидаты на работу достойны первого этапа собеседования. Если вы хотите узнать об этом больше, вот TED talk который вы можете посмотреть и оценить, даже не будучи data science специалистом

1111
4 комментария

 K Значит Кластеризация K Means Clustering

Хмхм

2

:) даже не заморачивались с переводом

Пожалуйста, приложите ссылку на оригинальный материал. Еще не хватает, видимо, ссылки на Ted Talk.

Кирилл, вот ссылка на оригинальную статью

2