Это руководство является продолжением моего предыдущего учебника по построению моделей - Прогнозирование вероятности сердечных заболеваний с помощью SPSS Modeler Flows - и предполагает, что вы выполнили это руководство и у вас есть последний курс «Watson Studio " проект.

вступление

Итак, вы построили себе модель и можете оценить ее с помощью узла таблицы, чтобы посмотреть на свои прогнозы. Что теперь?

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

Для этого нам нужно выполнить несколько шагов, чтобы сохранить модель с помощью Watson Studio, а затем создать развертывание веб-службы для модели.

Терминология

В конце предыдущего урока у нас был поток Modeler, который выглядит следующим образом:

Первый шаг, который нам нужно сделать, - это сохранить модель в проекте Watson Studio, содержащем поток. Прежде чем мы это сделаем, стоит просто определить и объяснить несколько терминов, чтобы в дальнейшем избежать путаницы.

Узел построения модели. Узел построения модели - это узел модели, который вы добавили из палитры (со значком зеленого узла). Это узел, в котором вы меняете роли полей и параметры сборки для модели в редакторе узлов.

Узел применения модели (установщик модели) - это узел золотого цвета, который создается при запуске узла построения модели. Это объект на холсте, который создает прогнозы и добавляет их в таблицу данных. В широком смысле это можно назвать моделью, но это немного вводит в заблуждение, когда дело касается развертывания, как мы увидим позже. Узлы применения модели связаны с узлом сборки пунктирной линией, что означает, что если узел сборки модели будет запущен снова, он будет перестроить / обновить приложение модели. Узлы применения модели можно использовать для оценки данных без этой ссылки на их узел сборки, однако в этом случае их нельзя перестроить.

Ветвь - поток SPSS Modeler можно разделить на несколько ветвей, каждая из которых представляет один поток данных от входного узла (ов) к выходному узлу. Конец ветви можно определить с помощью выходного узла. На рисунке, показанном выше, есть единственная ветвь в потоке, которая ведет от узла Data Asset, через узел Type и приложение модели «NUM» и, наконец, к узлу Table.

Вот второй, немного более сложный пример с двумя ветвями. Вы можете видеть, что вторая ветвь отделяется от узла Тип. В обоих случаях ветвь может быть определена узлом вывода в ее конце. Если бы вы запускали второй узел таблицы, то выполнялась бы только эта ветвь. Аппликатор модели «NUM» не будет запущен.

Сохранение ветки как модели

Теперь, когда мы обсудили термины, которые мы используем в приложении Modeler Flows, мы можем посмотреть, что означает сохранение ветви.

В среде выполнения SPSS Modeler развертывание модели - это моментальный снимок всей ветви модели на момент ее сохранения. Фактически происходит то, что при сохранении ветви , все узлы в выбранной ветке упаковываются в развернутую модель, и входной узел заменяется входом 'data-in' (где вы вводите свои данные оценки), а конечный узел заменяется на вывод данных (где возвращаются ваши прогнозы).

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

Это должно открыть новую строку навигации на панели навигации и показать вам страницу Сохранить модель. Однако, если у вас нет службы Watson Machine Learning, связанной с вашим проектом, вы можете получить информационное сообщение, информирующее вас об этом. Вы можете следовать инструкциям в сообщении, чтобы создать новую службу WML, которая будет связана с вашим проектом, а затем вы вернетесь в свой поток. Когда это произойдет, снова нажмите Сохранить ветку как модель.

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

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

Теперь ваша ветка сохранена в качестве модели для вашего проекта, поэтому щелкните имя проекта в строке навигации, чтобы перейти туда. Вы должны увидеть сохраненную модель SPSS в таблице Watson Machine Learning Models на вкладке Assets.

Щелкните название модели, чтобы открыть ее и просмотреть подробную информацию. На вкладке «Обзор» вы можете увидеть службу WML, связанную с моделью, типом и некоторыми другими частями информации. Также показана входная схема модели.

Создание развертываний

Чтобы оценивать вашу модель по запросу, вам необходимо создать для нее развертывание веб-службы.

Щелкните вкладку «Развертывания», а затем «Добавить развертывание» в правом верхнем углу таблицы. Откроется новая страница, на которой вы можете ввести имя для своего развертывания и дополнительное описание. В настоящее время доступен только тип развертывания «Веб-сервис». Сохраните ваше развертывание.

Теперь ваше развертывание будет создано, что может занять минуту или две. В конце концов, вы должны увидеть изменение столбца статуса на DEPLOY_SUCCESS. По завершении щелкните имя развертывания.

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

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

Внизу страницы находятся полезные фрагменты кода с примерами кода для использования вашей модели. Мы собираемся выполнить простое выполнение модели cURL.

Во-первых, вам нужно будет получить токен аутентификации WML с помощью первой команды curl. Вы можете найти свои учетные данные службы WML на панели управления IBM Cloud - console.ng.bluemix.net.

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

Запустите команду, и она должна вернуть что-то вроде этого:

{ «маркер»:»eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRJZCI6Ijk5NDE1ZWU4LWZkZjctNDM4Zi04YmNhLTQwYWE2ODcxYzQ5ZiIsImluc3RhbmNlSWQiOiI5OTQxNWVlOC1mZGY3LTQzOGYtOGJjYS00MGFhNjg3MWM0OWYiLCJwbGFuSWQiOiIzZjZhY2Y0My1lZGU4LTQxM2EtYWM2OS1mOGFmM2JiMGNiZmUiLCJy44uruufTTDJJZCI6IjQ1NTcwMTRkLTEyZDctNDg3Mi04NTg3LTNkYTYxMWViODc3NiIsImlzcyI6Imh0dHBzOi8vdXMtc291dGgubWwuY2xvdWQuaWJtLmNvbS92My9pZGVudGl0eSIsImlhdCI6MTUzMDc3NDMzMSwiZXhwIjoxNTMwODAzMTMxfQ.CWDDOFOffodi443JZNttQ9wOPNDxt3y-vgbaqIV0TSyASGpSv2zySCKuhGwKdRMT8hLV5_0sQG0rIVdRKa5keh4jG4W4iKzyqL0is7etjbYzOSZLjL8YWeLAF8R28zQKIRG_WXvMyiNyYyZYNkUZwYpGGio1Ofa2ZmYCfPMpBq0rqtz18Hz9UY2ZoxyZIwE9Wti1wFvIuJwjAY0IbllH9z-dMlGpK8suR22Bffpprot54566ff3GFDETG6BReZHV5Yc2OavDHLWwS6vbOfga6pEOpm9yThmI148JCEDQobs3YF68MeOV-PR1cq9U12_SxjFpKwLMt _-_ hndUTzwAgGfO5IrkqqzIBK1pA»}

Затем вам нужно запустить вторую команду cURL, используя этот токен (включая кавычки «» вокруг строки) в качестве переменной WML_AUTH_TOKEN.

Как видно из команды, поля модели включены в команду за вас. Значения должны быть включены в массив JSON, поэтому вот образец массива, который вы можете использовать:

«Значения»: [[64, 1, 4, 145, 212, 0, 2, 132, 0, 2.0, 2, «2», «6», null]]

(ПРИМЕЧАНИЕ: двойные кавычки вокруг строк в приведенной выше структуре JSON должны быть кавычками (utf8 U + 0022), а не левыми и правыми двойными кавычками, поскольку форматирование Medium является обязательным. Я бы порекомендовал отформатировать вашу команду cURL в текстовом редакторе, таком как Atom, чтобы вы могли быть уверены, что синтаксис правильный).

Эти значения соответствуют полям в эквивалентных позициях массива. Поля NUM и THAL являются строками, отсюда и кавычки. Теперь вам, вероятно, интересно, что там делает null. Если мы посмотрим на массив входных значений, ожидаемых моделью, мы увидим, что происходит:

«Поля»: [«ВОЗРАСТ», «СЕКС», «CP», «TESTPBS», «CHOL», «FBS», «RESTECG», «THALACH», «EXANG», «OLDPEAK», «SLOPE», « CA »,« THAL »,« NUM »]

Видите это NUM в конце? Это наше целевое поле для этой модели, и поэтому нам не нужно предоставлять для него входное значение (в конце концов, это то, что мы пытаемся предсказать), поэтому, вводя null, мы по-прежнему предоставляем значение, чтобы избежать неприятных ошибок, но это нулевое значение, поэтому модель будет игнорировать его.

Итак, если вы запустите эту команду curl, используя эти входные значения, вы должны получить результат, который выглядит примерно так (в любом случае, когда вы его красиво форматируете):

Как видите, мы добавили два новых поля модели ($ C-NUM и $ CC-NUM). Это наше предсказание и уверенность в предсказании соответственно. В массиве значений вы можете увидеть, что модель вернула прогноз 2 для поля NUM и примерно на 60% уверена в этом прогнозе.

Вероятно, прошло некоторое время с тех пор, как мы смотрели, что на самом деле означают наши поля, поэтому, если мы посмотрим на описание поля NUM в сообществе, в нем написано диагностика сердечных заболеваний; целочисленное значение от 0 (нет присутствия) до 4. Таким образом, с прогнозируемым значением 2 из модели пациент, чьи данные мы здесь оценили, возможно, страдает сердечным заболеванием и потребует дальнейшего обследования.

Итак, вот и все, мы создали веб-сервис для нашей развернутой модели и начали возвращать прогнозы по запросу! Вы можете оценить модель с несколькими строками, используя массив входных массивов (например, [[1,1,1,1,1], [2,2,2,2,2]] в значениях во входном JSON, и вы можете оценить модель, используя любой из других методов, показанных на вкладке «Реализация».