Поделиться через


Обучающий и тестирующий набор данных

Применимо к: 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 новая структура интеллектуального анализа данных будет иметь те же наборы данных для обучения и тестирования, так как процесс экспорта создает новый идентификатор, но использует то же имя. Однако если две структуры интеллектуального анализа данных используют один и тот же базовый источник данных, но имеют разные имена, наборы, созданные для каждой структуры интеллектуального анализа данных, будут отличаться.

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

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

Недвижимость Description
HoldoutMaxCases Указывает максимальное количество вариантов, включаемых в набор тестирования.
HoldoutMaxPercent Указывает количество вариантов, которые необходимо включить в набор тестирования в процентах от полного набора данных. Для отсутствия набора данных укажите значение 0.
HoldoutSeed Указывает целочисленное значение, используемое в качестве начального значения при случайном выборе данных для секций. Это значение не влияет на количество случаев в наборе обучения; вместо этого оно обеспечивает возможность повторения раздела.

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

Указание удержаний программным способом

Вы можете определить наборы данных тестирования и обучения в структуре майнинга данных с помощью инструкций 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.

Получение сведений о данных удержания

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

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

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 .

См. также

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