Фильтры для моделей добычи данных (службы Analysis Services — анализ данных)

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

Это важно

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

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

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

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

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

  • Экспериментирование с моделями путем создания и тестирования нескольких групп одних и тех же данных, таких как возраст 20-30 лет, возраст 20-40 лет и возраст 20-25 лет.

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

В этом разделе объясняется, как создавать, управлять и использовать фильтры в моделях майнинга данных.

Создание фильтров моделей

Вы можете создавать и применять фильтры следующими способами:

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

  • Ввод выражения фильтра непосредственно в свойство Filter модели анализа данных.

  • Установка условий фильтра для модели программным способом с помощью AMO.

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

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

Существует два диалоговых окна фильтра. Первое позволяет создавать условия, применяемые к таблице вариантов. Если источник данных содержит несколько таблиц, сначала выберите таблицу, а затем выберите столбец и укажите операторы и условия, которые применяются к нему. Можно связать несколько условий с помощью операторов AND/OR . Операторы, доступные для определения значений, зависят от того, содержит ли столбец дискретные или непрерывные значения. Например, с непрерывными значениями можно использовать больше и меньше операторов. Однако для дискретных значений можно использовать только операторы =(равно), != (не равно) и является null.

Замечание

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

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

Создание фильтров в вложенных таблицах

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

Например, если таблица вариантов связана с клиентами, а вложенная таблица показывает продукты, приобретенные клиентом, можно создать фильтр для клиентов, которые приобрели определенные элементы, используя следующий синтаксис в вложенном фильтре таблиц. [ProductName]='Water Bottle' OR ProductName='Water Bottle Cage'

Можно также отфильтровать наличие определенного значения в вложенной таблице с помощью ключевых слов EXISTS или NOT EXISTS и вложенных запросов. Это позволяет создавать такие условия, как EXISTS (SELECT * FROM Products WHERE ProductName='Water Bottle'). Функция возвращает true, если вложенная таблица содержит по крайней мере одну строку, которая включает значение .

Вы можете объединить условия в таблице вариантов с условиями в вложенной таблице. Например, следующий синтаксис включает условие на таблице условий (Age > 30 ), подзапрос на вложенной таблице (EXISTS (SELECT * FROM Products)) и несколько условий в этой таблице (WHERE ProductName='Milk' AND Quantity>2).

(Age > 30 AND EXISTS (SELECT * FROM Products WHERE ProductName='Milk'  AND Quantity>2) )  

После завершения сборки фильтра текст фильтра вычисляется службами SQL Server Analysis Services, преобразуется в выражение DMX, а затем сохраняется с помощью модели.

Инструкции по использованию диалоговых окон настройки фильтров в SQL Server Data Tools см. в разделе "Применить фильтр к модели анализа данных".

Управление фильтрами моделей анализа данных

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

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

Как определить, используется ли фильтр?

Существует несколько способов определить, применяется ли фильтр к модели:

  • В конструкторе щелкните на вкладке "Модели данных", откройте "Свойства", и просмотрите свойство Фильтр модели данных.

  • DmV, DMSCHEMA_MINING_MODELS, выводит столбец, содержащий текст фильтра. Для возврата имен моделей и их фильтров можно использовать следующий запрос в DMV:

    SELECT MODEL_NAME, [FILTER]   
    FROM $SYSTEM.DMSCHEMA_MINING_MODELS  
    
    
  • Можно получить значение свойства Filter объекта MiningModel в AMO или проверить элемент Filter в XMLA.

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

Как сохранить фильтр?

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

Почему не удается увидеть какие-либо эффекты из фильтра?

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

Почему в результатах прогноза отображаются отфильтрованные атрибуты?

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

Например, предположим, что вы обучаете модель [Bike Buyer], используя данные только о женщинах в возрасте от 20 до 30 лет. Вы по-прежнему можете выполнить прогнозный запрос, который предсказывает вероятность покупки велосипеда мужчины или предсказать результат для женщины в возрасте от 30 до 40 лет. Это связано с тем, что атрибуты и значения, присутствующие в источнике данных, определяют, что теоретически возможно, а случаи определяют встречи, используемые в процессе обучения. Однако эти запросы возвращают очень небольшие вероятности, так как данные обучения не содержат никаких случаев с целевыми значениями.

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

  • Отфильтруйте входящие данные в рамках определения представления источника данных или в реляционном источнике данных.

  • Маскируйте или кодируйте значение атрибута.

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

Дополнительные сведения о синтаксисе фильтров и примерах выражений фильтров см. в разделе Синтаксис и примеры фильтров модели (Analysis Services - Data Mining).

Сведения об использовании фильтров моделей при тестировании модели интеллектуального анализа данных см. в разделе «Выбор типа диаграммы точности и настройка параметров диаграммы».

См. также

Синтаксис фильтра моделей и примеры (Analysis Services – анализ данных)
Тестирование и проверка (интеллектуальный анализ данных)