Обучающие и проверочные наборы данных

Применимо к: SQL Server 2019 и более ранних версий Analysis Services Azure Analysis Services Fabric/Power BI Premium

Важно!

Интеллектуальный анализ данных не рекомендуется использовать в службах SQL Server 2017 Analysis Services, а в SQL Server 2022 Analysis Services его поддержка прекращена. Документация не обновляется для устаревших и неподдерживаемых функций. Дополнительные сведения см. в статье об обратной совместимости служб Analysis Services.

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

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

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

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

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

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

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

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

Использование мастера интеллектуального анализа данных для разделения структуры анализа данных

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

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

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

Примечание

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

Изменение свойств структуры для создания набора проверочных данных

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

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

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

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

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

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

  • ASSL Вы можете создать новую структуру интеллектуального анализа данных или добавить проверочный набор данных в существующую структуру интеллектуального анализа данных с помощью SQL Server Analysis Services языка сценариев (ASSL).

  • AMO Вы также можете просматривать и изменять наборы данных с помощью объекта AMO.

Для просмотра сведений о контрольном наборе данных в существующей структуре интеллектуального анализа данных можно запросить набор строк схемы интеллектуального анализа данных. Для этого необходимо выполнить вызов DISCOVER ROWSET или DMX-запрос.

Получение сведений о контрольных данных

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

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

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

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

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

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

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

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

  • Можно случайно задать такой набор контрольных данных, что все данные будут использоваться для проверки, а данных для обучения не останется. Однако в этом случае SQL Server Analysis Services вызовет ошибку, чтобы можно было устранить проблему. SQL Server Analysis Services также выдает предупреждение при обработке структуры, если более 50 процентов данных было удержано для тестирования.

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

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

См. также:

Средства интеллектуального анализа данных
Основные понятия интеллектуального анализа данных
Решения для интеллектуального анализа данных
Тестирование и проверка (интеллектуальный анализ данных)