KNIME - Краткое руководство

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

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

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

Платформа KNIME Analytics доступна для Windows, Linux и MacOS. В этой главе давайте рассмотрим шаги по установке платформы на Mac. Если вы используете Windows или Linux, просто следуйте инструкциям по установке, приведенным на странице загрузки KNIME. Бинарная установка для всех трех платформ доступна на странице KNIME .

Установка Mac

Загрузите двоичную установку с официального сайта KNIME. Дважды щелкните загруженныйdmgфайл, чтобы начать установку. Когда установка завершится, просто перетащите значок KNIME в папку Applications, как показано здесь -

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

Вы можете установить выбранную папку по умолчанию, и при следующем запуске KNIME она не будет

снова откройте это диалоговое окно.

Через некоторое время на вашем рабочем столе запустится платформа KNIME. Это верстак, на котором вы будете выполнять свою аналитическую работу. Давайте теперь посмотрим на различные части верстака.

Когда KNIME запустится, вы увидите следующий экран -

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

  • Workspace

  • Outline

  • Репозиторий узлов

  • KNIME Explorer

  • Console

  • Description

По мере продвижения в этой главе давайте подробно изучим эти представления.

Просмотр рабочего пространства

Самый важный для нас взгляд - это WorkspaceПосмотреть. Здесь вы должны создать свою модель машинного обучения. Вид рабочей области выделен на скриншоте ниже -

На скриншоте показано открытое рабочее пространство. Вы скоро узнаете, как открыть существующее рабочее пространство.

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

Общий вид

Представление рабочей области может не отображать вам весь рабочий процесс за раз. По этой причине предоставляется обзорный вид.

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

Репозиторий узлов

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

  • IO

  • Views

  • Analytics

В каждой категории вы найдете несколько вариантов. Просто разверните представление каждой категории, чтобы увидеть, что у вас там есть. ПодIO категории, вы найдете узлы для чтения ваших данных в различных форматах файлов, таких как ARFF, CSV, PMML, XLS и т. д.

В зависимости от формата данных источника ввода вы выберете соответствующий узел для чтения набора данных.

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

Узел «Аналитика» определяет различные алгоритмы машинного обучения, такие как Байес, кластеризация, дерево решений, ансамблевое обучение и т. Д.

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

Мы предлагаем вам изучить различные узлы, доступные в репозитории.

KNIME Explorer

Следующим важным видом в верстаке является Explorer вид, как показано на скриншоте ниже -

В первых двух категориях перечислены рабочие области, определенные на сервере KNIME. Третий вариант LOCAL используется для хранения всех рабочих пространств, которые вы создаете на своем локальном компьютере. Попробуйте развернуть эти вкладки, чтобы увидеть различные предопределенные рабочие пространства. В частности, разверните вкладку ПРИМЕРЫ.

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

Консольный вид

Как видно из названия, Console view обеспечивает представление различных сообщений консоли во время выполнения рабочего процесса.

В Console Представление полезно при диагностике рабочего процесса и изучении результатов аналитики.

Описание Просмотр

Последняя важная точка зрения, имеющая непосредственное отношение к нам, - это DescriptionПосмотреть. Это представление предоставляет описание выбранного элемента в рабочей области. Типичный вид показан на скриншоте ниже -

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

Панель инструментов

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

Включение / отключение представлений

Различные просмотры, которые вы уже видели, можно легко включить / выключить. Если щелкнуть значок «Закрыть» в представлении,closeвид. Чтобы восстановить представление, перейдите вViewпункт меню и выберите желаемый вид. Выбранный вид будет добавлен в верстак.

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

KNIME предоставил несколько хороших рабочих процессов для простоты обучения. В этой главе мы рассмотрим один из рабочих процессов, предусмотренных при установке, чтобы объяснить различные функции и возможности платформы аналитики. Мы будем использовать простой классификатор на основеDecision Tree для нашего исследования.

Загрузка классификатора дерева решений

В KNIME Explorer найдите следующий рабочий процесс -

LOCAL / Example Workflows / Basic Examples / Building a Simple Classifier

Это также показано на скриншоте ниже для вашего быстрого ознакомления -

Дважды щелкните выбранный элемент, чтобы открыть рабочий процесс. Наблюдайте за представлением рабочего пространства. Вы увидите рабочий процесс, содержащий несколько узлов. Целью этого рабочего процесса является прогнозирование группы доходов на основе демократичных атрибутов набора данных для взрослых, взятых из репозитория машинного обучения UCI. Задача этой модели машинного обучения - классифицировать людей в конкретном регионе как имеющих доход больше или меньше 50 тысяч.

В Workspace вид вместе с его контуром показан на скриншоте ниже -

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

Выполнение рабочего процесса

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

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

Обратите внимание, что в настоящее время индикаторы на всех узлах красные, указывая на то, что пока ни один узел не выполняется. Чтобы запустить все узлы, щелкните следующий пункт меню -

Node → Execute All

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

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

Если вы проверите узлы в рабочем процессе, вы увидите, что он содержит следующее:

  • Читатель файлов,

  • Менеджер цвета

  • Partitioning

  • Ученик дерева решений

  • Предиктор дерева решений

  • Score

  • Интерактивный стол

  • Точечная диаграмма

  • Statistics

Это легко увидеть на Outline вид, как показано здесь -

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

Читатель Файлов

Узел File Reader изображен на скриншоте ниже -

В верхней части окна есть описание, предоставленное создателем рабочего процесса. Он сообщает, что этот узел читает набор данных для взрослых. Имя файлаadult.csvкак видно из описания под символом узла. ВFile Reader имеет два выхода - один идет на Color Manager узел, а другой идет к Statistics узел.

Если вы щелкните правой кнопкой мыши File Manager, всплывающее меню появится следующим образом -

В Configureопция меню позволяет настроить узел. ВExecuteменю запускает узел. Обратите внимание, что если узел уже был запущен и находится в зеленом состоянии, это меню отключено. Также обратите внимание на наличиеEdit Note Descriptionпункт меню. Это позволяет вам написать описание для вашего узла.

Теперь выберите Configure пункт меню, он показывает экран, содержащий данные из файла adult.csv, как показано на скриншоте здесь -

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

Наш следующий узел - это Color Manager.

Менеджер цвета

Выберите Color Managernode и войдите в его конфигурацию, щелкнув по нему правой кнопкой мыши. Появится диалоговое окно настройки цветов. Выберитеincome столбец из раскрывающегося списка.

Ваш экран будет выглядеть следующим образом -

Обратите внимание на наличие двух ограничений. Если доход меньше 50К, датапоинт приобретет зеленый цвет, а если больше - красный. Вы увидите сопоставления точек данных, когда мы рассмотрим диаграмму рассеяния далее в этой главе.

Разбиение

В машинном обучении мы обычно разделяем все доступные данные на две части. Большая часть используется для обучения модели, а меньшая - для тестирования. Для разделения данных используются разные стратегии.

Чтобы определить желаемое разбиение, щелкните правой кнопкой мыши на Partitioning узел и выберите Configureвариант. Вы увидите следующий экран -

В этом случае разработчик системного моделирования использовал Relative(%) и данные разделяются в соотношении 80:20. Во время разделения точки данных выбираются случайным образом. Это гарантирует, что ваши тестовые данные не будут предвзятыми. В случае линейной выборки оставшиеся 20% данных, используемых для тестирования, могут некорректно представлять данные обучения, поскольку они могут быть полностью смещены во время их сбора.

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

Ученик дерева решений

В Decision Tree Learnerузел, как следует из названия, использует обучающие данные и строит модель. Ознакомьтесь с настройкой конфигурации этого узла, которая изображена на скриншоте ниже -

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

После успешного запуска этого узла ваша модель будет готова к тестированию.

Предиктор дерева решений

Узел Decision Tree Predictor применяет разработанную модель к набору тестовых данных и добавляет прогнозы модели.

Выходные данные предсказателя поступают на два разных узла - Scorer и Scatter Plot. Далее мы рассмотрим результат предсказания.

Бомбардир

Этот узел генерирует confusion matrix. Чтобы просмотреть его, щелкните узел правой кнопкой мыши. Вы увидите следующее всплывающее меню -

Щелкните значок View: Confusion Matrix пункт меню, и матрица появится в отдельном окне, как показано на скриншоте здесь -

Это указывает на то, что точность разработанной нами модели составляет 83,71%. Если вас это не устраивает, вы можете поиграть с другими параметрами при построении модели, особенно если вы захотите пересмотреть и очистить свои данные.

Точечная диаграмма

Чтобы увидеть диаграмму разброса распределения данных, щелкните правой кнопкой мыши значок Scatter Plot узел и выберите пункт меню Interactive View: Scatter Plot. Вы увидите следующий сюжет -

На графике двумя точками разного цвета - красным и синим - показано распределение людей с разными доходами на основе порога в 50 тыс. Это были цвета, установленные в нашемColor Managerузел. Распределение относится к возрасту, как показано на оси абсцисс. Вы можете выбрать другую функцию для оси x, изменив конфигурацию узла.

Здесь показан диалог конфигурации, в котором мы выбрали marital-status как особенность оси абсцисс.

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

Давайте теперь перейдем к самой важной части урока - созданию вашей собственной модели.

В этой главе вы создадите свою собственную модель машинного обучения, чтобы классифицировать растения на основе нескольких наблюдаемых особенностей. Мы будем использовать хорошо известныеiris набор данных из UCI Machine Learning Repositoryдля этого. Набор данных содержит три разных класса растений. Мы обучим нашу модель классифицировать неизвестное растение в один из этих трех классов.

Мы начнем с создания нового рабочего процесса в KNIME для создания наших моделей машинного обучения.

Создание рабочего процесса

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

File → New

Вы увидите следующий экран -

Выберите New KNIME Workflow вариант и нажмите на Nextкнопка. На следующем экране вам будет предложено ввести желаемое имя для рабочего процесса и папку назначения для его сохранения. Введите эту информацию по желанию и нажмитеFinish для создания нового рабочего пространства.

Новое рабочее пространство с заданным именем будет добавлено в Workspace вид как здесь -

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

Подготовка набора данных

Загрузите набор данных iris с сайта репозитория машинного обучения UCI. Загрузите набор данных Iris . Загруженный файл iris.data имеет формат CSV. Мы внесем в него некоторые изменения, чтобы добавить имена столбцов.

Откройте загруженный файл в вашем любимом текстовом редакторе и добавьте следующую строку в начале.

sepal length, petal length, sepal width, petal width, class

Когда наши File Reader Узел читает этот файл, он автоматически принимает указанные выше поля в качестве имен столбцов.

Теперь вы начнете добавлять различные узлы.

Добавление читателя файлов

Перейти к Node Repository просмотра, введите «файл» в поле поиска, чтобы найти File Readerузел. Это видно на скриншоте ниже -

Выберите и дважды щелкните значок File Readerчтобы добавить узел в рабочую область. В качестве альтернативы вы можете использовать функцию перетаскивания, чтобы добавить узел в рабочую область. После добавления узла вам необходимо будет его настроить. Щелкните правой кнопкой мыши узел и выберитеConfigureпункт меню. Вы сделали это на предыдущем уроке.

После загрузки файла данных экран настроек выглядит следующим образом.

Чтобы загрузить свой набор данных, щелкните значок Browseи выберите местоположение вашего файла iris.data. Узел загрузит содержимое файла, которое отображается в нижней части окна конфигурации. Убедившись, что файл данных правильно расположен и загружен, щелкните значокOK кнопку, чтобы закрыть диалоговое окно конфигурации.

Теперь вы добавите аннотацию к этому узлу. Щелкните правой кнопкой мыши узел и выберитеNew Workflow Annotationпункт меню. На экране появится поле аннотации, как показано на скриншоте здесь:

Щелкните внутри поля и добавьте следующую аннотацию -

Reads iris.data

Щелкните в любом месте за пределами поля, чтобы выйти из режима редактирования. Измените размер и поместите рамку вокруг узла по желанию. Наконец, дважды щелкните значокNode 1 текст под узлом, чтобы изменить эту строку на следующую -

Loads data

На этом этапе ваш экран будет выглядеть следующим образом -

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

Добавление узла разбиения

в Node Repository в окне поиска введите несколько символов, чтобы найти Partitioning узел, как показано на скриншоте ниже -

Добавьте узел в нашу рабочую область. Установите его конфигурацию следующим образом -

Relative (%) : 95
Draw Randomly

На следующем снимке экрана показаны параметры конфигурации.

Затем установите соединение между двумя узлами. Для этого щелкните выводFile Reader узла, удерживайте нажатой кнопку мыши, появится линия резиновой ленты, перетащите ее на вход Partitioningузел, отпустите кнопку мыши. Теперь между двумя узлами установлено соединение.

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

Далее мы добавим k-Means узел.

Добавление узла k-средних

Выберите k-Meansузел из репозитория и добавьте его в рабочую область. Если вы хотите освежить свои знания об алгоритме k-средних, просто найдите его описание в представлении описания рабочей среды. Это показано на скриншоте ниже -

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

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

Нажмите OK чтобы принять значения по умолчанию и закрыть диалоговое окно.

Установите аннотацию и описание следующим образом -

  • Аннотация: Классификация кластеров

  • Описание: выполнить кластеризацию

Подключите верхний выход Partitioning узел на вход k-Meansузел. Переместите свои элементы, и ваш экран должен выглядеть следующим образом -

Далее мы добавим Cluster Assigner узел.

Добавление назначителя кластера

В Cluster Assignerназначает новые данные существующему набору прототипов. Он принимает два входа - модель прототипа и таблицу данных, содержащую входные данные. Найдите описание узла в окне описания, которое показано на скриншоте ниже -

Таким образом, для этого узла вам нужно сделать два соединения -

  • Результат кластерной модели PMML Partitioning узел → Ввод прототипов Cluster Assigner

  • Выход второго раздела Partitioning узел → Входные данные Cluster Assigner

Эти два соединения показаны на скриншоте ниже -

В Cluster Assignerне требует особой настройки. Просто примите значения по умолчанию.

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

На этом наша кластеризация завершена. Нам нужно визуализировать вывод графически. Для этого мы добавим диаграмму рассеяния. Мы по-разному установим цвета и формы для трех классов на диаграмме разброса. Таким образом, мы будем фильтровать выводk-Means узел сначала через Color Manager узел, а затем через Shape Manager узел.

Добавление диспетчера цвета

Найдите Color Managerузел в репозитории. Добавьте его в рабочую область. Оставьте конфигурацию по умолчанию. Обратите внимание, что вы должны открыть диалоговое окно конфигурации и нажатьOKпринять значения по умолчанию. Задайте текст описания для узла.

Подключитесь к выходу k-Means на вход Color Manager. На этом этапе ваш экран будет выглядеть следующим образом -

Добавление диспетчера форм

Найдите Shape Managerв репозитории и добавьте его в рабочую область. Оставьте его конфигурацию по умолчанию. Как и в предыдущем случае, вы должны открыть диалоговое окно конфигурации и нажатьOKдля установки значений по умолчанию. Установите соединение с выходаColor Manager на вход Shape Manager. Задайте описание узла.

Ваш экран должен выглядеть следующим образом -

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

Добавление точечной диаграммы

Найдите Scatter Plotузел в репозитории и добавьте его в рабочую область. Подключите выходShape Manager на вход Scatter Plot. Оставьте конфигурацию по умолчанию. Задайте описание.

Наконец, добавьте аннотацию группы к недавно добавленным трем узлам.

Аннотация: Визуализация

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

На этом задача построения модели завершена.

Для тестирования модели выполните следующие пункты меню: NodeExecute All

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

Теперь вы готовы визуализировать прогнозируемый результат модели. Для этого щелкните правой кнопкой мышиScatter Plot узел и выберите следующие параметры меню: Interactive View: Scatter Plot

Это показано на скриншоте ниже -

Вы увидите диаграмму рассеяния на экране, как показано здесь -

Вы можете просматривать различные визуализации, меняя оси x и y. Для этого щелкните меню настроек в правом верхнем углу диаграммы рассеяния. Появится всплывающее меню, как показано на скриншоте ниже -

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

На этом наша задача по построению модели завершена.

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

Резюме

Вы узнали о различных представлениях, представленных в рабочей среде KNIME. KNIME предоставляет несколько предустановленных рабочих процессов для вашего обучения. Мы использовали один из таких рабочих процессов, чтобы изучить возможности KNIME. KNIME предоставляет несколько предварительно запрограммированных узлов для чтения данных в различных форматах, анализа данных с использованием нескольких алгоритмов машинного обучения и, наконец, визуализации данных различными способами. Ближе к концу урока вы создали свою собственную модель с нуля. Мы использовали хорошо известный набор данных ирисов для классификации растений с использованием алгоритма k-средних.

Теперь вы готовы использовать эти методы для собственной аналитики.

Будущая работа

Если вы разработчик и хотели бы использовать компоненты KNIME в своих программных приложениях, вы будете рады узнать, что KNIME изначально интегрируется с широким спектром языков программирования, такими как Java, R, Python и многими другими.