Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к: SQL Server 2017 (14.x) и более поздних версий
Управляемого экземпляра
SQLAzure Synapse Analytics
Создает предсказанное значение или оценки на основе хранимой модели. Дополнительные сведения см.в разделе Native scoring using the PREDICT T-SQL function (Собственная оценка с использованием функции PREDICT T-SQL).
Выбор продукта
В следующей строке выберите название нужного продукта, и отобразится информация только об этом продукте.
Замечание
PREDICT недоступно в Базе данных SQL Azure.
Это важно
Синтаксис PREDICT зависит от продукта. Используйте селектор продукта для просмотра правильного синтаксиса для платформы. В частности, Azure Synapse Analytics требует RUNTIME = ONNX аргумента, который не используется в SQL Server или Управляемом экземпляре 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 задает данные для оценки или прогнозирования. Укажите данные в виде источника таблицы в запросе. Источник таблицы может быть таблицей, псевдонимом таблицы, псевдонимом CTE, представлением или табличным значением.
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)