Практическое руководство по построению модели прогнозирования на основе классификации для принятия решений о потенциальных клиентах на платформе KNIME

Имея возможность использовать алгоритмы машинного обучения в поле Генерация лидов, я столкнулся с возможностью разработать и реализовать различные модели оценки потенциальных клиентов и прогнозирования решений по ним . Ранее, освещая техническую часть интеграции моделей Scikit-learn на основе Python в экосистему Microsoft .NET, я также представил концепцию, потенциал и преимущества таких решений для оценки потенциальных клиентов. Я также упомянул о разработке модуля интеграции лидирующих решений с использованием алгоритмов на основе классификации в разделе дополнительных приложений упомянутой статьи. Предполагая, что интеграционный подход следует уже описанным шагам, в этой статье я буду больше сосредоточиваться на разработке модели решения лида, основанной на платформе KNIME. Следовательно, я подчеркну методологический подход к построению системы, включая основные узлы для импорта, нормализации, подготовки и применения данных для обучения, тестирования, оценки и оптимизации модели принятия решений.

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

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

Что такое ведущее решение?

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

Импорт данных

Как упоминалось в упомянутой статье для создания прототипа Lead Scoring, я также использовал идентичный набор данных, общедоступный на Kaggle. Учитывая, что обзор исходных данных, процесс исследовательского анализа данных (EDA) и предварительная обработка данных выходят за рамки этой статьи, я сразу перейду к представлению обзора структуры обработанных данных и импортирую его в KNIME. платформа. В этом плане я использовал среду Jupyter Notebook и преимущества библиотек анализа данных и обработки данных, таких как NumPy и pandas, с последующей поддержкой библиотек визуализации статистических данных, таких как Matplotlib и seaborn. .

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

Я не буду рассматривать применение дополнительных функций и уменьшения размерности в этом сценарии и импортирую все функции (полученные в результате анализа и обработки данных) непосредственно в платформу KNIME.

Фильтрация и нормализация данных

Принимая во внимание, что данные были первоначально исследованы и обработаны в рабочем пространстве Jupyter Notebook, я перейду к объяснению конструкции модуля фильтрации и нормализации данных, представленной на скриншоте ниже.

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

После процедуры фильтрации данных я добавил стандартный манипулятор узлов в случайном порядке для достижения случайного порядка записей (применяется конфигурация по умолчанию). За этим следует включение узла нормализатора для нормализации числовых характеристик (в данном случае TotalVisits, Общее время, проведенное на веб-сайте, Страница Просмотры за посещение ') с использованием «линейной нормализации Z-балла, основанной на распределении Гаусса (0, 1).

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

Я завершу этот модуль, используя узел Number to String для преобразования типа целевого атрибута 'Converted' в строку (формат требуется следующими модулями для подготовки данных и построения машинного обучения модель).

Разделение данных

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

Я хочу упомянуть, что я решил разделить набор данных относительно, назначив 70% данных как данные поезда и 30% как данные тестирования и настроив его для отрисовки случайным образом с использованием явно указанного случайного начального числа. Этот процесс помогает поддерживать согласованность результатов выполнения при выполнении нескольких различных потоков. В этом случае это гарантирует, что набор данных всегда будет одинаково разделен. Табличные представления вставляются только для передачи данных в следующие модули и для улучшения структуры потока и читаемости.

Построение и оптимизация модели

В общем, я решил использовать узлы Tree Ensemble Learner и Tree Ensemble Predictor для реализации модели машинного обучения с учителем. На основании статьи, упомянутой во введении, вместо решения на основе оценки потенциальных клиентов и логистической регрессии создание системы принятия решений по лидам означает реализацию алгоритмов машинного обучения для классификации. Поскольку я также упомянул классификатор случайного леса, я хочу подчеркнуть, что учащийся дерева ансамбля представляет собой набор деревьев решений (как в случае вариантов случайного леса). Также в KNIME есть ноды Обучающий случайный лес и Предсказатель случайного леса. Тем не менее, я выбрал реализацию ансамблевого дерева из-за расширенных возможностей конфигурации и упрощенной статистики атрибутов, необходимой в процессе интерпретации результатов - интерпретации результатов (важность функций) выходят за рамки этой статьи. Узлы Tree Ensemble окружены узлами Начало цикла оптимизации параметров и Конец цикла оптимизации параметров, обеспечивающие оптимизацию / настройку гиперпараметров - процесс выполнения, представленный на скриншоте ниже.

Узел запуска цикла оптимизации параметров запускает цикл оптимизации параметров на основе ранее предоставленной конфигурации. С точки зрения этого, он использует концепцию переменных потока в KNIME, гарантируя, что каждое значение параметра будет передано как конкретная переменная потока. Я использовал подход со стандартными настройками, настроив «Количество моделей», «Максимальные уровни» и «Минимальный размер узла» в качестве параметров алгоритма древовидного ансамбля. . Используя интервал значений и размер шага, этот цикл обеспечивает построение и оценку различных моделей классификации.

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

Этот подход к проектированию должен поддерживаться использованием узла Scorer для предоставления результатов цикла прогнозирования модели на ранее определенном наборе данных тестирования. Итак, для достижения этого потока я подключаю узел Ensemble Tree Predictor (конфигурация по умолчанию) с механизмом скоринга и оборачиваю его вокруг цикла оптимизации.

Однако стоит упомянуть конфигурацию узла Tree Ensemble Learner. В области выбора атрибута все, что необходимо настроить, - это атрибут столбца Target, функция набора данных «Конвертированный».

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

Как видно в нижней части окна конфигурации, здесь явно указано, что «maxLevels», «minNodeSize» и «nrModels» являются контролируется переменными. Это переменные входного потока, поступающие в результате цикла, как я объяснил ранее. Таким образом, в этом случае каждая созданная модель будет испытывать разные параметры конфигурации - настройку параметров. Учитывая, что необходимо явное совпадение переменных потока, я сопоставил конкретные имена на экране Переменные потока.

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

Узел конца цикла оптимизации параметров предоставляет два порта вывода: Лучшие параметры и Все параметры. Я использовал обзор всех параметров для анализа эффективности классификатора решений по лидам на основе различных комбинаций параметров. Это считается хорошей практикой в ​​начальном понимании того, как работает модель, а также как индикатор того, как ее можно дополнительно оптимизировать, методы, которые выходят за рамки статьи.

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

Извлечение модели принятия решения

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

Следуя аналогичному подходу ввода переменных потока, я сконфигурировал параметры переменных как параметры алгоритма Tree Ensemble в Tree Ensemble Learner. Я должен подчеркнуть здесь, что важно, чтобы набор обучающих данных из построения и оптимизации был идентичен при извлечении наиболее эффективной модели принятия решения о потенциальных клиентах. То же самое применимо и к данным тестирования. Это было достигнуто с помощью специального случайного начального значения, описанного в предыдущем модуле. Более того, статическое случайное начальное число, настроенное в конфигурации ансамбля учащегося ансамбля дерева, также должно быть идентифицировано в модулях построения, оптимизации и извлечения окончательной модели.

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

Итак, класс 0 представляет "непревращенных" потенциальных клиентов, а класс 1 представляет "преобразованные 'ведет. Этот столбец также можно выровнять как категориальный в процессе обработки данных, чтобы вместо работы с целыми числами (преобразованными в строки) могло иметь место категориальное описание.

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

Заключительные слова

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

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

— — — — — — — — — — — —

Спасибо, что уделили время чтению статьи. Я считаю, что это было проницательно и вдохновило вас.

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

Первоначально опубликовано на https://www.linkedin.com.