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


TopCount (расширения интеллектуального анализа данных)

Возвращает заданное в инструкции количество верхних строк в порядке убывания их ранга как указано в выражении.

Синтаксис

TopCount(<table expression>, <rank expression>, <count>)

Область применения

Выражение, возвращающее таблицу (например, <table column reference>), или функция, возвращающая таблицу.

Тип возвращаемых данных

<table expression>

Замечания

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

Функция TopCount первоначально предназначалась для проведения ассоциативных прогнозов. Как правило, она возвращает те же результаты, что и инструкция с предложениями SELECT TOP и ORDER BY. Повысить производительность ассоциативного прогнозирования можно при использовании функции Predict (DMX), которая поддерживает задание количества возвращаемых прогнозов.

Однако при этом может возникнуть необходимость использования TopCount. Например, расширения интеллектуального анализа данных не поддерживают квалификатор TOP в инструкции вложенного запроса. Функция PredictHistogram (расширения интеллектуального анализа данных) также не поддерживает добавление квалификатора TOP.

Примеры

Следующие примеры являются прогнозирующими запросами к модели взаимосвязей, построенной с помощью учебника Учебник по основам интеллектуального анализа данных. Запросы возвращают одинаковые результаты, но в первом примере используется TopCount, а во втором – функция Predict.

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

SELECT Predict ([Association].[v Assoc Seq Line Items], INCLUDE_STATISTICS, 10)
FROM 
     [Association]
NATURAL PREDICTION JOIN
SELECT (SELECT 'Women''s Mountain Shorts' as [Model]) AS [v Assoc Seq Line Items]) AS t
ПримечаниеПримечание

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

Примеры результатов:

Модель

$SUPPORT

$PROBABILITY

$ADJUSTEDPROBABILITY

Sport-100

4334

0.291283016

0.252695851

Фляга для воды

2866

0.192620472

0.175205052

Ремонтный комплект

2113

0.142012232

0.132389356

Камера шины для велосипеда Mountain

1992

0.133879965

0.125304948

Mountain-200

1755

0.117951475

0.111260823

Камера шины для шоссейного велосипеда

1588

0.106727603

0.101229538

Велосипедная шапочка

1473

0.098998589

0.094256014

Набор крыльев для велосипеда Mountain

1415

0.095100477

0.090718432

Держатель фляги для велосипеда Mountain

1367

0.091874454

0.087780332

Держатель фляги для шоссейного велосипеда

1195

0.080314537

0.077173962

Функция TopCount принимает результаты этого запроса и возвращает указанное количество строк с наименьшими значениями.

SELECT 
TopCount
    (
    Predict ([Association].[v Assoc Seq Line Items],INCLUDE_STATISTICS,10),
    $SUPPORT,
    3)
FROM 
     [Association]
NATURAL PREDICTION JOIN
(SELECT (SELECT 'Women''s Mountain Shorts' as [Model]) AS [v Assoc Seq Line Items]) AS t

Первый аргумент функции TopCount — это имя столбца таблицы. В этом примере для возврата вложенной таблицы нужно вызвать функцию Predict и использовать аргумент INCLUDE_STATISTICS.

Второй аргумент функции TopCount — это столбец вложенной таблицы, используемый для упорядочения результатов. В этом примере параметр INCLUDE_STATISTICS возвращает столбцы $SUPPORT, $PROBABILTY и $ADJUSTED PROBABILITY. В данном примере используется столбец $SUPPORT для ранжирования результатов.

Третий аргумент функции TopCount – это целочисленное значение, указывающее количество возвращаемых строк. Чтобы получить три верхних продукта, упорядоченных по столбцу $SUPPORT, введите 3.

Примеры результатов:

Модель

$SUPPORT

$PROBABILITY

$ADJUSTEDPROBABILITY

Sport-100

4334

0.29…

0.25…

Фляга для воды

2866

0.19…

0.17…

Ремонтный комплект

2113

0.14…

0.13…

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

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

SELECT Predict ([Association].[v Assoc Seq Line Items], INCLUDE_STATISTICS, 3, $SUPPORT)

Результаты содержат первые 3 прогноза, отсортированные по значению поддержки. Можно заменить $SUPPORT на $PROBABILITY или $ADJUSTED_PROBABILITY, чтобы получить прогнозы, ранжированные по вероятности или скорректированной вероятности. Дополнительные сведения см. в разделе Predict (DMX).

См. также

Справочник

Функции (расширения интеллектуального анализа данных)

Общие функции прогнозирования (расширения интеллектуального анализа данных)

BottomCount (расширения интеллектуального анализа данных)

TopPercent (расширения интеллектуального анализа данных)

TopSum (расширения интеллектуального анализа данных)