DMX. Параметры алгоритмов интеллектуального анализа данных. Алгоритм взаимосвязей, кластеризация последовательностей
Associationrules (алгоритмвзаимосвязей)
Рассмотрим код DMXсоздающий структуру интеллектуального анализа и модель, использующую алгоритм MicrosoftAssociationRules [1]. Обратите внимание, что здесь будут использованы вложенные таблицы, содержащие перечень товаров в заказе (как и в предыдущих примерах, речь идет о данных из базы AdventureWorksDW).
CREATEMININGSTRUCTURE SalesData ( [Order Number] TEXTKEY, Products TABLE ( Product TEXTKEY, Category TEXTDISCRETE ) ) GO ALTERMININGSTRUCTURE SalesData ADDMININGMODEL Recommendations ( [Order Number], Products PREDICT ( Product ) )USINGMicrosoft_Association_Rules(MINIMUM_SUPPORT=10, MINIMUM_PROBABILITY=0.4)
В данном случае необходимо обратить внимание на следующее. Вариант содержит только один ключевой столбец и один прогнозируемый столбец. Как правило, прогнозируется ключевой столбец вложенной таблицы, в нашем примере - перечень приобретенных продуктов. Эти значения должны быть дискретными или дискретизированными. Входные столбцы также должны быть дискретными или дискретизированными.
Параметры алгоритма Microsoft Association Rules следующие.
MAXIMUM_ITEMSET_COUNT | максимальное количество создаваемых наборов элементов.Значение по умолчанию равно 200000. |
MAXIMUM_ITEMSET_SIZE | максимальное количество элементов в наборе.Обработка модели прекращается, когда достигнуто предельное значение.0 указывает, что размер набора элементов не ограничен.Значение по умолчанию равно 3. |
MAXIMUM_SUPPORT | максимальное количество вариантов, в которых может поддерживаться набор элементов (формулу расчета поддержки для набора см. в "Использование инструментов "FillFromExample" и "Forecast"" ). Этот параметр используется для исключения элементов, которые появляются слишком часто и поэтому, скорее всего, не имеют значения.Если это значение меньше 1, то оно представляет процент от общего количества вариантов. Значения больше 1 представляют абсолютное количество вариантов, в которых может содержаться набор элементов. |
MINIMUM_IMPORTANCE | пороговое значение важности для правил взаимосвязей (формулу расчета значения важности см. в лекции 6). Правила, имеющие важность меньше этого значения, отфильтровываются. Доступно только в выпуске Enterprise. |
MINIMUM_ITEMSET_SIZE | минимальное количество элементов, допустимых в наборе. Это полезно, например, если нужно исключить одноэлементные наборы. Значение по умолчанию равно 1. |
MINIMUM_PROBABILITY | указывает минимальную вероятность того, что правило верно.Например, задание этого значения равным 0,5 указывает, что правила с вероятностью меньше 50% не формируются. Значение по умолчанию - 0,4. |
MINIMUM_SUPPORT | минимальная поддержка, которую набор должен иметь, чтобы классифицироваться как "частый" набор элементов.Значение меньше 1 указывает, что значение указано в процентах от общего количества вариантов. Значение по умолчанию равно 0,03, т.е. набор, встречающийся менее чем в 3% вариантов, не будет включен в модель. |
OPTIMIZED_PREDICTION_COUNT | число элементов, которые будут кэшироваться для оптимизации прогноза. Значение по умолчанию - 0. В этом случае алгоритм создает столько прогнозов, сколько требуется в запросе.
Например, если установлено значение 3, то алгоритм помещает в кэш только 3 элемента для прогноза. Дополнительные прогнозы, вероятность которых может быть такой же, что и у 3 возвращенных элементов, не будут отображаться. |
MicrosoftSequenceClustering
Рассмотри фрагмент кода на языке DMX, создающего модель интеллектуального анализа, основанную на алгоритме MicrosoftSequenceClustering [1]. В данном случае задача - анализ последовательностей перехода клиентов по разделам web-сайта. Вариант формируют идентификатор клиента (CustomerGuid), информация о его местоположении (GeoLocation) и вложенная таблица cидентификатором ссылки в последовательности клиента (SequenceID) и указанием категории ссылки (URLCategory).
CREATEMININGMODEL WebSequence ( CustomerGuid TEXTKEY, GeoLocation TEXTDISCRETE, ClickPath TABLEPREDICT ( SequenceID LONGKEYSEQUENCE, URLCategory TEXTDISCRETEPREDICT ) ) USINGMicrosoft_Sequence_Clustering
После того, как модель создана и обработана, она может использоваться для построения прогнозов. Например, может быть предложено наиболее вероятное продолжение последовательности, начало которой известно.
Для предсказания используется функция PredictSecuence(), формат которой предполагает использование разных комбинаций параметров. PredictSequence(<tablecolumnreference>):параметр в скобках - название вложенной таблицы, наиболее вероятная последовательность значений из которой предсказывается. PredictSequence(<tablecolumnreference>, n): предсказание n следующих значений из вложенной таблицы. PredictSequence(<tablecolumnreference>, n, m>): предсказание значений с n-го по m-ное.
Вернувшись к примеру с web-сайтом из [1]можно использовать следующий запрос для того, чтобы узнать два следующих наиболее вероятных перехода клиента, который смотрел страницы по темам страхование (англ. insurance), кредиты (англ. loan),
SELECTPredictSequence(ClickPath, 2) AS Sequences FROM WebSequence NATURALPREDICTIONJOIN (SELECT (SELECT 1 AS SequenceID, 'Insurance' AS URLCategory UNION SELECT 2 AS SequenceID, 'Loan' AS URLCategory) ASClickPath) AST
Теперь рассмотрим параметры алгоритма, которые можно указать при создании модели.
CLUSTER_COUNT | примерное количество кластеров, создаваемых алгоритмом. Если это число кластеров не может быть построено из имеющихся данных, то алгоритм строит столько кластеров, сколько возможно. Значение 0 приводит к тому, что алгоритм начинает использовать эвристический подход для определения оптимального числа строящихся кластеров. Значение по умолчанию равно 10. |
MINIMUM_SUPPORT | минимальное число вариантов, необходимых для построения кластера. Значение по умолчанию равно 10. |
MAXIMUM_SEQUENCE_STATES | максимальное количество состояний, которые может иметь последовательность. Значение по умолчанию равно 64. |
MAXIMUM_STATES | максимальное количество состояний для атрибута не из последовательности, поддерживаемого алгоритмом. Если количество состояний атрибута не из последовательности превышает максимально возможное количество состояний, то алгоритм использует наиболее популярные состояния атрибута и рассматривает остальные состояния как Missing. Значение по умолчанию равно 100. |