Фильтры для моделей интеллектуального анализа данных (службы 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примечание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Динамическое административное представление DMSCHEMA_MINING_MODELS выдает столбец с текстом фильтра. С помощью следующего запроса к динамическому административному представлению можно возвратить имена моделей и примененные к ним фильтры:

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

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

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

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

Почему я не вижу никаких эффектов от фильтра?

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

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

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

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

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

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

  • Экранирование или кодировка значения атрибута.

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

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

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

См. также:

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