sp_rxPredict
Область применения: SQL Server 2016 (13.x) и более поздних версий — только Windows
Создает прогнозируемое значение для заданных входных данных, состоящих из модели машинного обучения, хранящейся в двоичном формате в базе данных SQL Server.
Предоставляет оценку моделей машинного обучения R и Python практически в реальном времени. sp_rxPredict
— это хранимая процедура, написанная на языке C++, и оптимизирована специально для операций оценки. sp_rxPredict
— это оболочка для:
Function | Обертка |
---|---|
rxPredict Функция R |
- RevoScaleR - MicrosoftML |
функция Python rx_predict | - revoscalepy - microsoftml |
Модель должна быть создана с помощью R или Python. Однако после сериализации и хранения в двоичном формате в целевом экземпляре ядра СУБД его можно использовать из этого экземпляра ядра СУБД, даже если интеграция R или Python не установлена. Дополнительные сведения см. в статье о оценке в режиме реального времени с помощью sp_rxPredict в SQL Server.
Синтаксис
sp_rxPredict ( @model , @input )
[ ; ]
Аргументы
@model
Предварительно обученная модель в поддерживаемом формате.
@input
Допустимый SQL-запрос.
Возвращаемые значения
Возвращается столбец оценки, а также все сквозные столбцы из входного источника данных.
Дополнительные столбцы оценки, такие как доверительный интервал, можно вернуть, если алгоритм поддерживает создание таких значений.
Замечания
Чтобы включить использование хранимой процедуры, SQLCLR необходимо включить в экземпляре.
Примечание.
Существуют последствия для обеспечения этого параметра. Используйте альтернативную реализацию, например функцию PREDICT (Transact-SQL), если SQLCLR не удается включить на сервере.
Пользователю требуется EXECUTE
разрешение на базу данных.
Поддерживаемые алгоритмы
Чтобы создать и обучить модель, используйте один из поддерживаемых алгоритмов R или Python, предоставляемых службами SQL Server Машинное обучение (R или Python),SQL Server 2016 R Services, SQL Server Машинное обучение Server (автономный) (R или Python) или SQL Server 2016 R Server (автономный)).
R: модели RevoScaleR
1 Модели также поддерживают собственную оценку с PREDICT
помощью функции.
R: модели MicrosoftML
- rxFastTrees: быстрое дерево
- rxFastForest: Быстрый лес
- rxLogisticRegression: логистическая регрессия
- rxOneClassSvm: OneClass SVM
- rxNeuralNet: нейронная сеть
- rxFastLinear: быстрая линейная модель
R: преобразования, предоставляемые MicrosoftML
- rxFastTrees: быстрое дерево
- concat: преобразование Машинное обучение Concat
- категориальный: преобразование категориальных данных Машинное обучение
- categoricalHash: преобразование категории HashData Машинное обучение
- selectFeatures: преобразование выбора компонентов Машинное обучение
Python: модели revoscalepy
1 Модели также поддерживают собственную оценку с PREDICT
помощью функции.
Python: модели microsoftml
- microsoftml.rx_fast_trees: бустинг деревьев
- microsoftml.rx_fast_forest: случайный лес
- microsoftml.rx_logistic_regression: логистическая регрессия
- microsoftml.rx_oneclass_svm: обнаружение аномалий
- microsoftml.rx_neural_network: нейронная сеть
- microsoftml.rx_fast_linear: линейная модель со стохастическим двухкоординатным подъемом
Python: преобразования, предоставляемые microsoftml
- microsoftml.rx_fast_trees: бустинг деревьев
- microsoftml.concat: сцепление нескольких столбцов в один вектор
- microsoftml.categorical: преобразование столбца текста в категории
- microsoftml.categorical_hash: хэширование и преобразование столбца текста в категории
Неподдерживаемые типы моделей
Следующие типы моделей не поддерживаются:
Модели с помощью
rxGlm
алгоритмовrxNaiveBayes
или алгоритмов в RevoScaleR.Модели PMML в R.
Модели, созданные с помощью других библиотек, отличных от Майкрософт.
Модели, использующие функцию преобразования или формулу, содержащую преобразование, например
A ~ log(B)
, не поддерживаются в оценке в режиме реального времени. Чтобы использовать модель этого типа, рекомендуется выполнить преобразование входных данных перед их передачей в систему оценки в реальном времени.
Оценка в режиме реального времени не использует интерпретатор, поэтому любые функции, которые могут требовать интерпретатора, не поддерживаются во время шага оценки.
Примеры
DECLARE @model =
SELECT @model
FROM model_table
WHERE model_name = 'rxLogit trained';
EXEC sp_rxPredict @model = @model,
@inputData = N'SELECT * FROM data';
Помимо допустимого SQL-запроса, входные данные в @inputData должны включать столбцы, совместимые со столбцами в хранимой модели.
sp_rxPredict
поддерживает только следующие типы столбцов .NET: double
, float
, short
, ushort
, long
, ulong
и string
. Возможно, потребуется отфильтровать неподдерживаемые типы в входных данных, прежде чем использовать его для оценки в режиме реального времени.
Сведения о соответствующих типах SQL см. в разделе "Сопоставление типов SQL-CLR" или "Сопоставление параметров CLR".