Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümleri
Azure SQL Yönetilen Örnek
Bu hızlı başlangıçta, T kullanarak tahmine dayalı bir model oluşturacak ve eğiteceksiniz. Modeli SQL Server örneğinizdeki bir tabloya kaydedecek ve ardından MODELI kullanarak SQL Server Machine Learning Services veya Büyük Veri Kümeleri'ni kullanarak yeni verilerden değer tahmininde bulunacaksınız.
Bu hızlı başlangıçta, T kullanarak tahmine dayalı bir model oluşturacak ve eğiteceksiniz. Modeli SQL Server örneğinizdeki bir tabloya kaydedecek ve ardından SQL Server Machine Learning Services kullanarak yeni verilerden değerleri tahmin etmek için modeli kullanacaksınız.
Bu hızlı başlangıçta, T kullanarak tahmine dayalı bir model oluşturacak ve eğiteceksiniz. Modeli SQL Server örneğinizdeki bir tabloya kaydedecek ve ardından SQL Server R Services kullanarak yeni verilerden değerleri tahmin etmek için modeli kullanacaksınız.
Bu hızlı başlangıçta, T kullanarak tahmine dayalı bir model oluşturacak ve eğiteceksiniz. Modeli SQL Server örneğinizdeki bir tabloya kaydedecek ve ardından Azure SQL Yönetilen Örneği Machine Learning Services kullanarak yeni verilerden değerleri tahmin etmek için modeli kullanacaksınız.
SQL'de çalışan iki saklı yordam oluşturup yürüteceksiniz. İlki R ile birlikte gelen mtcars veri kümesini kullanır ve bir aracın manuel şanzımanla donatılmış olma olasılığını tahmin eden basit bir genelleştirilmiş doğrusal model (GLM) oluşturur. İkinci yordam puanlamadır; ilk yordamda oluşturulan modeli çağırarak yeni verilere dayalı bir tahmin kümesi oluşturur. R kodunu bir SQL saklı yordamına yerleştirerek, işlemler SQL'de yer alır, yeniden kullanılabilir ve diğer saklı yordamlar ve istemci uygulamaları tarafından çağrılabilir.
Tavsiye
Doğrusal modeller konusunda bilgi tazelemeye ihtiyacınız varsa, rxLinMod kullanarak modelleme işlemini açıklayan bu öğreticiyi inceleyin: Doğrusal Modelleri Uygulama
Bu hızlı başlangıcı tamamlayarak şunları öğreneceksiniz:
- R kodunu saklı yordama ekleme
- Saklı prosedür üzerindeki girdiler aracılığıyla kodunuza veri aktarma yöntemleri.
- Saklı yordamlar modelleri kullanıma hazır hale getirmek için nasıl kullanılır?
Önkoşullar
Bu hızlı başlangıcı çalıştırmak için aşağıdaki önkoşullara ihtiyacınız vardır.
- SQL Server Machine Learning Services. Machine Learning Services'ı yüklemek için Windows yükleme kılavuzuna veya Linux yükleme kılavuzuna bakın. Sql Server Büyük Veri Kümelerinde Machine Learning Services'i de etkinleştirebilirsiniz.
- SQL Server Machine Learning Services. Machine Learning Hizmetleri'ni yüklemek için Windows yükleme kılavuzuna bakın.
- SQL Server 2016 R Services. R Services'ı yüklemek için Windows yükleme kılavuzuna bakın.
- Azure SQL Yönetilen Örneği Makine Öğrenimi Hizmetleri. Bilgi için bkz. Azure SQL Yönetilen Örnek Makine Öğrenimi Hizmetleri'ne genel bakış.
- R betikleri içeren SQL sorgularını çalıştırmaya yönelik bir araç. Bu hızlı başlangıçta Azure Data Studio kullanılır.
Modeli oluşturma
Modeli oluşturmak için eğitim için kaynak veriler oluşturacak, modeli oluşturacak ve verileri kullanarak eğitecek, ardından modeli yeni verilerle tahmin oluşturmak için kullanılabilecek bir veritabanında depolayacaksınız.
Kaynak verileri oluşturma
Azure Data Studio'yu açın, örneğinize bağlanın ve yeni bir sorgu penceresi açın.
Eğitim verilerini kaydetmek için bir tablo oluşturun.
CREATE TABLE dbo.MTCars( mpg decimal(10, 1) NOT NULL, cyl int NOT NULL, disp decimal(10, 1) NOT NULL, hp int NOT NULL, drat decimal(10, 2) NOT NULL, wt decimal(10, 3) NOT NULL, qsec decimal(10, 2) NOT NULL, vs int NOT NULL, am int NOT NULL, gear int NOT NULL, carb int NOT NULL );Yerleşik veri kümesinden
mtcarsverileri ekleyin.INSERT INTO dbo.MTCars EXEC sp_execute_external_script @language = N'R' , @script = N'MTCars <- mtcars;' , @input_data_1 = N'' , @output_data_1_name = N'MTCars';Tavsiye
Küçük ve büyük birçok veri kümesi R çalışma zamanına dahil edilir. R ile yüklenen veri kümelerinin listesini almak için bir R komut isteminden yazın
library(help="datasets").
Modeli oluşturma ve eğitma
Araba hızı verileri iki sütun içerir: beygir gücü (hp) ve ağırlık (wt). Bu verilerden, bir aracın manuel şanzımanla donatılmış olma olasılığını tahmin eden genelleştirilmiş bir doğrusal model (GLM) oluşturacaksınız.
Modeli oluşturmak için formülü R kodunuzun içinde tanımlar ve verileri giriş parametresi olarak geçirirsiniz.
DROP PROCEDURE IF EXISTS generate_GLM;
GO
CREATE PROCEDURE generate_GLM
AS
BEGIN
EXEC sp_execute_external_script
@language = N'R'
, @script = N'carsModel <- glm(formula = am ~ hp + wt, data = MTCarsData, family = binomial);
trained_model <- data.frame(payload = as.raw(serialize(carsModel, connection=NULL)));'
, @input_data_1 = N'SELECT hp, wt, am FROM MTCars'
, @input_data_1_name = N'MTCarsData'
, @output_data_1_name = N'trained_model'
WITH RESULT SETS ((model VARBINARY(max)));
END;
GO
-
glm'in ilk argümanı,am'yihp + wtile bağımlı olarak tanımlayan formül parametresidir. - Giriş verileri, SQL sorgusu tarafından doldurulan değişkeninde
MTCarsDatadepolanır. Giriş verilerinize belirli bir ad atamazsanız, varsayılan değişken adı InputDataSet olur.
Modeli veritabanında depolama
Ardından modeli bir veritabanında depolayın; böylece modeli tahmin için kullanabilir veya yeniden eğitebilirsiniz.
Modeli depolamak için bir tablo oluşturun.
Model oluşturan bir R paketinin çıkışı genellikle ikili bir nesnedir. Bu nedenle, modeli depoladığınız tablonun varbinary(max) türünde bir sütun sağlaması gerekir.
CREATE TABLE GLM_models ( model_name varchar(30) not null default('default model') primary key, model varbinary(max) not null );Saklı yordamı çağırmak, modeli oluşturmak ve oluşturduğunuz tabloya kaydetmek için aşağıdaki Transact-SQL deyimini çalıştırın.
INSERT INTO GLM_models(model) EXEC generate_GLM;Tavsiye
Bu kodu ikinci kez çalıştırırsanız şu hatayı alırsınız: "BİRİnCİl ANAHTAR kısıtlaması ihlali... Dbo.stopping_distance_models nesnesine yinelenen anahtar eklenemiyor". Bu hatayı önlemek için bir seçenek, her yeni modelin adını güncelleştirmektir. Örneğin, adı daha açıklayıcı bir adla değiştirebilir ve model türünü, oluşturduğunuz günü vb. ekleyebilirsiniz.
UPDATE GLM_models SET model_name = 'GLM_' + format(getdate(), 'yyyy.MM.HH.mm', 'en-gb') WHERE model_name = 'default model'
Eğitilen modeli kullanarak yeni verileri puanla
Puanlama , veri biliminde eğitilmiş bir modele beslenen yeni verileri temel alan tahminler, olasılıklar veya diğer değerler oluşturmak için kullanılan bir terimdir. Önceki bölümde oluşturduğunuz modeli kullanarak yeni verilerle ilgili tahminleri puanlayacaksınız.
Yeni veri tablosu oluşturma
İlk olarak, yeni verilerle bir tablo oluşturun.
CREATE TABLE dbo.NewMTCars(
hp INT NOT NULL
, wt DECIMAL(10,3) NOT NULL
, am INT NULL
)
GO
INSERT INTO dbo.NewMTCars(hp, wt)
VALUES (110, 2.634)
INSERT INTO dbo.NewMTCars(hp, wt)
VALUES (72, 3.435)
INSERT INTO dbo.NewMTCars(hp, wt)
VALUES (220, 5.220)
INSERT INTO dbo.NewMTCars(hp, wt)
VALUES (120, 2.800)
GO
El ile iletimi tahmin et
Modelinize dayalı tahminler almak için aşağıdakileri yapar bir SQL betiği yazın:
- İstediğiniz modeli alır
- Yeni giriş verilerini alır
- Bu modelle uyumlu bir R tahmin işlevini çağırır
Tablo zaman içinde, tümü farklı parametreler veya algoritmalar kullanılarak oluşturulmuş veya farklı veri alt kümelerinde eğitilmiş birden çok R modeli içerebilir. Bu örnekte adlı default modelmodeli kullanacağız.
DECLARE @glmmodel varbinary(max) =
(SELECT model FROM dbo.GLM_models WHERE model_name = 'default model');
EXEC sp_execute_external_script
@language = N'R'
, @script = N'
current_model <- unserialize(as.raw(glmmodel));
new <- data.frame(NewMTCars);
predicted.am <- predict(current_model, new, type = "response");
str(predicted.am);
OutputDataSet <- cbind(new, predicted.am);
'
, @input_data_1 = N'SELECT hp, wt FROM dbo.NewMTCars'
, @input_data_1_name = N'NewMTCars'
, @params = N'@glmmodel varbinary(max)'
, @glmmodel = @glmmodel
WITH RESULT SETS ((new_hp INT, new_wt DECIMAL(10,3), predicted_am DECIMAL(10,3)));
Yukarıdaki betik aşağıdaki adımları gerçekleştirir:
Tablodan tek bir model almak için SELECT deyimini kullanın ve bunu giriş parametresi olarak geçirin.
Tablodan modeli aldıktan sonra modeldeki
unserializeişlevini çağırın.Fonksiyonu modele uygun bağımsız değişkenlerle
predictuygulayın ve yeni giriş verilerini sağlayın.
Uyarı
Örnekte işlev, str R'den döndürülen verilerin şemasını denetlemek için test aşamasında eklenir. Deyimini daha sonra kaldırabilirsiniz.
R betiğinde kullanılan sütun adlarının saklı yordam çıkışına geçirilmesi şart değildir. Burada WITH RESULTS yan tümcesi bazı yeni sütun adlarını tanımlamak için kullanılır.
Results
Depolanan modele göre tahmin edilen bir değer veya puan oluşturmak için PREDICT (Transact-SQL) deyimini kullanmak da mümkündür.
Sonraki Adımlar
SQL makine öğrenmesi ile R öğreticileri hakkında daha fazla bilgi için bkz: