Комментировать

Этап № 2 «Подготовка данных и моделирование»

Этап №1 Этап №2 Этап №3 Этап №4 Этап №5
Этап №1 Этап №2 Этап №3 Этап №4 Этап №5
Описание методологии

Этап № 2 «Подготовка данных и моделирование»

Требования к результату

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

Роли участников этапа

  • Владелец продукта
  • Руководитель проекта
  • Аналитик данных
  • Инженер данных
  • Специалист по информационной безопасности

Описание процессов

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

Требования к инфраструктуре / ПО

  • Удобный в использовании инструмент анализа данных с понятной визуализацией (Orange, Weka, Pentaho и другие)
  • Подходящий (для выбранных типов моделей) язык программирования (Java, Python, R, Scala и другие) и программный каркас для машинного обучения (Apache Spark, sklearn, TensorFlow и другие)
  • Подходящие вычислительные мощности (собственные или нанятые в режиме PAAS/SAAS*) и (это очень важно) средства отображения (Монитор от 27'', разрешением выше 1080p или аналогичное проекционное оборудование)

Методические рекомендации по подготовке данных

Подготовка данных к моделированию предусматривают несколько этапов:

  1. Определение режима доступа к данным, места их хранения и режима обеспечения информационной безопасности:
    1. <"A"> Обеспечение целостности данных вне зависимости от режима доступа: исключение модификации данных при доступе к ним и при передаче на обработку.
    2. <"B"> Обеспечение режима конфиденциальности доступа: в зависимости от требований соответствующих положений.
  2. Очистку и реконструирование данных, если это требуется по результатам их исследования ( на предыдущем этапе ):
    1. <C> под очисткой понимается:
      • извлечение из потока данных фрагментов, удовлетворяющих определённым требованиям: в зависимости от задачи это может быть очистка текста от элементов форматирования HTML, выделение из текста электронных адресов, телефонов и так далее.
    2. <D> под реконструкцией понимается:
      • обработка пропусков данных: от игнорирования до экстраполяции — в зависимости от задачи;
      • поиск дубликатов и кодирование данных: на основании логических правил или словарей;
      • обнаружение и обработка выбросов: с помощью методов математического моделирования или статистики.
  3. Конвертацию и объединение данных, получаемых из разных источников:
    1. <A> разработка методов приведения данных: как правило, к формату, который требует инструментарий;
    2. <B> разработка методов объединения данных: как правило, основанных на выделении пересекающихся подмножеств, влияние которых в результирующем наборе должно быть минимальным и релевантным постановке задачи.
  4. Составление тестовых выгрузок и наборов данных для обучения моделей:
    1. <A> для тестовых наборов:
      • разметка: заполнение значений целевой переменной, которая будет определяться или предсказываться алгоритмом.
    2. <B> для наборов обучения:
      • разметка данных: заполнение значений целевой переменной, которая будет определяться или предсказываться алгоритмом;
      • нормализация данных *: преобразование количественных признаков к одной шкале и масштабу так, чтобы каждая переменная, влияющая на результат, вносила адекватный вклад.

Перечень процессов:

  • Разработка инструментария отбора, очистки и конструирования данных для целей моделирования решения.

  • Очистка и интеграция наборов данных, подготовка тестовых наборов.

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

Требования к результату:

  • определены критерии отбора записей/элементов данных в соответствии с постановкой задачи;
  • определены атрибуты или характеристики записей/ элементов, а качество данных в них удовлетворяют условиям задачи;
  • для каждого набора приняты решения об очистке, реконструировании и исправлении данных, принятые решения включены в спецификацию по подготовке данных;
  • определены спецификации правил объединения и дополнения данных.

Требования к компетенциям: 

  • Владелец продукта
    • отраслевая экспертиза ( обычно представитель Заказчика или владелец продукта ).
  • Руководитель проекта
    • компетенции в проектном управлении ( ресурсы, коммуникации, структурирование проекта ).
  • Аналитик данных
    • компетенции в отборе данных;
    • компетенции в подготовке данных к анализу;
    • компетенции в программировании: Python, R, Scala, Java и другие ( в зависимости от выбранного технологического каркаса ).
  • Инженер данных
    • компетенции в ETL-обработке данных ( инженерия данных );
    • компетенции в программировании.
  • Специалист по информационной безопасности
    • компетенция в обеспечении безопасного доступа к данным.

Типы атрибутов данных и требования к ним

Строковые и текстовые поля

Строковые или текстовые данные, в общем случае, представлены произвольными последовательностями символов, взятых из некоторого заданного алфавита, подчинённого одной из таблиц кодировки: CP-1251, UTF-8, KOI-8 и так далее. Могут использоваться для хранения сериализованных данных, таких, как JSON, XML и прочих.

К ключевым требованиям для строковых типов данных относятся следующие правила:

  • Таблица кодировки в рамках одного поля набора данных ( или всего набора данных ) должна быть одна.
  • Если таблица кодировки текстового поля отличается от UTF-8* , его значение должно быть сконвертировано.
  • Если в качестве формата передачи данных используется формат CSV, значение поля должно помещаться в кавычки.
  • Должно быть установлено правило сравнения неопределённых и пустых строковых значений.
  • Значения строковых типов не должны содержать коды символов, не принадлежащих кодовой странице поля, за исключением специальных управляющих символов:

Числовые поля

Числовой тип данных может быть представлен двумя подтипами: целое или действительное. Могут отличаться разрядностью в битах ( 8-64 ) и признаком “плавающая запятая”.

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

Дата и время

Поля типа даты и/или времени в своей основе в рамках СУБД часто используют целочисленные типы данных ( обычно хранится значение прошедших миллисекунд с начала заданной временной эпохи ).

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

За исключением особых случаев, описываемых отдельно и явно, рекомендуем использовать форматы представления даты в текстовой форме, соответствующие стандарту ISO 8601 ( https://ru.wikipedia.org/wiki/ISO_8601 ).

Перечисления и классификаторы

Перечисления — это набор строго заданных значений, семантика которых определяется конкретной предметной областью ( или областями ) и/или поставленной задачей. Значения перечислений, как правило, являются литералами ( https://ru.wikipedia.org/wiki/Литерал_ ( информатика ) ).

К ключевым требованиям для перечислений относятся следующие правила:

  • Следует избегать использование пробельных символов в значениях литералов: либо удалять их, либо использовать символ подчёркивания ( “_” ).
  • В наборе значений перечисления должно быть явно заданный “пустой” или “неопределённый” литерал.
  • Должно быть установлено правило сравнения неопределённых и пустых литералов.

Классификатор — общий случай перечисления, представленный двумя полями:

  • Код элемента классификатора: заданный по правилам, описанным в пункте «Идентификаторы и ключевые поля»
  • Наименование элемента классификатора: заданное по правилам, описанным в пункте «Строковые и текстовые поля»

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

Идентификаторы и ключевые поля

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

  • Область данных: уникальный идентификатор области или секции данных, к которым относится объект/запись
  • Пространство имён: уникальный идентификатор, к которому принадлежит запись или объект данных
  • Уникальный идентификатор записи: уникальность которого распространяется на пересечение области данных с пространством имён. В наиболее простых случаях, идентификатор может быть представлен рядом положительных неповторяющихся целых чисел или букв заранее заданного алфавита.

Ключевые поля могут быть следующих типов:

  • Первичный: определяет базовый уникальный идентификатор записи в наборе
  • Альтернативный: определяет дополнительный уникальный идентификатор записи в наборе, используемый для наложения дополнительных семантических ограничений на данные
  • Внешний: определяет область, пространство имён и идентификатор записи во внешнем наборе данных Для слабоструктурированных данных сказанное выше также справедливо, несмотря на то, что реляционный характер структуры хранения может быть слабо выражен. 

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

Интервальные значения

Наиболее распространёнными значениями интервального типа являются:

  • Градации возрастов: до 18, от 18 до 25, от 25 ло 40, ....
  • Градации доходов: до 10 000, от 10 000 до 25 000, ...
  • Размеры/расстояния: до 100, от 100 до 1000, ...
  • И так далее.

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

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

Например, есть такие таблицы:

  • таблица сроков полезного использования инвентаря: в которой на заданную дату рассчитано поле “возраст” в годах
  • таблица инвентаря из внешнего источника: в которой поле “возраст” представлено в виде интервалов ( до 3 лет, от 3 до 5 лет, более 5 лет );
  • классификатор интервалов:
  • До 3 лет: val < 3
  • От 3 до 5 лет: val >= 3 and val < 5
  • Более 5 лет: val >= 5

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

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

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

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

  • age_start: число
  • age_end: число

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

Методические рекомендации по машинному обучению и оценки моделей ИИ

Перечень процессов:

  • Формулирование гипотез или вопросов к данным для целей моделирования, удовлетворяющих требованиям постановки задачи.
  • Определение технологического стека и техник моделирования решения задачи.
  • Моделирование решения: разработка программного кода, выполнение процедур машинного обучения и отладка моделей.
  • Валидация моделей: тестирование моделей машинного обучения на предмет соответствия критериям постановки задачи и условиям применимости.
  • Определение аппаратных требований для развёртывания среды моделирования базового решения.
  • Обеспечение безопасности данных.

Требования к результату:

  • развёрнуты вычислительные среды для разработки и обкатки моделей решения в соответствии с требованиями, предъявляемыми соответствующими алгоритмами моделирования;
  • выбрана техника( и ) моделирования данных и обоснована набором гипотез;
  • определены наборы данных для проверки модели( ей ), оценены ошибки измерения и обработки данных * , выработаны критерии успешности моделирования, включая такой критерий, как точность модели; 
  • для каждой построенной модели получены подтверждения о том, возможно ли в результате её вычисления сделать осмысленное заключение, насколько устойчив этот результат, приемлема ли скорость вычислений;
  • составлен отчёт о выявленных аномалиях в данных при моделировании, недочётах в исходных данных;
  • предоставлен отчет о качестве моделирования ( в ключая метрики качества предсказания и скорость обучения ), который содержит выявленные препятствия по внедрению разработанных алгоритмов.

Требования к компетенциям:

  • Владелец продукта
    • отраслевая экспертиза ( обычно представитель Заказчика или владелец продукта ).
  • Руководитель проекта
    • компетенции в проектном управлении ( ресурсы, коммуникации, структурирование проекта ).
  • Аналитик данных
    • компетенции в анализе и архитектуре данных;
    • компетенции в программировании.
  • Инженер данных
    • компетенции в ETL-обработке данных ( инженерия данных );
    • компетенции в программировании.
  • Специалист по информационной безопасности
    • компетенция в обеспечении безопасного доступа к данным.