Две недели назад компания Amazon представила собственный сервис для машинного обучения. Amazon Machine Learning – инструмент с широким функционалом и большим потенциалом.
Он позволяет оптимизировать процесс принятия решений. При этом для успешного использования инструмента вовсе не нужно быть продвинутым специалистом в области статистики – как не обязательно и располагать отдельной инфраструктурой хранения и обработки данных. Что ж, давайте разбираться.
Amazon Machine Learning в действии
Испытать Amazon Machine Learning можно бесплатно – пробная подписка включает в себя мануал и немного измененную копию реального набора маркетинговых данных, предоставленную Калифорнийским университетом.
Итак, мы попробуем ответить на вопрос «Оформит ли клиент нашего банка подписку на новый продукт?» Начнем с загрузки копии набора banking.csv на компьютер и затем в хранилище Amazon Simple Storage Service (S3). Сервис запросит доступ к набору данных:
Теперь создаем объект Amazon Machine Learning Datasource (источник данных), содержащий ссылку на местонахождение данных, имена переменных и типов, имя целевой переменной и описательную статистику для каждой переменных. Большинство операций Amazon Machine Learning будут обращаться именно к Datasource.
Инструмент также дает возможность создавать источник данных из Amazon Redshift или базы данных Amazon RDS MySQL (в этом случае можно использовать собственный API). Для нас выбор первого варианта означал бы, что необходимо ввести имя кластера Redshift, имя базы данных, условия доступа и SQL-запрос.
Но вернемся к нашей задаче. Итак, Amazon Machine Learning открыл и просканировал файл, сделал предположения по поводу типов переменных и предложил следующую схему:
В данном случае предположения оказались верны – в противном случае можно было бы выбрать необходимые строки и поменять тип вручную.
Поскольку мы используем Datasource для создания и оценки модели машинного обучения, необходимо выбрать целевую переменную. В нашем наборе данных эта переменная (y) имеет двоичный (binary) тип – соответственно, сгенерированные модели будут использовать бинарную классификацию.
Пара кликов – и мы готовы создать источник данных:
Спустя пару минут наш источник данных выглядит вот так:
Как известно, чем больше мы знаем об анализируемых данных, тем более качественными получаются созданные на их основе модели. Консоль Amazon Machine Learning Console дает возможность воспользоваться несколькими инструментами для более подробного изучения данных. К примеру, можно посмотреть, как распределяются значения любой переменной в источнике данных. Вот как распределяется возраст клиентов нашего банка:
Следующий шаг – создание модели:
Воспользуемся установками по умолчанию (Default). Инструмент будет использовать 70% данных для обучения и 30% для оценки модели:
Если бы мы остановили свой выбор на пользовательских настройках (Custom), у нас бы появилась возможность подстроить под себя тот набор команд (Recipe), который инструмент использует для трансформации и обработки данных из Datasource.
Еще пара кликов – и Amazon Machine Learning начинает процесс создания нашей модели. Вернувшись после небольшого перерыва на чашку кофе, мы увидели следующее:
Модель готова к работе, но давайте сперва посмотрим на ее технические характеристики:
Чтобы выбрать лучших клиентов (тех, кто вероятнее всего совершит покупку), кликнем по опции Adjust Score Threshold (изменить порог величины) и начинаем изменять барьерную величину до тех пор, пока не останется лишь 5% записей, которым будет соответствовать значение «1» целевой переменной y:
Такие настройки снизят вероятность ложноположительных оценок до 1,3%, ложноотрицательных – до 22%, а верные предположения будут составлять 77%. Будем считать, что ложноположительные оценки обходятся «дороже» — и установим для них высокую пороговую величину. В бизнес-терминах это означает, что мы избежим ситуации, когда дорогостоящие промо-материалы посылаются «не тем» клиентам.
После того, как модель построена, мы можем давать прогнозы в пакетном режиме (также инструмент предполагает прогнозирование в режиме реального времени). Начнем с меню:
Как рекомендуется в мануале, создаем еще один объект Datasource. В отличие от первого файла, этот источник данных не содержит значений переменной y.
После этого выбираем путь (в S3) к файлу с прогнозами, еще раз проверяем установки и запускаем процесс пакетного прогнозирования:
Еще одна чашка кофе – и прогнозы готовы. Скачиваем готовый файл, распаковываем его, и вот что мы видим:
Строки полученного текстового файла соответствуют тем, что находятся в исходнике. Первое значение – это прогнозируемая величина переменной y (вычисленная путем сравнения прогнозируемого значения и пороговой величины, которую мы установили при построении модели).
Второе значение – реальная величина. Если бы мы добавили идентификатор строк Row Identifier, каждому прогнозу был бы присвоен первичный ключ, который при желании позволил бы нам привязать результаты к исходным данным. Очевидно, что те строки, для которых прогнозируемая величина y стремится к 1 – это и есть наши «лучшие» клиенты.
Резюме
Amazon Machine Learning – инструмент действительно удобный. Все этапы интуитивно понятны, а главное – отлично задокументированы все в том же мануале, так что работать с ним, в принципе, можно, не особо «заморачиваясь» по поводу глубоких теоретических познаний и обширного практического опыта.
Он хорош для изучения принципов машинного обучения – этому способствует и «мягкая» ценовая политика, и подробное описание каждого этапа в мануале и в самой программе, где можно «поиграть» с установками. Серьезному специалисту, возможно, этого будет мало – впрочем, Amazon Machine Learning стоит того, чтобы попробовать его в деле самостоятельно.
По материалам: Amazon