Aracılığıyla paylaş


PREDICT (Transact-SQL)

Şunlar için geçerlidir: SQL Server 2017 (14.x) ve sonraki sürümleri Azure SQL Yönetilen ÖrneğiAzure Synapse Analytics

Depolanan modele göre tahmin edilen bir değer veya puan oluşturur. Daha fazla bilgi için bkz. PREDICT T-SQL işlevini kullanarak yerel puanlama.

Ürün seçin

Aşağıdaki satırda, ilgilendiğiniz ürün adını seçin ve yalnızca bu ürünün bilgileri görüntülenir.

Uyarı

PREDICT Azure SQL Veritabanı'nda kullanılamaz.

Önemli

Söz PREDICT dizimi ürüne göre değişir. Platformunuzun doğru söz dizimini görüntülemek için ürün seçiciyi kullanın. Özellikle Azure Synapse Analytics, SQL Server veya Azure SQL Yönetilen Örneği'nde kullanılmayan bağımsız değişkeni gerektirir RUNTIME = ONNX .

* SQL Server *  

Azure Synapse'i
Analiz

* SQL Yönetilen Örneği *  

Azure Synapse'i
Analiz

* Azure Synapse
Analiz *
 

Sözdizimi

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 )
  }

Arguments

MODEL

MODEL Puanlama veya tahmin modelini belirtmek için parametresini kullanın. Modeli değişken, değişmez değer veya skaler ifade olarak belirtin.

PREDICT RevoScaleR ve revoscalepy paketleri kullanılarak eğitilen modelleri destekler.

MODEL Puanlama veya tahmin modelini belirtmek için parametresini kullanın. Modeli değişken, değişmez değer veya skaler ifade olarak belirtin.

Azure SQL Yönetilen Örneği'nde PREDICT ve revoscalepy paketleri kullanılarak eğitilen modelleri destekler.

MODEL Puanlama veya tahmin modelini belirtmek için parametresini kullanın. Modeli değişken, değişmez değer, skaler ifade veya skaler alt sorgu olarak belirtin.

Azure Synapse Analytics'te Açık PREDICTSinir Ağı Değişimi (ONNX) biçimindeki modelleri destekler. Daha fazla bilgi için bkz. ONNX.

VERİ

DATA parametresi, puanlama veya tahmin verilerini belirtir. Sorguda tablo kaynağı biçiminde veri belirtin. Tablo kaynağı bir tablo, tablo diğer adı, CTE diğer adı, görünüm veya tablo değerli işlev olabilir.

RUNTIME = ONNX

Model yürütme için kullanılan makine öğrenmesi altyapısını gösterir. Parametre RUNTIME değeri her zaman ONNXşeklindedir. RUNTIME Parametresi Azure Synapse Analytics için gereklidir. RUNTIME = ONNX Bağımsız değişken yalnızca Azure Synapse Analytics'te kullanılabilir.

WITH ( <result_set_definition> )

İşlev tarafından döndürülen çıkışın şemasını belirtmek için WITH yan tümcesini PREDICT kullanın.

İşlevin kendisi tarafından PREDICT döndürülen sütunlara ek olarak, veri girişinin parçası olan tüm sütunlar sorguda kullanılabilir.

Dönüş değerleri

Önceden tanımlanmış şema yok; modelin içeriği doğrulanmaz ve döndürülen sütun değerleri de doğrulanmaz.

  • İşlev, PREDICT giriş olarak sütunlardan geçer.
  • İşlev PREDICT ayrıca yeni sütunlar oluşturur, ancak sütun sayısı ve veri türleri tahmin için kullanılan modelin türüne bağlıdır.

Veri, model veya sütun biçimiyle ilgili tüm hata iletileri, modelle ilişkili temel tahmin işlevi tarafından döndürülür.

Açıklamalar

PREDICT İşlev, Windows ve Linux üzerinde SQL Server 2017 veya sonraki sürümlerin tüm sürümlerinde desteklenir. Machine Learning Services'in kullanılabilmesi PREDICTiçin etkinleştirilmesi gerekmez.

Desteklenen algoritmalar

Kullandığınız model , RevoScaleR veya revoscalepy paketlerinden desteklenen algoritmalardan biri kullanılarak oluşturulmuş olmalıdır. Şu anda desteklenen modellerin listesi için bkz. PREDICT T-SQL işlevini kullanarak yerel puanlama.

ONNX model biçimine dönüştürülebilen algoritmalar desteklenir.

OnNX model biçimine dönüştürülebilen algoritmalar ve RevoScaleR veya revoscalepy paketlerinden desteklenen algoritmalardan birini kullanarak oluşturduğunuz modeller desteklenir. RevoScaleR ve revoscalepy'de desteklenen algoritmaların listesi için bkz. PREDICT T-SQL işlevini kullanarak yerel puanlama.

Permissions

için PREDICTizin gerekmez; ancak kullanıcının veritabanında izin alması ve giriş olarak kullanılan verileri sorgulama iznine sahip olması gerekir EXECUTE . Model bir tabloda depolanmışsa, kullanıcının modeli bir tablodan da okuyabilmesi gerekir.

Örnekler

Aşağıdaki örneklerde çağrısı PREDICTiçin söz dizimi gösterilmektedir.

FROM yan tümcesinde PREDICT kullanma

Bu örnek, deyiminin PREDICTFROM yan tümcesindeki SELECT işleve başvurur:

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;

parametresinde DATA tablo kaynağı için belirtilen d diğer adı, öğesine ait sütunlara dbo.mytablebaşvurur. İşlev için PREDICT belirtilen diğer ad p işlevi tarafından döndürülen sütunlara başvururPREDICT.

  • Model, adlı tabloda Models sütunu olarak depolanır. ve gibi IDdescription ek bilgiler, modeli tanımlamak için tabloya kaydedilir.
  • parametresinde DATA tablo kaynağı için belirtilen d diğer adı, öğesine ait sütunlara dbo.mytablebaşvurur. Giriş verileri sütun adları, modelin giriş adıyla eşleşmelidir.
  • İşlev için PREDICT belirtilen diğer ad, işlev tarafından döndürülen tahmin edilen sütuna başvururPREDICT. Sütun adı, modelin çıktı adıyla aynı ada sahip olmalıdır.
  • Tüm giriş veri sütunları ve tahmin edilen sütunlar deyiminde SELECT görüntülenebilir.

Yukarıdaki örnek sorgu, skaler alt sorgu olarak belirtilerek MODEL bir görünüm oluşturmak için yeniden yazılabilir:

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 ile INSERT deyimini birleştirme

Tahmin için yaygın bir kullanım örneği, giriş verileri için bir puan oluşturmak ve ardından tahmin edilen değerleri bir tabloya eklemektir. Aşağıdaki örnekte, çağıran uygulamanın bir tabloya tahmin edilen değeri içeren bir satır eklemek için saklı yordam kullandığı varsayılır:

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;
  • sonuçları PREDICT adlı PredictionResultsbir tabloda depolanır.
  • Model, adlı tabloda Models sütunu olarak depolanır. Modeli tanımlamak için tabloya kimlik ve açıklama gibi ek bilgiler kaydedilebilir.
  • parametresinde DATA tablo kaynağı için belirtilen diğer add, içindeki sütunlara başvururdbo.mytable. Giriş verileri sütun adları, modelin giriş adıyla eşleşmelidir.
  • İşlev için PREDICT belirtilen diğer adp, işlev tarafından döndürülen tahmin edilen sütuna başvururPREDICT. Sütun adı, modelin çıktı adıyla aynı ada sahip olmalıdır.
  • Tüm giriş sütunları ve tahmin edilen sütun deyiminde SELECT görüntülenebilir.

aşağıdaki makalelerde ilgili kavramlar hakkında daha fazla bilgi edinin: