Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Применимо к: SQL Server 2017 (14.x) и более поздних версий Управляемого экземпляра
SQLAzure Synapse Analytics
Создает предсказанное значение или оценки на основе хранимой модели. Дополнительные сведения см.в разделе Native scoring using the PREDICT T-SQL function (Собственная оценка с использованием функции PREDICT T-SQL).
Выбор продукта
В следующей строке выберите название нужного продукта, и отобразится информация только об этом продукте.
Замечание
PREDICT недоступно в Базе данных SQL Azure.
* SQL Server *
* Управляемый экземпляр SQL *
* Azure Synapse
Аналитика*
Синтаксис
PREDICT
(
MODEL = @model | model_literal,
DATA = object AS <table_alias>
)
WITH ( <result_set_definition> )
<result_set_definition> ::=
{
{ column_name
data_type
[ COLLATE collation_name ]
[ NULL | NOT NULL ]
}
[,...n ]
}
MODEL = @model | model_literal
PREDICT
(
MODEL = <model_object>,
DATA = object AS <table_alias>
[, RUNTIME = ONNX ]
)
WITH ( <result_set_definition> )
<result_set_definition> ::=
{
{ column_name
data_type
[ COLLATE collation_name ]
[ NULL | NOT NULL ]
}
[,...n ]
}
<model_object> ::=
{
model_literal
| model_variable
| ( scalar_subquery )
}
Аргументы
MODEL
Параметр MODEL используется для указания модели, используемой для оценки и прогнозирования. Модель указывается как переменная или литерал или скалярное выражение.
Функция PREDICT поддерживает модели, обученные с помощью пакетов RevoScaleR и revoscalepy.
Параметр MODEL используется для указания модели, используемой для оценки и прогнозирования. Модель указывается как переменная или литерал или скалярное выражение.
В Управляемом экземпляре SQL Azure поддерживает модели, PREDICT обученные с помощью пакетов RevoScaleR и revoscalepy .
Параметр MODEL используется для указания модели, используемой для оценки и прогнозирования. Модель указывается как переменная, литерал, скалярное выражение или скалярный вложенный запрос.
В Azure Synapse Analytics PREDICT поддерживает модели в формате Open Neural Network Exchange (ONNX). Дополнительные сведения см. в статье ONNX.
Данные
Параметр DATA используется для указания данных, используемых для оценки и прогнозирования. Данные указываются в виде источника таблицы в запросе. Источник таблицы может быть таблицей, псевдонимом таблицы, псевдонимом обобщенного табличного выражения, представлением или функцией с табличным значением.
RUNTIME = ONNX
Указывает подсистему машинного обучения, используемую для выполнения модели. Параметр RUNTIME всегда имеет значение ONNX. Параметр RUNTIME необходим для Azure Synapse Analytics. Аргумент RUNTIME = ONNX доступен только в Azure Synapse Analytics.
WITH ( <result_set_definition> )
Предложение WITH используется для указания схемы выходных данных, возвращаемых функцией PREDICT.
Помимо столбцов, возвращаемых самой функцией PREDICT, в запросе можно использовать все столбцы, которые являются частью входных данных.
Возвращаемые значения
Предопределенные схемы недоступны. Содержимое модели не проверяется, возвращаемые значения столбцов тоже не проверяются.
- Функция
PREDICTпроходит через столбцы в качестве входных данных. - Функция
PREDICTтакже создает новые столбцы, но число столбцов и типы данных зависят от типа модели, использованной для прогнозирования.
Сообщения об ошибках, связанные с данными, моделью или форматом столбца, выводятся функцией прогнозирования, связанной с моделью.
Замечания
Функция PREDICT поддерживается во всех выпусках SQL Server 2017 и более поздних версий на Windows и Linux. Для использования функции не требуется включать PREDICT.
Поддерживаемые алгоритмы
Используемая модель должна быть создана с помощью одного из поддерживаемых алгоритмов из пакета RevoScaleR или revoscalepy. Список поддерживаемых в настоящее время моделей см. в разделе Собственная оценка с помощью функции T-SQL PREDICT.
Поддерживаются алгоритмы, которые можно преобразовать в формат модели ONNX.
Поддерживаются алгоритмы, которые можно преобразовать в формат модели ONNX, а также модели, созданные с использованием одного из поддерживаемых алгоритмов из пакетов RevoScaleR или revoscalepy. Список поддерживаемых в настоящее время алгоритмов в пакетах RevoScaleR и revoscalepy см. в разделе Собственная оценка с помощью функции T-SQL PREDICT.
Разрешения
Для PREDICT разрешения не требуются, но пользователю нужно разрешение EXECUTE на базу данных и разрешение на запрос любых данных, используемых в качестве входных. У пользователя должна быть возможность чтения модели из таблицы, если модель хранится в таблице.
Примеры
В следующих примерах демонстрируется синтаксис вызова PREDICT.
Использование PREDICT в предложении FROM
Этот пример ссылается на функцию PREDICT в предложении FROM инструкции SELECT:
SELECT d.*, p.Score
FROM PREDICT(MODEL = @model,
DATA = dbo.mytable AS d) WITH (Score FLOAT) AS p;
DECLARE @model VARBINARY(max) = (SELECT test_model FROM scoring_model WHERE model_id = 1);
SELECT d.*, p.Score
FROM PREDICT(MODEL = @model,
DATA = dbo.mytable AS d, RUNTIME = ONNX) WITH (Score FLOAT) AS p;
Псевдоним d, указанный для табличного источника в параметре DATA, используется для ссылки на столбцы, принадлежащие таблице dbo.mytable. Псевдоним p, указанный для функции PREDICT, используется для ссылки на столбцы, возвращаемые функцией PREDICT.
- Модель хранится в виде столбца varbinary(max) в таблице
Models. Дополнительные сведения, такие какIDиdescriptionсохраненные в таблице для идентификации модели. - Псевдоним d, указанный для табличного источника в параметре
DATA, используется для ссылки на столбцы, принадлежащие таблицеdbo.mytable. Имена столбцов входных данных должны соответствовать именам входных данных для модели. - Псевдоним p, указанный для функции
PREDICT, используется для ссылки на прогнозируемый столбец, возвращаемый функциейPREDICT. Имя столбца должно совпадать с именем выходных данных для модели. - Все входные столбцы данных и прогнозируемые столбцы доступны для отображения в инструкции
SELECT.
Предыдущий пример запроса можно переписать для создания представления, указав MODEL в качестве скалярного вложенного запроса:
CREATE VIEW predictions
AS
SELECT d.*, p.Score
FROM PREDICT(MODEL = (SELECT test_model FROM scoring_model WHERE model_id = 1),
DATA = dbo.mytable AS d, RUNTIME = ONNX) WITH (Score FLOAT) AS p;
Использование предложения PREDICT с инструкцией INSERT
Прогнозирование часто используется для формирования оценки входных данных и последующей вставки прогнозируемых значений в таблицу. В следующем примере предполагается, что вызывающее приложение использует хранимую процедуру, чтобы вставить в таблицу строку, содержащую прогнозируемое значение:
DECLARE @model VARBINARY(max) = (SELECT model FROM scoring_model WHERE model_name = 'ScoringModelV1');
INSERT INTO loan_applications (c1, c2, c3, c4, score)
SELECT d.c1, d.c2, d.c3, d.c4, p.score
FROM PREDICT(MODEL = @model, DATA = dbo.mytable AS d) WITH(score FLOAT) AS p;
DECLARE @model VARBINARY(max) = (SELECT model FROM scoring_model WHERE model_name = 'ScoringModelV1');
INSERT INTO loan_applications (c1, c2, c3, c4, score)
SELECT d.c1, d.c2, d.c3, d.c4, p.score
FROM PREDICT(MODEL = @model, DATA = dbo.mytable AS d, RUNTIME = ONNX) WITH(score FLOAT) AS p;
- Результаты
PREDICTхранятся в таблице с именемPredictionResults. - Модель хранится в виде столбца varbinary(max) в таблице
Models. Дополнительные сведения, такие как идентификатор и описание, сохраняются в этой таблице для идентификации модели. - Псевдоним,
dуказанный для источника таблицы в параметреDATA, используется для ссылки на столбцы вdbo.mytable. Имена столбцов входных данных должны соответствовать именам входных данных для модели. - Псевдоним
p, указанный для функции, используется дляPREDICTссылки на прогнозируемый столбец, возвращаемыйPREDICTфункцией. Имя столбца должно совпадать с именем выходных данных для модели. - Все входные столбцы и прогнозируемый столбец доступны для отображения в инструкции
SELECT.
Связанный контент
Дополнительные сведения о связанных понятиях см. в следующих статьях:
- Native scoring using the PREDICT T-SQL function (Собственная оценка с использованием функции PREDICT T-SQL)
- RevoScaleR (пакет R в службах SQL Server Машинное обучение)
- Revoscalepy (пакет Python в Службах машинного обучения SQL Server)
- OPENXML (Transact-SQL)
- STRING_SPLIT (Transact-SQL)