в машинном обучении работают с изображениями которые
Машинное обучение для чайников
С технологиями машинного обучения сегодня сталкивается повседневно каждый житель мегаполиса. Но не каждый знает, на что машинное обучение действительно способно.
Машинное обучение с каждым днем занимает всё большее место в нашей жизни ввиду огромного спектра его применений. Начиная от анализа пробок и заканчивая самоуправляемыми автомобилями, всё больше задач перекладывается на самообучаемые машины.
Мы порой даже примерно не представляем, как работают некоторые приложения, основанные на методах машинного обучения. Скажем, никто не сможет вам ответить на вопрос «Почему мне сегодня в рекламе показали сайт A, а не Б?». Наиболее печальным во всей этой ситуации является то, что большинство людей имеет неверное представление о машинном обучении.
Вводная
Машинное обучение считается ветвью искусственного интеллекта, основная идея которого заключается в том, чтобы компьютер не просто использовал заранее написанный алгоритм, а сам обучился решению поставленной задачи.
Любую работающую технологию машинного обучения можно условно отнести к одному из трёх уровней доступности. Первый уровень — это когда она доступна только различным технологическим гигантам уровня Google или IBM. Второй уровень — это когда ей может воспользоваться людей студент с некоторым багажом знаний. Третий уровень — это когда даже бабуля способна с ней совладать.
Машинное обучение находится сейчас на стыке второго и третьего уровней, за счёт чего скорость изменения мира с помощью данной технологии растет с каждым днем.
Обучение с учителем и без учителя
Большую часть задач машинного обучения можно разделить на обучение с учителем (supervised learning) и обучение без учителя (unsupervised learning). Если вы представили себе программиста с плёткой в одной руке и куском сахара в другой, вы немного ошиблись. Под «учителем» здесь понимается сама идея вмешательства человека в обработку данных. При обучении с учителем у нас есть данные, на основании которых нужно что-то предсказать, и некоторые гипотезы. При обучении без учителя у нас есть только данные, свойства которых мы и хотим найти. На примерах разницу вы увидите немного яснее.
Обучение с учителем
У нас есть данные о 10 000 квартирах в Москве, причём известна площадь каждой квартиры, количество комнат, этаж, на котором она расположена, район, наличие парковки, расстояние до ближайшей станции метро и так далее. Кроме того, известна стоимость каждой квартиры. Нашей задачей является построение модели, которая на основе данных признаков будет предсказывать стоимость квартиры. Это классический пример обучения с учителем, где у нас есть данные (10 000 квартир и различные параметры для каждой квартиры, называемые признаками) и отклики (стоимость квартиры). Такая задача называется задачей регрессии. О том, что это такое, мы поговорим чуть позже.
Другие примеры: на основании различных медицинских показателей предсказать наличие у пациента рака. Или на основании текста электронного письма предсказать вероятность того, что это спам. Такие задачи являются задачами классификации.
Обучение без учителя
Интереснее ситуация обстоит с обучением без учителя, где нам неизвестны «правильные ответы». Пусть нам известны данные о росте и весе некоторого числа людей. Необходимо сгруппировать данные на 3 категории, чтобы для каждой категории людей выпустить рубашку подходящего размера. Такая задача называется задачей кластеризации.
Еще одним примером можно взять ситуацию, когда у нас каждый объект описывается, скажем, 100 признаками. Проблема таких данных заключается в том, что построить графическую иллюстрацию таких данных, мягко говоря, затруднительно, поэтому мы можем уменьшить количество признаков до двух-трёх. Тогда можно визуализировать данные на плоскости или в пространстве. Такая задача называется задачей уменьшения размерности.
Классы задач машинного обучения
В предыдущем разделе мы привели несколько примеров задач машинного обучения. В этом мы постараемся обобщить категории таких задач, сопроводив список дополнительными примерами.
Нейронные сети
В машинном обучении есть большое число алгоритмов, причём некоторые являются довольно универсальными. В качестве примеров можно привести метод опорных векторов, бустинг над решающими деревьями или те же нейронные сети. К сожалению, большая часть людей довольно смутно представляет себе суть нейронных сетей, приписывая им свойства, которыми они не обладают.
Нейронная сеть (или искусственная нейронная сеть) — это сеть нейронов, где каждый нейрон является математической моделью реального нейрона. Нейронные сети начали пользоваться большой популярностью в 80-х и ранних 90-х, однако в конце 90-х их популярность сильно упала. Впрочем, в последнее время это одна из передовых технологий, используемых в машинном обучении, применяемая в огромном количестве приложений. Причина возврата популярности проста: увеличились вычислительные способности компьютеров.
С помощью нейронных сетей можно решать как минимум задачи регрессии и классификации и строить крайне сложные модели. Не вдаваясь в математические подробности, можно сказать, что в середине прошлого века Андрей Николаевич Колмогоров доказал, что с помощью нейронной сети можно аппроксимировать любую поверхность с любой точностью.
Фактически же, нейрон в искусственной нейронной сети представляет собой математическую функцию (например, сигмоидную функцию), которой на вход приходит какое-то значение и на выходе получается значение, полученное с помощью той самой математической функции.
Ограниченность нейронных сетей
Впрочем, в нейронных сетях нет ничего магического и в большинстве случаев опасения касательно сценария «Терминатора» не имеют под собой оснований. Допустим, учёные натренировали нейронную сеть на распознавание рукописных цифр (такое приложение может использовать, скажем, на почте). Как может работать такое приложение и почему здесь не о чем беспокоиться?
Допустим, мы работаем с изображениями 20×20 пикселей, где каждый пиксель представляется оттенком серого (всего 256 возможных значений). В качестве ответа у нас имеется одна из цифр: от 0 до 9. Структура нейронной сети будет следующая: в первом слое будет 400 нейронов, где значение каждого нейрона будет равно интенсивности соответствующего пикселя. В последнем слое будет 10 нейронов, где в каждом нейроне будет вероятность того, что на изначальном изображении нарисована соответствующая цифра. Между ними будет некоторое число слоев (такие слоя называются скрытыми) с одинаковым количеством нейронов, где каждый нейрон соединён с нейроном из предыдущего слоя и ни с какими более.
Рёбрам нейронной сети (на картинке они показаны как стрелочки) будут соответствовать некоторые числа. Причем значение в нейроне будет считаться как следующая сумма: значение нейрона из предыдущего слоя * значение ребра, соединяющего нейроны. Затем от данной суммы берётся определенная функция (например, сигмоидная функция, о которой мы говорили ранее).
В конечном итоге задача тренировки нейронной сети заключается в том, чтобы подобрать такие значения в ребрах, чтобы отдавая первому слою нейронной сети интенсивности пикселей, на последнем слое мы получали вероятности того, что на изображении нарисована какая-то цифра.
Более простыми словами, в данном случае нейронная сеть представляет собой вычисление математической функции, где аргументы — это другие математические функции, которые зависят от других математических функций и так далее. Разумеется, при подобном вычислении математических функций, где подгоняются некоторые аргументы, ни о каком экзистенциальном риске речи идти не может.
Интересные факты и лайфхаки
Приведём несколько интересных и не совсем очевидных примеров использования машинного обучения в реальной жизни.
Например, вторая кампания Барака Обамы была фактически выиграна лучшей на тот момент командой в области анализа данных. Разумеется, речь не идет о том, что они советовали ему соврать о чем-то, работа строилась значительно более умным путем: они выбирали, в каком штате, перед какой аудиторией, в какой день и на какую тему он должен выступать. Причем каждый раз они замеряли, как это сказывается на опросах вида «За кого бы вы проголосовали, если бы выборы были в ближайшее воскресенье?». Другими словами, подобные решения принимали не политтехнологи, а исключительно специалисты по анализу данных. Особенно интересным это становится в свете того, что, по оценкам специалистов, это дало ему преимущество в 8-10%.
Кроме того, современный интернет довольно сложно представить без ретаргетинга, или персонализированной рекламы. Вспомните: вы выбираете какой-то продукт в интернете, а после покупки ещё на протяжении двух недель вам показывают его в различного рода рекламе. В одном из своих выступлений директор по маркетингу сервисов компании «Яндекс» Андрей Себрант дал на этот счёт такой совет:
Дарю лайфхак. После того как вы купили топор, чтобы не любоваться топорами ещё две недели, зайдите в магазин модной одежды. Дальше, в зависимости от ваших гендерных предпочтений, зайдите либо в мужское, либо в женское бельё. Бросьте несколько предметов в корзину, закройте корзину и уйдите. У этих ребят очень большие бюджеты на ретаргетинг: следующие две недели вас, в зависимости от ваших предпочтений, будут преследовать либо красивые полуодетые мужчины, либо красивые полуодетые женщины. Это лучше, чем топор.
Рекомендации по обучению
Если у вас появилось желание изучить технологии машинного обучения, стоит отметить, что для глубокого изучения предмета с пониманием всего фундамента следует разбираться как минимум в математическом анализе, линейной алгебре и методах оптимизации (с упором на последние два). Кроме того, желательно знать основы программирования и какой-нибудь язык программирования. В машинном обучении, как правило, используется R, Python или Matlab.
Для самого начального изучения отлично подойдет классический курс Эндрю Энга на Coursera по машинному обучению. Главной его особенностью является исключительная практическая направленность, причём обширный багаж математических знаний в данном курсе абсолютно не обязателен.
Мотивировать его изучение можно следующим образом: посмотрите учебный план. Если вы просмотрите все лекции и решите все задания, то вы гарантированно сможете применять все эти вещи на практике. В частности, вы освоите алгоритмы линейной регрессии (задача регрессии), логистической регрессии, метода опорных векторов, нейронных сетей (задача классификации), K-means (кластеризация), PCA (понижение размерности), выявления аномалий и узнаете как построить рекомендательную систему (рекомендация товаров по вашим оценкам, например, фильмов или песен). На последней неделе курса вам также расскажут, как построить систему, которая будет находить и расшифровывать надписи на картинках или опознавать людей.
Для тех, кто хочет изучать предмет со всеми математическими тонкостями в лучших традициях сильных технических вузов, можно порекомендовать курс от ВШЭ или специализацию от МФТИ. Заметим лишь, что специализация является платной и для доступа к ней придется оформить подписку приблизительно за 3000 рублей в месяц. Впрочем, есть бесплатный период в 7 дней.
Автор: Людмила Овчинникова
Переводчик, иллюстратор и каллиграф из Санкт-Петербурга
Основы машинного обучения и практика его применения к продуктам, над которыми вы работаете.
Не прекращаются споры о том, должны ли дизайнеры писать код или нет. Тем не менее, где бы вы ни встретили этот вопрос, большинство согласятся с тем, что дизайнеры должны иметь представление о программировании: это помогает им ставить себя на место разработчиков и понимать возможности и ограничения технологий. Мыслить, выходя за рамки perfect pixel макетов. По этой же причине нужно знать и о машинном обучении.
Артур Сэмюэл в 1959 году определил машинное обучение (machine learning, ML) как область исследований, которая дает компьютерам возможность обучаться, не будучи запрограммированными напрямую (Артур Сэмюэл, 1959). Определению почти 50 лет, но только недавно мы увидели реальные технологии и как круто это может работать: виртуальные ассистенты, беспилотное управление и почта без спама — все это существует благодаря машинному обучению.
Почему машинное обучение важно для дизайна
Машинное обучение сейчас очень доступно, и дизайнеры могут подумать о том, как его можно применить для улучшения своих продуктов. Нам стоит научиться говорить с разработчиками о том, что можно сделать, что нужно для этого подготовить и какого результата ожидать. Ниже несколько примеров, с которых можно начать такое обсуждение.
Персонификация опыта
С машинным обучением можно анализировать поведение пользователей и настраивать продукт под них. Это позволяет выдавать рекомендации, улучшать результаты поиска, уведомления и лучше таргетировать рекламу. Например, системы рекомендаций музыкальных сервисов Spotify, Apple Music и Яндекс.Музыка используют алгоритмы машинного обучения.
Кратко о том, как формируется рекомендованный контент.
Обнаружение аномалий
Машинное обучение эффективно при поиске аномального контента и поведения. Например, его используют для обнаружения мошенничества с платежами по кредитным картам. Сервисы электронной почты определяют спам, а социальные сети находят агрессивные высказывания.
Создание новых средств взаимодействия
Поиск инсайтов
Машинное обучение помогает искать одинаковые предпочтения разных пользователей, объединять их в группы и анализировать более широко. Так можно оценивать популярность разных сервисов среди групп пользователей или внедрять их только людям с определенным предпочтениями.
Рекомендация контента
Машинное обучение позволяет предсказывать, какой следующий шаг сделает пользователь. Зная это, мы можем готовиться к его следующему действию. Например, если мы можем предсказать, какой контент планирует просмотреть пользователь, мы можем заранее его подгрузить, чтоб уменьшить время ожидания. «Умные ленты» социальных сетей выбирают из множества постов именно те, которые могут заинтересовать именно этого человека.
Типы машинного обучения
В зависимости от приложения и характера доступных данных, существуют различные типы алгоритмов машинного обучения. Я кратко опишу каждый из них.
Обучение с учителем
Обучение с учителем позволяет нам делать предположения, используя корректные размеченные данные. Размеченные данные — это группа данных с присвоенными справочными тегами или выходной информацией. Например, массив фотографий котов, в котором указано, что это именно фотографии котов. Машина перемалывает такой массив данных и учится угадывать, есть ли кот на новой фотографии.
Группирование известной информации по размеченным данным может показать тенденцию, на основе которой строятся прогнозы по новым данным. Например, взглянув на новые фотографии мы можем определить, какие хэштеги им будут присвоены, а по взгляду на характеристики нового дома можем предсказать его стоимость.
Обучение без учителя
Обучение без учителя используют, когда нам нечему научить машину — мы не знаем, как нужно сгруппировать объекты или какие качества объектов важны. В ходе обучения алгоритм сам сгруппирует объекты по общим характеристикам. Например, делит на кластеры товары интернет-магазина или рекомендует человеку товары на основе поведения других пользователей, которые покупали схожие с ним товары.
Обучение с подкреплением
О чём подумать перед внедрением машинного обучения в проект
Какой подход жизнеспособен?
Понимание проблемы, которую вы пытаетесь решить, а также доступные данные будут налагать ограничения на типы машинного обучения, которые вы сможете использовать (например, определение объектов на изображениях при контролируемом обучении требует наличия размеченного массива таких изображений). Тем не менее, ограничения подхлестывают изобретательность: иногда вы можете принять решение обработать другую информацию или рассмотреть совершенно иные подходы.
Какова погрешность?
Даже несмотря на то, что машинное обучение — это наука, погрешность все равно существует. Важно принимать во внимание, как эта погрешность может повлиять на опыт пользователей. Например, когда беспилотный автомобиль перестает распознавать окружение, могут пострадать люди.
Стоит ли оно того?
Даже несмотря на то, что машинное обучение никогда не было настолько доступным как сейчас, оно все равно требует для внедрения дополнительные трудозатраты и время. Это заставляет хорошо подумать, будет ли эффект от реализации сопоставим с количеством ресурсов, которые нужно потратить.
Заключение
Мы едва-едва затронули верхушку айсберга, но надеемся, что сейчас вы чувствуете себя немного увереннее в вопросе, как можно применить машинное обучение в вашем продукте. Если вы хотите больше узнать о машинном обучении, вам могут быть полезны эти материалы:
Благодарим Вастрика за помощь в работе над переводом.
Классификация изображений с помощью Machine Learning
Как быстро вы сможете проанализировать изображения? А если их несколько десятков тысяч? Оптимизировать трудозатраты нам поможет Machine Learning. В этой статье делимся опытом классификации изображений.
В работе каждого аудитора возникает необходимость анализа неструктурированных данных, таких как: сканы, фотографии или print screen. Ручная обработка такой информации в больших объемах занимает огромное количество времени. Одним из способов оптимизации трудозатрат является классификация изображений с применением методов Machine Learning. Сегодня хотим поделиться опытом классификации на примере авансовых отчетов.
В нашем случае: мы имели более 30 тыс. различных авансовых отчетов. И задача стояла следующая: проанализировать только те, которые относятся к использованию общественного транспорта, поэтому из общего массива документов необходимо было выделить только билеты на проезд в общественном транспорте.
Здесь нам приходит на помощь ML, а именно — бинарная классификация изображений. Для начала импортируем необходимые модули.
Предварительно мы распределили 6 607 изображений на два класса: «билет» и «прочие». Вес архива с изображениями составил 18,5 Гб.
Распаковываем выборку в рабочую директорию.
Считываем пути к выборке.
Разделяем выборку на обучающую – «train» и тестовую – «test».
Раскладываем изображения в папки для обучения (train) и валидации (test).
Подготавливаем и настраиваем нашу модель для обучения.
Определяем обучающую выборку
Определяем тестовую выборку
Запускаем обучение модели
Наша модель обучилась за 4 часа.
Определяем функцию считывания изображения для предсказания
Определяем функцию предсказания класса где 0 это «прочие», а 1 – «билет».
Подготавливаем датасет для предсказания и оценки точности предсказания нашей модели.
Проводим предсказание на тестовой выборке и рассчитываем метрики модели.
Таким образом, с помощью Machine Learning нам удалось выделить 6,6 тыс. билетов на проезд в общественном транспорте, необходимых для анализа, из более чем 30 тыс. авансовых отчетов. Это позволило существенно сократить трудозатраты и исключить просмотр излишней информации, которая составила более 78% общего объема документов.
9 ключевых алгоритмов машинного обучения простым языком
Машинное обучение (МО) уже меняет мир. Google использует МО предлагая и показывая ответы на поисковые запросы пользователей. Netflix использует его, чтобы рекомендовать вам фильмы на вечер. А Facebook использует его, чтобы предложить вам новых друзей, которых вы можете знать.
Машинное обучение никогда еще не было настолько важным и, в тоже время, настолько трудным для изучения. Эта область полна жаргонов, а количество разных алгоритмов МО растет с каждым годом.
Эта статья познакомит вас с фундаментальными концепциями в области машинного обучения. А конкретнее, мы обсудим основные концепции 9ти самых важных алгоритмов МО на сегодняшний день.
Система рекомендаций(Recommendation system)
Для построения полноценной системы рекомендаций с 0, требуются глубокие знания в линейной алгебре. Из-за чего, если вы никогда не изучали эту дисциплину, вам может быть сложно понять некоторые концепции этого раздела.
Но не беспокойтесь — scikit-learn библиотека Python позволяет довольно просто построить СР. Так что вам не потребуется таких уж глубоких познаний в линейной алгебре, чтобы построить рабочую СР.
Как работает СР?
Существует 2 основных типа система рекомендаций:
Коллаборативная фильтрация СР предоставляет рекоммендации, основанные на знаниях о том как пользователь взаимодействует с элементами(*примечание: за основу взяты взаимодействия с элементами других пользователей, схожих по поведению с данным пользователем). Другими словами, они используют «мудрость толпы»(отсюда и «коллаборативный» в названии метода).
В реальном мире коллаборативная фильтрация СР куда более распространена, нежели основанная на контенте система. Это обусловлено, преимущественно, потому что они обычно дают результат лучше. Некоторые специалист также находят коллаборативную систему более простой для понимания.
Коллаборативная фильтрация СР также обладает уникальной особенностью, которой нет в основанной на контенте ситстеме. А именно, у них есть способность обучаться фичам самостоятельно.
Это значит, что они могут даже начать определять подобие в элементах, основываясь на свойствах или чертах, которые вы даже не предоставляли для работы этой системе.
Существует 2 подкатегории коллаборативной фильтрации:
Подведем итог
Вот краткое резюме того, что мы узнали о системе рекомендаций в данной статье:
Линейная регрессия (Linear Regression)
Линейная регрессия используется для предсказаний некоторого значения y основываясь на некотором множестве значений x.
История линейной регрессии
Линейная регрессия(ЛР) была изобретена в 1800 году Френсисом Гальтоном. Гальтон был ученым, изучающим связь между родителями и детьми. А конкретнее, Гальтон исследовал связь между ростом отцов и ростом их сыновей. Первым открытием Гальтона стал тот факт, что рост сыновей, как правило, был приблизительно таким же как рост их отцов. Что не удивительно.
Позднее, Гальтон открыл нечто более интересное. Рост сына, как правило, был ближе к средне-общему росту всех людей, чем к росту его собственного отца.
Гальтон даль этому феномену название — регрессия. В частности, он сказал: » Рост сына имеет тенденцию к регрессии(или к смещению в направлении) среднего роста».
Это привело к целой области в статистике и машинном обучении под названием регрессия.
Математика линейной регрессии
В процессе создания регрессионной модели, все что мы пытаемся сделать — это нарисовать линию настолько близко к каждой точке из набора данных, на сколько это возможно.
Типичный пример такого подхода — «метод наименьших квадратов» линейной регрессии, с помощью которого рассчитывают близость линии в направлении верх-низ.
Пример для иллюстрации:
Когда вы создаете регрессионную модель, ваш конечный продукт — это уравнение, с помощью которого вы можете предсказать значения y для значения x без того чтобы знать значение y наперед.
Логистическая регрессия (Logistic Regression)
Логистическая регрессия схожа с линейной, за исключением того факта, что вместо вычисления значения у, она оценивает к какой категории принадлежит данная точка данных.
Что такое логистическая регрессия?
Логистическая регрессия — это модель машинного обучения, использующаяся для решения задач классификации.
Ниже представлено несколько примеров классификационных задач МО:
Логистическая регрессия хорошо подходит для решения задач двоичной классификации — мы просто назначаем разным категориям значения 0 и 1 соответственно.
Зачем нужна логистическая регрессия? Потому что вы не можете использовать линейную регрессию для прогнозов по двоичной классификации. Она просто не будет подходить, так как вы будете пытаться провести прямую линию через набор данных с двумя возможными значениями.
Это изображение может помочь понять почему линейная регрессия плохо подходит для двоичной классификации:
На этом изображении ось у представляет вероятность того, что опухоль является злокачественной. Значения 1-у представляет вероятность, что опухоль доброкачественная. Как вы можете видеть, модель линейной регрессии очень плохо срабатывает для предсказания вероятности для большинства наблюдений в наборе данных.
Вот почему логистическая регрессионная модель полезна. У нее есть изгиб к линии лучшего соответсвия, что делает ее(модель) гораздо более подходящей для предсказаний качественных(категорийных) данных.
Вот пример, который иллюстрирует сравнение линейной и логистической регрессионых моделей на одних и техже данных:
Сигмоида (The Sigmoid Function)
Причина по которой логистическая регрессия имеет изгиб — это тот факт, что для её вычисления не используетя линейное уравнение. Вместо него логистическая регерссионная модель строится на использовании сигмоиды (также называемой логистической функцией, т.к. она используется в логистической регрессии).
Для вас не обязательно досконально запоминать сигмоиду, чтобы преуспеть в МО. Но все-таки иметь некоторое представление об этой функции будет полезно.
Главная характеристика сигмоиды, которая стоит того, чтобы с ней разобраться — не важно какое значение вы передадите этой функции, она всегда вернет значение в промежутке 0-1.
Использование логистической регрессионной модели для предсказаний
Чтобы использовать логистическую регрессию для предсказаний, вам, как правило, нужно точно определить точку отсечения. Эта точка отсечения обычно 0.5.
Давайте использовать наш пример с диагностикой рака с предыдущего графика, чтобы увидеть этот принцип на практике. Если логистическая регрессионная модель выдаст значение ниже 0.5, то эта точка данных будет отнесена к категории доброкачественной опухоли. Подобным образом, если сигмоида выдаст значение выше 0.5, то опухоль отнесут к категории злокачественных.
Использование матрицы ошибок для измерения эффективности логистической регрессии
Матрица ошибок может быть использована в качестве инструмента для сравнения истинно положительных, истинно отрицательных, ложно положительных и ложно отрицательных показателей в МО.
Матрица ошибок, в частности, полезна, когда используется для измерения эффективности логистической регрессионной модели. Вот пример, как мы можем использовать матрицу ошибок:
В этой таблице TN означает «истинно отрицательно», FN — «ложно отрицательно», FP — «ложно положительно», TP — «истинно положительно».
Матрица ошибок полезна для оценки модели, есть ли в ней «слабые» квадранты в матрице ошибок. Как пример, она может иметь ненормально большое количество ложно положительных результатов.
Она также довольно полезна в некоторых случаях, для того чтобы убедиться, что ваша модель работает корректно в особенно опасной зоне матрицы ошибок.
В этом примере диагностики рака, например, вы бы хотели быть точно уверены, что у вашей модели не слишком большое количество ложно положительных результатов, т.к. это будет означать, что чью-то злокачественную опухоль вы диагностировали как доброкачественную.
Подведем итог
В этом разделе у вас было первое знакомство с моделью МО — логистической регрессией.
Вот краткое содержание того, что вы узнали о логистической регрессии:
Алгоритм k-ближайших соседей (K-Nearest Neighbors)
Алгоритм k-ближайших соседей может помочь решить задачу классификации, в случае, когда категорий больше, чем 2.
Что из себя представляет алгоритм k-ближайших соседей?
Это классификационный алгоритм, который базируется на простом принципе. На самом деле, принцип настолько прост, что лучше его продемонстрировать на примере.
Представьте, что у вас есть данные по высоте и весу футболистов и баскетболистов. Алгоритм k-ближайших соседей может быть использован для предсказания является ли новый игрок футболистом или баскетболистом. Чтобы это сделать, алгоритм определяет К точек данных, ближайших к объекту исследования.
Данное изображение демонстрирует этот принцип с параметром К = 3:
На этом изображении футболисты изображены голубыми отметками, а баскетболисты — оранжевыми. Точка, которую мы пытаемся классифицировать, покрашена в зеленый цвет. Так как большинство (2 из 3) ближайших к зеленой точке отметок окрашены в голубой (футбольные игроки), то значит алгоритм К-ближайших соседей предсказывает, что новый игрок тоже окажется футболистом.
Как построить алгоритм К-ближайших соседей
Основные шаги для построения данного алгоритма:
Важность переменной К в алгоритме К-ближайших соседей
Хотя это может быть не очевидно с самого начала, изменение значения К в данном алгоритме изменит категорию, в которую попадет новая точка данных.
Конкретнее, слишком маленькое значение К приведет к тому, что ваша модель будет точно прогнозировать на обучающем множестве данных, но будет крайне не эффективна для тестовых данных. Также, имея слишком высокий К показатель, вы сделаете модель неоправданно сложной.
Представленная ниже иллюстрация отлично показывает этот эффект:
Плюсы и минусы алгоритма К-ближайших соседей
Чтобы подвести итог знакомства с этим алгоритмом, давайте коротко обсудим достоинства и недостатки его использования.
Подведем итог
Краткое содержание того, что вы только что узнали о алгоритме К-ближайших соседей:
Дерево решений и Случайный лес (Decision Trees and Random Forests)
Дерево решений и случайный лес — это 2 примера древовидного метода. Точнее, деревья решений — это модели МО, используемые для прогнозирования через циклический просмотр каждой функции в наборе данных один за одним. Случайный лес — это ансамбль (комитет) деревьев решения, которые используют случайные порядки объектов в наборе данных.
Что такое древовидный метод?
Перед тем, как мы нырнем в теоретические основы древовидного метода в МО, будет нелишним начать с примера.
Представьте, что вы играете в баскетбол каждый понедельник. Более того, вы всегда приглашаете одного и того же друга пойти поиграть с вами. Иногда друг действительно приходит, иногда нет. Решение приходить или нет зависит от множества факторов: какая погода, температура, ветер и усталость. Вы начинаете замечать эти особенности и отслеживать их вместе с решением вашего друга играть или нет.
Вы можете использовать эти данные для предсказания придет ли ваш друг сегодня или нет. Одна из техник, которой вы можете воспользоваться — это дерево решений. Вот как это выглядит:
У каждого дерева решений есть 2 типа элементов:
Вот еще парочка определений, которые вы должны понимать перед тем, как мы начнем:
Как построить дерево решений с нуля
Построение дерева решений сложнее, чем может показаться. Это происходит потому что решение на какие разветвления (характеристики) делить ваши данные (что является темой из области энтропии и получения данных) — это математически сложная задача.
Чтобы ее разрешить, специалисты МО обычно используют множество деревьев решения, применяя случайные наборы характеристик, выбранных для разделения дерева на них. Другими словами, новые случайные наборы характеристик выбираются для каждого отдельного дерева, на каждом отдельном разделении. Эта техника называется случайные леса.
В общем случае, специалисты обычно выбирают размер случайного набора характеристик (обозначается m) так, чтобы он был квадратным корнем общего количества характеристик в наборе данных (обозначается р). Если коротко, то m — это квадратный корень из р и тогда конкретная характеристика случайным образом выбирается из m.
Выгоды использования случайного леса
Представьте, что вы работаете с множеством данных, у которого есть одна «сильная» характеристика. Иными словами, в этом множестве данных есть характеристика, которая намного более предсказуема в отношении конечного результата, чем остальные характеристики этого множества.
Если вы строите дерево решений вручную, то имеет смысл использовать эту характеристку для самого «верхнего» разделения в вашем дереве. Это значит, что у вас будет несколько деревьев, прогнозы которых сильно коррелируют.
Мы хотим этого избежать, т.к. использование средней от сильно коррелирующих переменных не снижает значительно дисперсию. Используя случайные наборы характеристик для каждого дерева в случайном лесу, мы декоррелируем деревья и дисперсия полученной модели уменьшается. Эта декорреляция — главное преимущество в использовании случайных лесов в сравнении с деревьями решений, построенными вручную.
Подведем итог
Итак, краткое содержание того, что вы только что узнали о деревьях решений и случайных лесах:
Метод опорных векторов(Support Vector Machines)
Метод опорных векторов это алгоритм классификации (хотя, технически говоря, они также могут быть использованы для решения регрессионных задач), который делит множество данных на категории в местах наибольших «разрывов» между категориями. Эта концепция станет более понятной, если разобрать следующий пример.
Что такое метод опорных векторов?
Метод опорных векторов (МОВ) — это модель МО с учителем, с соответствующими алгоритмами обучения, которые анализируют данные и распознают закономерности. МОВ может быть использован как для задач классификации, так и для регрессионного анализа. В этой статье мы посмотрим конкретно на использование метода опорных векторов для решения задач классификации.
Как МОВ работает?
Давайте капнем поглубже в то, как действительно работает МОВ.
Нам дан набор тренировочных примеров, какждый из которого промаркирован как принадлежащий к одной из 2х категорий, и с помощью этого набора МОВ строит модель. Эта модель распределяет новые примеры в одну из двух категорий. Это делает МОВ невероятностным двоичным линейным классификатором.
МОВ использует геометрию для составления прогнозов по категориям. Конкретнее модель метода опорных векторов сопоставляет точки данных как точки в пространстве и разделяет на отдельные категории так, что они разделяются настолько широким разрывом, насколько возможно. Прогноз принадлежности новых точек данных к определенной категории основывается на том, с какой стороны разрыва находится точка.
Вот пример визуализации, который поможет вам понять интуицию МОВ:
Как вы можете наблюдать, если новая точка данных падает на левую от зеленой линии сторону, то она будет отнесена к «красным», а если на правую — то к «синим». Эта зеленая линия называется гиперплоскостью, и является важным термином для работы с МОВ.
Давайте посмотрим следующее визуальное представление МОВ:
На этой диаграмме гиперплоскость обозначена как «оптимальная гиперплоскость» (optimal hyperplane). Теория метода опорных векторов дает такое определение оптимальной гиперплоскости — это гиперплоскость, которая максимизирует поле между двумя ближайшими точками данных из разных категорий.
Как вы видите, граница поля действительно затрагивает 3 точки данных — 2 из красной категории и 1 из синей. Эти точки, которые соприкасаются с границей поля, и называются опорными векторами — откуда и пошло название.
Подведем итог
Вот краткий очерк того, что вы только что узнали о методе опорных векторов:
Метод К-средних (K-Means Clustering)
Метод К-средних — это алгоритм машинного обучения без учителя. Это значит, что он принимает непомеченные данные и пытается сгруппировать кластеры подобных наблюдений ваших данных. Метод К-средних крайне полезен для решения реальных прикладных задач. Вот примеры нескольких задач, подходящих для этой модели:
Вот визуальное представление того, как это выглядит на практике:
Мы изучим математическую составляющую метода К-средних вследующем разделе этой статьи.
Как работает метод К-средних?
Первый шаг в работе метода К-средних — это выбор количества групп на которое вы хотите разделить ваши данные. Этим количеством и является значение К, отраженное в названии алгоритма. Выбор значения К в методе К-средних очень важен. Чуть позже мы обсудим как выбрать правильное значение К.
Далее, вы должны случайным образом выбрать точку в наборе данных и причислить ее к случайному кластеру. Это даст вам начальное положение данных, на котором вы прогоняете следующую итерацию до тех пор, пока кластеры перестанут изменяться:
Выбор подходящего значения К в методе К-средних
Строго говоря, выбор подходящего значения К — это довольно сложно. Не существует «правильного» ответа в выборе «лучшего» значения К. Один из методов, который специалисты по МО часто используют, называется «методом локтя».
Для использования этого метода, первое, что вам необходимо сделать, это вычислить сумму квадратов отклонений(sum of squared errors) — СКО для вашего алгоритма для группы значений К. СКО в методе К-средних определена как сумма квадратов расстояний между каждой точкой данных в кластере и центром тяжести этого кластера.
В качестве примера этого шага, вы можете вычислить СКО для значений К 2, 4, 6, 8 и 10. Далее вы захотите сгенерировать график СКО и этих значений К. Вы увидите, что отклонение уменьшается с увеличением значения К.
И это имеет смысл: чем больше категорий вы создадите на основе множества данных — тем более вероятно, что каждая точка данных окажется близко к центру кластера этой точки.
С учетом сказанного, основная идея метода локтя — это выбрать значение К при котором СКО резко замедлит темпы снижения. Это резкое снижение образует «локоть» на графике.
Как пример, вот график СКО относительно К. В этом случае, метод локтя предложит использовать значение К примерно равное 6.
Важно, что К=6 просто оценка приемлемого значения К. Не существует «лучшего» значения К в методе К-средних. Как и многие вещи в области МО, это очень зависящее от ситуации решение.
Подведем итог
Вот краткий очерк того, что вы только что узнали в этом разделе:
Метод главных компонент (Principal Component Analysis)
Метод главных компонент используется для преобразования набора данных c множеством параметров в новый набор данных с меньшим количеством параметров и каждый новый параметр этого набора данных — это линейная комбинация раннее существующих параметров. Эти преобразованные данные стремятся обосновать большую часть дисперсии оригинального набора данных с гораздо большей простотой.
Что такое метод главных компонентов?
Метод главных компонент (МГК) — это техника МО, которая используется для изучения взаимосвязей между наборами переменных. Другими словами, МГК изучает наборы переменных для того, чтобы определить базовую структуру этих переменных. МГК еще иногда называют факторным анализом.
На основании этого описания вы можете подумать, что МГК очень схож с линейной регрессией. Но это не так. На самом деле, эти 2 техники имеют несколько важных отличий.
Различия линейной регрессии и МГК
Линейная регрессия определяет линию наилучшего соответствия через набор данных. Метод главных компонентов определяет несколько ортогональных линий наилучшего соответствия для набора данных.
Если вы не знакомы с термином ортогональный, то это просто означает, что линии находятся под прямым углом друг к другу, как север, восток, юг и запад на карте.
Давайте рассмотрим пример, чтобы помочь вам понять это лучше.
Взгляните на метки осей на этом изображении. Главный компонент оси х объясняет 73% дисперсии в этом наборе данных. Главный компонент оси у объясняет около 23% дисперсии набора данных.
Это означает, что 4% дисперсии остается необъясненными. Вы можете уменьшить это число добавляя больше главных компонент в ваш анализ.
Подведем итог
Краткое содержание того, что вы только что узнали о методе главных компонент: