Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к: 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)