Секционирование данных на обучающий и проверочный наборы данных (службы Analysis Services — интеллектуальный анализ данных)

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

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

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

Создание секций для структур интеллектуального анализа данных

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

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

  • Секционирование структуры интеллектуального анализа данных с помощью мастера интеллектуального анализа данных при ее создании.

  • Изменение свойств структуры на вкладке Структура интеллектуального анализа данных в конструкторе интеллектуального анализа данных.

  • Программное создание и изменение структур с помощью объектов AMO или языка XML DDL.

Секционирование структуры интеллектуального анализа данных с помощью мастера интеллектуального анализа данных

По умолчанию после определения источников данных для структуры интеллектуального анализа данных мастер интеллектуального анализа данных разделяет все данные на секции: 70% для обучения и 30% для проверки. Это соотношение часто используется при интеллектуальном анализе данных, но в службах Службы Analysis Services его можно изменить в соответствии с требованиями.

Кроме того, можно настроить в мастере установку максимального числа обучающих вариантов либо сочетать ограничения, что позволяет использовать максимальное процентное соотношение вариантов до указанного максимального числа вариантов. Если одновременно задано и максимальное процентное соотношение вариантов, и максимальное число вариантов, службы Службы Analysis Services будут использовать меньшее из двух ограничений в качестве размера проверочного набора. Например, если задать 30% контрольных данных для проверочных вариантов и максимум 1000 проверочных вариантов, то размер проверочного набора никогда не будет превышать 1000 вариантов. Это может быть удобно, если необходимо гарантировать постоянный размер проверочного набора даже в случае, если в модель будут добавлены дополнительные обучающие данные.

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

ПримечаниеПримечание

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

Изменение свойств структуры

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

Свойство

Описание

HoldoutMaxCases

Задает максимальное число вариантов, включаемых в проверочный набор.

HoldoutMaxPercent

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

HoldoutSeed

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

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

Программная настройка предложения HOLDOUT

Секционированную структуру интеллектуального анализа данных можно создать с помощью инструкций DMX, объектов AMO или языка XML DDL.

  • DMX   В языке расширений интеллектуального анализа данных (DMX) расширена инструкция CREATE MINING STRUCTURE. В нее добавлено предложение WITH HOLDOUT. Синтаксис и примеры использования инструкции CREATE STRUCTURE см. в разделе CREATE MINING STRUCTURE (расширения интеллектуального анализа данных).

    ПримечаниеПримечание

    Инструкция ALTER MINING STRUCTURE не поддерживает использование контрольных параметров.

  • ASSL   Язык сценариев служб Службы Analysis Services (ASSL) позволяет как создавать новые секционированные структуры интеллектуального анализа данных, так и добавлять секции к существующим. Дополнительные сведения см. в разделе Элемент MiningStructure (язык ASSL).

  • AMO   Объекты AMO также позволяют просматривать и изменять секции. Дополнительные сведения см. в разделе Основные понятия и модель объектов AMO.

Просмотр сведений о секциях существующей структуры интеллектуального анализа данных возможен также через запрос к набору данных схемы интеллектуального анализа данных. Для этого необходимо выполнить вызов DISCOVER ROWSET или DMX-запрос. Дополнительные сведения см. в разделах Наборы строк схемы интеллектуального анализа данных и Запрос наборов строк схемы интеллектуального анализа данных (службы Analysis Services — интеллектуальный анализ данных).

Использование сведений о секциях

По умолчанию все сведения об обучающей и проверочной секциях находятся в кэше. Это дает возможность использовать существующие секции для обучения и последующей проверки новых моделей. Кроме того, можно определять фильтры, применяемые к кэшированным контрольным секциям, что позволяет вычислять модель по поднаборам данных. Дополнительные сведения см. в разделе Создание фильтров для моделей интеллектуального анализа данных (службы Analysis Services — интеллектуальный анализ данных).

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

SELECT * from <structure>.CASES WHERE IsTrainingCase()

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

SELECT * from <structure>.CASES WHERE IsTestCase() AND <structure column name> = '<value>'

Ограничения в использовании контрольных данных

  • Чтобы использовать контрольные данные, свойство MiningStructureCacheMode структуры интеллектуального анализа данных должно иметь значение по умолчанию KeepTrainingCases. Если изменить значение свойства CacheMode на ClearAfterProcessing и затем выполнить повторную обработку структуры интеллектуального анализа данных, секция будет потеряна.

  • Секции нельзя использовать в моделях временных рядов. Поэтому при создании модели с использованием алгоритма временных рядов (Майкрософт) секционирование отключается. Это происходит также в том случае, если структура интеллектуального анализа данных содержит столбец KEY TIME на уровне варианта или вложенной таблицы.

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

  • В большинстве случаев 30% контрольных данных по умолчанию обеспечивают хороший баланс между обучающими и проверочными данными. Не существует простого способа определить, какого размера набора данных будет достаточно для полноценного обучения, и насколько мал должен быть обучающий набор, чтобы не вызвать лжевзаимосвязь. Однако после построения модели можно выполнить перекрестную проверку, чтобы оценить набор данных во взаимосвязи с данной моделью. Дополнительные сведения см. в разделе Перекрестная проверка (службы Analysis Services — интеллектуальный анализ данных).

  • В дополнение к свойствам, перечисленным в предыдущей таблице, в объектах AMO и языке XML DDL предусмотрено свойство HoldoutActualSize, доступное только для чтения. Однако, поскольку реальный размер секции невозможно определить точно до тех пор, пока не будет обработана структура, перед получением значения свойства HoldoutActualSize необходимо проверить, была ли обработана модель.