Обзор распространенных типов фреймворков и простой процесс создания собственных фреймворков
Делиться

Концептуальные фреймворки — это аналитические структуры для представления абстрактных концепций и организации данных. Специалисты по данным регулярно используют такие фреймворки — осознанно или неосознанно — для разработки планов проектов, выбора моделей машинного обучения, обеспечивающих баланс различных компромиссов, и представления результатов и рекомендаций заинтересованным сторонам. В этой статье представлен обзор распространённых типов концептуальных фреймворков, простой трёхэтапный процесс создания собственных фреймворков и советы по успешному использованию.
Примечание: Все рисунки в следующих разделах созданы автором данной статьи.
Распространенные типы фреймворков
Хотя концептуальные фреймворки бывают самых разных форм и размеров, выделяются четыре основных типа фреймворков, наиболее распространённых в проектах по науке о данных: иерархии, матрицы, потоки процессов и реляционные карты. Ниже мы кратко рассмотрим каждый из этих типов фреймворков.
Иерархии
Иерархические структуры часто принимают форму древовидных диаграмм, начинающихся с корневого узла и заканчивающихся несколькими листовыми узлами, как показано на рисунке 1. Например, корневой узел может представлять собой всеобъемлющую концепцию в таксономии или начальный бинарный вопрос в дереве решений. Положение узла в иерархии (или дереве) даёт нам ценную информацию о его связи с другими узлами. Хотя на рисунке 1 элементы иерархии обозначены как «концепции», они могут быть любыми типами сущностей. Сущности могут быть нейтральными (например, концепции, темы, сегменты) или иметь некоторую положительную или отрицательную валентность (например, доходы, затраты, проблемы, вопросы). Иерархическая структура может различаться по глубине и широте.

В визуальных представлениях иерархий вертикальные связи между двумя сущностями обычно изображаются явно и могут быть ненаправленными (простые линии) или направленными (стрелки вниз или вверх, в зависимости от направления связи). Напротив, горизонтальные связи между сущностями на одном уровне иерархии обычно явно не показываются. Сущности одного уровня могут подчиняться естественному порядку (например, временному или пространственному), который можно показать, разместив их соответствующим образом в структуре. Например, сущности, которые встречаются раньше в порядке, должны быть размещены слева от сущностей, которые встречаются позже. Если сущности не имеют естественного порядка, вы все равно можете рассмотреть возможность упорядочивания их каким-либо образом (например, по уровню важности или приоритета) для облегчения рассуждений. Сущности на одном уровне иерархии, как правило, также должны находиться на одном уровне абстракции.
Во многих ситуациях полезно, если узлы иерархии являются взаимоисключающими и в значительной степени кумулятивно исчерпывающими (MECE, произносится как «ми-си»). Взаимоисключаемость означает, что концепции, представленные отдельными узлами, не имеют существенных совпадений (т.е. не имеют избыточности), в то время как кумулятивно исчерпывающая иерархия означает, что структура не упускает ничего важного. Иерархия MECE может быть полезна для разбиения общей концепции на подконцепции (или компоненты) для выявления ключевых движущих сил целого.
Матрицы
Матрица — это табличная структура данных, состоящая из n строк и m столбцов. Специалисты по работе с данными, работающие с табличными вариантами использования, обычно используют матрицы для хранения обучающих данных и весовых коэффициентов моделей. Модели машинного обучения могут создавать многомерные матрицы весовых коэффициентов, отражающие сложные взаимосвязи между предикторами и целевыми значениями. Матрицы малой размерности, подобные показанной на рисунке 2, могут быть полезны для анализа проблем и передачи ключевых выводов.

Типичная матрица размером два на два, показанная на рисунке 2, сравнивает два различных измерения друг с другом. Такая матрица естественным образом делится на четыре квадранта. Обычно нижний левый квадрант (где оба измерения имеют низкие значения) обычно является нежелательным регионом матрицы, а верхний правый квадрант (где оба измерения имеют высокие значения) представляет желаемый регион. Например, исследовательская компания Gartner использует матрицы размером два на два для анализа конкурентной среды в различных отраслях и называет верхний правый регион матрицы (где отображены лидеры рынка) «магическим квадрантом».
Измерения матрицы могут представлять собой непрерывные, порядковые или категориальные типы данных. В идеале эти измерения (или оси) должны быть каким-то образом важны для общей цели фреймворка (например, ключевые подконцепции, проблемы или движущие факторы в данном контексте). Взаимодействие между этими измерениями должно представлять особый интерес как источник информации, поскольку именно эти взаимодействия хорошо отражаются матрицами.
В целом, принцип MECE применим и к выбору измерений: они должны в совокупности охватывать важные подпонятия или движущие факторы исследуемой проблемы, избегая избыточности. В противном случае рассмотрение взаимодействия ничем не будет отличаться от рассмотрения отдельного измерения. Если анализ взаимодействия не важен, иерархическая структура может оказаться более подходящей. Преобразование между матричной структурой и её иерархическим аналогом может быть простым. Например, чтобы преобразовать матрицу на рисунке 2 в иерархию, создайте корневой узел, определяющий общий контекст, пусть его дочерние узлы будут измерениями 1 и 2, а их дочерние узлы — «высокими» и «низкими».
Потоки процессов
Поток процесса определяет последовательность логически упорядоченных действий, взаимодействующих для достижения общей цели. Например, такие инструменты, как Dataiku и KNIME, позволяют пользователям создавать конвейеры обработки данных в виде потоков процессов, охватывающих весь процесс – от получения данных до моделирования и создания отчётов. На рисунке 3 представлена общая структура процесса.

Сущности процесса на рисунке 3 обозначены как действия, но это могут быть шаги, этапы, операции и т. д. Процесс начинается с действия (Действие 1), заканчивается действием (Действие 3) и имеет одно или несколько промежуточных действий (Действие 2). Некоторые входные данные обычно подаются в процесс в начале и преобразуются в ходе последовательности действий для получения выходных данных. Обратите внимание, что входные и выходные данные также могут поступать и выходить на промежуточных этапах процесса.
Как и в случае иерархий и матриц, принцип MECE может быть важен при формулировании различных действий процесса. Если два действия имеют значительное концептуальное совпадение, можно рассмотреть возможность их объединения в одно действие или разбиения на более детализированный набор отдельных действий. Например, промежуточные действия на рисунке 9 могли быть результатом такого анализа; действие 2 может быть результатом объединения некоторых перекрывающихся действий, в то время как действия 2.1–2.3 могут быть детализированным разбиением особого подмножества этих объединённых действий. Если действие или большая часть процесса повторяется, то это можно представить в виде цикла, посредством которого действие переходит в другое действие, которое уже выполнялось ранее.
Переход от одного вида деятельности к другому должен осмысленно преобразовывать входные данные процесса (например, увеличивая, уменьшая, комбинируя или иным образом изменяя входные данные) с целью получения желаемого результата. Если переход не изменяет входные данные, то два вида деятельности по обе стороны перехода, вероятно, избыточны и должны быть объединены или разделены по-другому, как обсуждалось выше.
Реляционные карты
Реляционные карты смещают фокус с отдельных концепций (или сущностей) на отношения между ними. Специалисты по данным, работающие с графами знаний или «диаграммами путей» причинно-следственных связей (как показано на рисунке 4), знакомы с этим типом фреймворка.

Отношение, как правило, может представлять собой любую функцию, связывающую два разных понятия. Наиболее распространены четыре типа отношений:
- Транзакционные: отношение может представлять собой одну или несколько транзакций между сущностями. Транзакции могут включать поток материальных вещей (например, товары, купленные и проданные) или нематериальных вещей (например, информация, деньги). Транзакционные отношения могут иметь направленность; транзакция может идти от А к Б, от Б к А или в обоих направлениях, и каждый из этих случаев имеет разное значение для сущностей (например, они могут быть получателями, отправителями или и теми, и другими).
- Причинно-следственная связь: сущности A и B могут быть причинно связаны, если A ответственна — хотя бы частично — за возникновение или состояние B (или наоборот). Характер причинно-следственной связи может варьироваться. Роль A сильна, если её присутствия достаточно, чтобы полностью вызвать B (хотя A может быть не единственной сущностью, способной полностью вызвать B). Роль A также сильна, если она необходима для того, чтобы вызвать B (хотя A может быть не в состоянии сделать это в одиночку). Более того, если A является причиной B, это не обязательно означает, что B является причиной A; понятие направленности, безусловно, важно для определения причинно-следственных связей.
- Основано на сходстве: сущности могут быть связаны, поскольку они схожи или различны в каком-либо отношении. Например, сущности A и B могут быть схожи, поскольку они, как правило, появляются в одном и том же месте или происходят в одно и то же время (и различаются, если появление одной сущности, как правило, исключает появление другой). Понятие корреляции — это математическая формализация, часто используемая для построения измеримых отношений, основанных на сходстве. Обратите внимание, что корреляция двух сущностей не обязательно означает, что они причинно связаны (хотя, если они причинно связаны, то они также будут коррелированы).
- Основанные на членстве: сущности могут быть связаны друг с другом, будучи членами одной группы, сообщества или категории. Например, люди могут быть связаны проживанием в одном районе, продукты питания могут быть частью одной категории, а набор подконцепций может быть частью общей концепции. Действительно, можно применить иерархическую структуру для последовательного углубления уровней членства внутри рассматриваемых сущностей.
Как создать свои собственные фреймворки
Для создания собственного фреймворка можно использовать следующий трехэтапный процесс:
- Определите цель фреймворка.
- Определите правильные строительные блоки (т. е. тип и размеры каркаса).
- Эффективно объедините строительные блоки, чтобы достичь цели структуры.
Шаг 1: Определите цель
Определяя цель фреймворка, задайте себе вопросы: в каком контексте он будет использоваться? Чего он должен достичь? Можно ли повторно использовать существующий фреймворк — возможно, с небольшими изменениями — или необходимо разработать новый, отвечающий вашим конкретным потребностям?
Построение фреймворка должно быть привязано к более высокой цели, например, к реализации проекта, формулированию решения или созданию какой-либо документации. После того, как контекст будет правильно понят, следует тщательно продумать, чего конкретно фреймворк должен достичь. Предназначен ли фреймворк как инструмент принятия решений? Предназначен ли фреймворк для структурирования аргументации в отчёте или презентации?
Тот факт, что вам нужен фреймворк, не означает, что вы должны создать его самостоятельно. Во многих ситуациях существующие концептуальные фреймворки можно использовать повторно без существенных изменений. Затратив определённые усилия на поддержание надёжного и актуального обзора соответствующих существующих фреймворков, вы избежите последующих затрат на «изобретение велосипеда». Повторное использование существующих фреймворков имеет свои преимущества, помимо того, что вам не придётся начинать всё с нуля; если фреймворк существует уже некоторое время, его основные функции, а также сильные и слабые стороны, могут быть хорошо документированы и протестированы в различных условиях. Такие платформы, как Towards Data Science, — отличный источник информации о концептуальных фреймворках, связанных с проектами в области науки о данных.
Шаг 2: Определите тип и размеры каркаса
Прояснив цель фреймворка, пора более конкретно рассмотреть его конструкцию. Одна из главных сложностей заключается в том, что концептуальные фреймворки по своей природе не так осязаемы, как физические (как формы на фабрике). Мы склонны интуитивно улавливать связь между формой и функцией — фреймворком и его назначением — когда фреймворк и его объект осязаемы. Отличительной чертой хорошего концептуального фреймворка является его способность превращать, казалось бы, неосязаемый аргумент или решение во что-то более осязаемое, и ключ к этому — репрезентация.
В общих чертах, представление концептуальных фреймворков определяется двумя аспектами: типом фреймворка и его размерами. Скорее всего, вы первым делом обратите внимание на тип фреймворка, поскольку он определяет, как фреймворк выглядит в целом. В предыдущих разделах были рассмотрены четыре распространённых типа фреймворков. Размеры фреймворка определяют, что именно фреймворк может представлять (например, с точки зрения детализации и упорядоченности). Изменяя размеры, можно повторно использовать один и тот же тип фреймворка для получения широкого спектра различных аналитических данных. Ниже приведены три распространённых класса размеров фреймворка:
- Категориальные: эти измерения состоят из конечного набора дискретных категорий, которые полностью описывают измерение. Категории не обязательно должны быть упорядочены (например, набор продуктов, сегменты потребителей, пол).
- Порядковые: эти измерения упорядочены, что означает, что вы можете проанализировать, является ли что-то «меньше», «больше», «равно» и т. д. по отношению к чему-то другому (например, отрицательное/положительное, низкое/среднее/высокое).
- Непрерывность: такие измерения могут вывести понятие порядковых измерений на гораздо более детальный уровень. Непрерывность означает, что измерение является числовым и может включать десятичные дроби (например, 1,23, -2,718, 3,14159).
Шаг 3: Соберите все вместе
После определения типа и размеров фреймворка их можно объединить для создания индивидуального фреймворка. Зачастую этапы идентификации и комбинирования явно не разделены, поскольку одно редко обходится без другого. Однако тип фреймворка и его размеры — основные строительные блоки — не обязательно связаны друг с другом. Некоторые комбинации могут быть более разумными, чем другие, и, как правило, вы можете комбинировать и сочетать строительные блоки различными способами в течение нескольких итераций, пока не почувствуете, что фреймворк подходит именно вам. Умение замечать и использовать эту комбинаторную гибкость — важнейший навык, который следует развивать с самого начала вашего пути к построению фреймворка.
Более того, существует четыре общих «пути анализа», которые отражают связь между структурой и ее целью:
- Описательный подход: достигает цели фреймворка путём сбора и организации информации из прошлого (например, с помощью визуальных средств, таких как графики и таблицы, или письменных резюме). Это позволяет нам лучше описывать и анализировать события прошлого, но не обязательно объясняет, почему что-то произошло, или повторится ли это снова.
- Диагностика: берёт описательную информацию о прошлых событиях и делает шаг вперёд, чтобы понять, почему что-то произошло. Это достигается путём углубленного анализа данных, поиска подсказок и корреляций, а также поиска вероятной причинно-следственной связи. Как и в описательном пути, основное внимание уделяется прошлому.
- Предсказательный: отличается от двух предыдущих тем, что задаёт вопросы о будущем и отвечает на них. Основное внимание уделяется обоснованному предположению о том, что произойдёт в будущем, используя множество типично количественных методов, от простых (например, базовая теория вероятностей, линейные модели) до более сложных (например, нейронные сети).
- Предписывающий: выходит за рамки простого прогнозирования будущих событий и предлагает способы реагирования на них. Основное внимание уделяется пониманию того, как что-то должно произойти (или должно ли это произойти) в будущем. Обоснование предписания может быть количественным (например, основанным на статистике или имитационном моделировании) или качественным (например, основанным на личном опыте).
Таким образом, типы и измерения фреймворков можно комбинировать различными способами для создания индивидуальных фреймворков, пригодных для описательных, диагностических, прогностических и предписывающих случаев использования.
Лучшие советы
В этом разделе представлены пять советов по построению хороших концептуальных структур. Эти советы ни в коем случае не являются исчерпывающим списком пунктов, которые следует учитывать, но представляют собой базовый набор вещей, которые следует иметь в виду.
Совет 1: Сосредоточьтесь на цели и аудитории
Процесс построения фреймворков в целом состоит из трёх этапов: определения цели, а затем соответствующего определения и комбинирования строительных блоков (типов и измерений фреймворка). Хотя первый этап по своей природе делает акцент на стратегической цели и целевой аудитории фреймворка, на последних двух этапах акцент смещается на мельчайшие детали строительных блоков фреймворка. Чем глубже вы погружаетесь в механику фреймворка, тем сложнее поддерживать чёткое представление об изначальной цели. Чтобы сохранить чёткое представление о общей картине, полезно время от времени делать шаг назад в процессе построения фреймворка и напоминать себе о стратегической цели и целевой аудитории. Также может быть полезно отложить часть анализа до тех пор, пока не появятся необходимые данные, и по возможности регулярно запрашивать обратную связь от коллег и целевой аудитории вашего фреймворка.
Совет 2: сделайте все максимально просто
Перефразируя цитату, часто приписываемую Альберту Эйнштейну — одному из самых выдающихся создателей концептуальных структур прошлого века, — можно сказать, что структуру следует делать настолько простой, насколько это возможно, но не проще. Поскольку этот процесс по своей сути предполагает перебор различных комбинаций типов и измерений структуры, иногда может возникнуть соблазн собрать воедино всё больше и больше элементов. Однако жертвование простотой потенциально может снизить общую ценность структуры на практике. Сложные структуры могут быть сложны для понимания, применения, оценки и построения — вам может потребоваться проверить ряд предположений и предпосылок, а также настроить множество различных рычагов внутри структуры.
Совет 3: Сделайте это MECE
Обеспечение соответствия фреймворка принципам MECE имеет ряд важных преимуществ. С теоретической точки зрения, соответствие принципам MECE означает, что подконцепции следуют последовательной аддитивной логике «часть-целое»; предполагается, что подконцепции «суммируются» для формирования более крупного понятия. Важно отметить, что эта логика позволяет заменять более крупное понятие набором подконцепций (и наоборот) на протяжении всего анализа. Аддитивная логика MECE также позволяет строго сравнивать различные концепции; вместо того, чтобы утверждать, что два понятия похожи, можно точно указать степень их сходства, указав общие подконцепции. С практической точки зрения, соответствие принципам MECE означает, что можно эффективно «разделять и властвовать» над крупными проблемами, а решения некоторых подзадач могут быть повторно использованы. Иногда можно даже достичь решения более крупной проблемы, не решая все подзадачи (например, если более крупную проблему можно представить в виде дизъюнкции подзадач). Обход подзадач также работает, когда вы решаете большую задачу индуктивным методом (например, как в математической индукции).
Совет 4: сделайте его гибким
По сути, концептуальный фреймворк должен быть разработан для достижения своей общей цели, поэтому вы можете задаться вопросом, почему гибкость так важна. На практике существует как минимум два типа ситуаций, в которых гибкость может быть очень полезна. В первом случае вы можете иметь дело с движущейся целью, при этом некоторые части её общей области действия время от времени меняются (пусть даже незначительно); реагирование на такие изменения области действия может быть затруднительным, если фреймворк не обладает гибкостью. Во втором случае вашему фреймворку, возможно, придётся пройти несколько итераций, в ходе которых различные типы и измерения фреймворка добавляются, изменяются и удаляются в ходе его развития; гибкий дизайн значительно упрощает внесение подобных изменений в структуру и её содержание. Модульность, масштабируемость, надёжность, расширяемость и переносимость, хотя обычно они ассоциируются с программной инженерией и архитектурой, также являются важными факторами проектирования для создания гибких концептуальных фреймворков.
Совет 5: Создавайте итеративно
Было бы здорово, если бы вы могли создать идеальный фреймворк за один раз, но это редко получается. Несколько факторов могут сделать первую итерацию скорее черновиком, за которым последует как минимум ещё несколько. Главная цель — и особенно операционные последствия при построении фреймворка — поначалу могут быть не совсем ясны. Однако через пару итераций вы, вероятно, начнёте понимать, какие типы и измерения фреймворка работают, а какие — нет. Хотя ваш результат после каждой итерации может быть далёк от идеала, он, тем не менее, может представлять собой минимально жизнеспособный продукт (MVP), если он обеспечивает жизнеспособное решение главной цели с минимальными усилиями и сложностью. MVP можно протестировать (например, на реальных данных и реальных пользователях), чтобы понять его сильные и слабые стороны. Каждая последующая итерация может создавать улучшенный MVP путём добавления, удаления или изменения функций предыдущей итерации.
В завершение предлагаем вашему вниманию видео, в котором даются еще несколько полезных советов по созданию и использованию концептуальных фреймворков:
Обертка
Концептуальные модели помогают нам превращать абстрактные идеи в конкретные, осязаемые продукты, которые другие люди могут видеть, использовать и ценить. Это может быть особенно важно для специалистов по работе с данными, или так называемых «работников знаний», чья работа связана со сбором, анализом данных и выводом на их основе выводов. Если вы читаете эту статью, вы, вероятно, являетесь специалистом по работе с данными. Перефразируя известного гуру менеджмента Питера Друкера, «именно данные позволяют специалистам по работе с данными выполнять свою работу», но именно способность осмысленно организовать эти данные приводит к качественному выполнению работы — и именно поэтому, если коротко, правильное использование концептуальных моделей может способствовать успешной разработке и реализации проектов в области науки о данных.
Источник: towardsdatascience.com



























