Примеры запросов модели логистической регрессии

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

Важно!

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

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

В этом разделе описывается процесс создания запросов к моделям, основанным на алгоритме логистической регрессии (Майкрософт).

Запросы содержимого

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

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

Прогнозирующие запросы

Прогнозы для непрерывной величины

Прогнозы для дискретной величины

Получение сведений о модели логистической регрессии

Модели логистической регрессии создаются с использованием алгоритма нейронной сети (Майкрософт) с особым набором параметров; поэтому модель логистической регрессии частично содержит ту же информацию, что и модель нейронных сетей, но менее сложна. Чтобы понять структуру содержимого модели и какие типы узлов хранят сведения, см. статью Содержимое модели интеллектуального анализа данных для моделей логистической регрессии (службы Analysis Services — интеллектуальный анализ данных).

Для выполнения сценариев запросов можно создать модель логистической регрессии, как описано в следующем разделе учебника по интеллектуальному анализу промежуточных данных: урок 5. Создание моделей нейронной сети и логистической регрессии (учебник по интеллектуальному анализу данных).

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

ALTER MINING STRUCTURE [Targeted Mailing]  
ADD MINING MODEL [TM_Logistic Regression]  
([Customer Key],  
[Age],  
[Bike Buyer] PREDICT,  
[Yearly Income] PREDICT,  
[Commute Distance],  
[English Education],  
Gender,  
[House Owner Flag],  
[Marital Status],  
[Number Cars Owned],  
[Number Children At Home],  
[Region],  
[Total Children]  
)  
USING Microsoft_Logistic_Regression  

Образец запроса 1. Получение параметров модели с помощью набора строк схемы интеллектуального анализа данных

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

SELECT MODEL_NAME, SERVICE_NAME, DATE_CREATED, MINING_PARAMETERS   
FROM $system.DMSCHEMA_MINING_MODELS  
WHERE MODEL_NAME = 'Call Center_LR'  

Образец результатов.

MODEL_NAME SERVICE_NAME DATE_CREATED MINING_PARAMETERS
Call Center_LR Microsoft_Logistic_Regression 04/07/2009 20:38:33 HOLDOUT_PERCENTAGE=30, HOLDOUT_SEED=1, MAXIMUM_INPUT_ATTRIBUTES=255, MAXIMUM_OUTPUT_ATTRIBUTES=255, MAXIMUM_STATES=100, SAMPLE_SIZE=10000

Образец запроса 2. Поиск дополнительной информации о модели с помощью расширений интеллектуального анализа данных

Следующий запрос возвращает основные сведения о модели логистической регрессии. Модель логистической регрессии во многом подобна модели нейронной сети, в том числе наличием граничного статистического узла (NODE_TYPE = 24), описывающего значения входных данных. В следующем примере запроса используется модель целевой рассылки и возвращаются все входные значения, извлекаемые из вложенной таблицы NODE_DISTRIBUTION.

SELECT FLATTENED NODE_DISTRIBUTION AS t  
FROM [TM_Logistic Regression].CONTENT   

Частичные результаты:

T.ATTRIBUTE_NAME t.ATTRIBUTE_VALUE t.SUPPORT t.PROBABILITY t.VARIANCE t.VALUETYPE
возраст; Missing 0 0 0 1
возраст; 45,43491192 17484 1 126,9544114 3
Покупатель велосипеда Missing 0 0 0 1
Покупатель велосипеда 0 8869 0.507263784 0 4
Покупатель велосипеда 1 8615 0.492736216 0 4
Расстояние до работы Missing 0 0 0 1
Расстояние до работы 5–10 км 3033 0,173472889 0 4

Настоящий запрос вернет гораздо больше строк; однако этот образец показывает, какого типа информацию о входных значениях можно получить. Для дискретных входных данных в таблице перечислены все возможные значения. Для непрерывных входных данных, таких как Age, вывод полного списка невозможен, поэтому вывод дискретизируется с усреднением. Дополнительные сведения об использовании сведений в узле граничной статистики см. в разделе Содержимое модели интеллектуального анализа данных для моделей логистической регрессии (службы Analysis Services — интеллектуальный анализ данных).

Примечание

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

Прогнозирующие запросы к модели логистической регрессии

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

Образец запроса 3. Прогнозы для непрерывной величины

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

Следующий образец запроса основан на модели центра обработки вызовов из учебника для среднего уровня и создает одноэлементный запрос, предсказывающий уровень обслуживания для утренней пятничной смены. Функция PredictHistogram (DMX) возвращает вложенную таблицу, содержащую статистику, которая позволяет понять, насколько достоверно спрогнозированное значение.

SELECT  
  Predict([Call Center_LR].[Service Grade]) as Predicted ServiceGrade,  
  PredictHistogram([Call Center_LR].[Service Grade]) as [Results],  
FROM  
  [Call Center_LR]  
NATURAL PREDICTION JOIN  
(SELECT 'Friday' AS [Day Of Week],  
  'AM' AS [Shift]) AS t  

Образец результатов.

Прогнозируемый уровень обслуживания Service Grade $SUPPORT $PROBABILITY $ADJUSTEDPROBABILITY $VARIANCE $STDEV
0.102601830123659 0.102601830123659 83.0232558139535 0.988372093023256 0 0.00120552660600087 0.034720694203902
0.976744186046512 0.0116279069767442 0.0116279069767442 0 0

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

Образец запроса 4. Прогнозы для дискретной величины

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

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

Следующая процедура описывает порядок группирования значений Service Grade в данных центра обработки вызовов.

Создание дискретизированной версии структуры и моделей интеллектуального анализа данных центра обработки вызовов
  1. В SQL Server Data Tools в Обозреватель решений разверните узел Структуры интеллектуального анализа данных.

  2. Щелкните Call Center.dmm правой кнопкой мыши и выберите команду Копировать.

  3. Щелкните правой кнопкой мыши узел Структуры интеллектуального анализа данных и выберите команду Вставить. Добавляется новая структура интеллектуального анализа данных с именем Call Center 1.

  4. Щелкните правой кнопкой мыши эту новую структуру интеллектуального анализа данных и выберите команду Переименовать. Введите новое имя, Call Center Discretized.

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

  6. На вкладке Структура интеллектуального анализа данных щелкните правой кнопкой мыши столбец Service Grade и выберите пункт Свойства.

  7. Измените значение свойства Content с Непрерывное на Дискретизированное. Измените значение свойства DiscretizationMethod на Кластеры. Для свойства Discretization BucketCount введите значение 3.

    Примечание

    Эти параметры служат лишь для иллюстрации процесса, они не гарантируют получения верной модели.

  8. В меню Модель интеллектуального анализа данных выберите команду Обработать структуру интеллектуального анализа данных и все модели.

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

SELECT  
  (PredictHistogram([Call Center_LR 1].[Service Grade])) as [Predictions]  
FROM  
  [Call Center_LR 1]  
NATURAL PREDICTION JOIN  
(SELECT 'Saturday' AS [Day Of Week]) AS t    

Ожидаемый результат:

Предсказания:

Service Grade $SUPPORT $PROBABILITY $ADJUSTEDPROBABILITY $VARIANCE $STDEV
0.10872718383125 35.7246504770641 0.425293458060287 0.0170168360030293 0 0
0.05855769230625 31.7098880800703 0.377498667619885 0.020882020060454 0 0
0.170169491525 15.6109159883202 0.185844237956192 0.0661386571386049 0 0
0.954545454545455 0.0113636363636364 0.0113636363636364 0 0

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

Список прогнозирующих функций

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

прогнозирующую функцию Использование
IsDescendant (расширения интеллектуального анализа данных) Определяет, является ли узел дочерним для другого узла модели.
PredictAdjustedProbability (расширения интеллектуального анализа данных) Возвращает настроенную вероятность указанного состояния.
PredictHistogram (расширения интеллектуального анализа данных) Возвращает прогнозируемое значение или набор значений для указанного столбца.
PredictProbability (расширения интеллектуального анализа данных) Возвращает вероятность для указанного состояния.
PredictStdev (расширения интеллектуального анализа данных) Возвращает стандартное отклонение для прогнозируемого значения.
PredictSupport (расширения интеллектуального анализа данных) Возвращает опорное значение для указанного состояния.
PredictVariance (расширения интеллектуального анализа данных) Возвращает дисперсию указанного столбца.

Список функций, общих для всех алгоритмов Майкрософт, см. в разделе Общие функции прогнозирования (DMX). Синтаксис конкретных функций см. в справочнике по функциям расширений интеллектуального анализа данных.

Примечание

Для моделей нейронной сети и логистической регрессии функция PredictSupport (DMX) возвращает одно значение, представляющее размер обучающего набора для всей модели.

См. также:

Запросы интеллектуального анализа данных
Алгоритм логистической регрессии (Майкрософт)
техническом справочнике по алгоритму логистической регрессии (Майкрософт)
Содержимое моделей интеллектуального анализа данных для моделей логистической регрессии (службы Analysis Services — интеллектуальный анализ данных)
Урок 5. Создание моделей нейронной сети и логистической регрессии (учебник по интеллектуальному анализу промежуточных данных)