Aracılığıyla paylaş


Hızlı Başlangıç: SQL makine öğrenmesi ile R işlevleri

Ş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 , SQL Server Machine Learning Services ile veya Büyük Veri Kümelerinde R matematiksel ve yardımcı program işlevlerini kullanmayı öğreneceksiniz. İstatistiksel işlevlerin T-SQL'de uygulanması genellikle karmaşıktır, ancak R'de yalnızca birkaç kod satırıyla yapılabilir.

Bu hızlı başlangıçta , SQL Server Machine Learning Services ile R matematiksel ve yardımcı program işlevlerini kullanmayı öğreneceksiniz. İstatistiksel işlevlerin T-SQL'de uygulanması genellikle karmaşıktır, ancak R'de yalnızca birkaç kod satırıyla yapılabilir.

Bu hızlı başlangıçta , SQL Server R Services ile R matematiksel ve yardımcı program işlevlerini kullanmayı öğreneceksiniz. İstatistiksel işlevlerin T-SQL'de uygulanması genellikle karmaşıktır, ancak R'de yalnızca birkaç kod satırıyla yapılabilir.

Bu hızlı başlangıçta Azure SQL Yönetilen Örneği Machine Learning Services'da R kullanırken veri yapılarını ve veri türlerini kullanmayı öğreneceksiniz. R ile SQL Yönetilen Örneği arasında veri taşımayı ve oluşabilecek yaygın sorunları öğreneceksiniz.

Önkoşullar

Bu hızlı başlangıcı çalıştırmak için aşağıdaki önkoşullara ihtiyacınız vardır.

  • 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.

Rastgele sayılar oluşturacak bir saklı yordam oluşturun.

Kolaylık olması için, varsayılan olarak kurulan ve yüklenen R stats paketini kullanalım. Paket, standart sapma ve ortalama göz önüne alındığında normal dağılımı kullanarak belirtilen sayıda rastgele sayı oluşturan işlev de dahil olmak rnorm üzere ortak istatistiksel görevler için yüzlerce işlev içerir.

Örneğin, aşağıdaki R kodu, standart sapması 3 olan 50 ortalamada 100 sayı döndürür.

as.data.frame(rnorm(100, mean = 50, sd = 3));

T-SQL'den bu R satırını çağırmak için R işlevini aşağıdaki gibi öğesinin R betik parametresine sp_execute_external_scriptekleyin:

EXECUTE sp_execute_external_script
      @language = N'R'
    , @script = N'
         OutputDataSet <- as.data.frame(rnorm(100, mean = 50, sd =3));'
    , @input_data_1 = N'   ;'
      WITH RESULT SETS (([Density] float NOT NULL));

Farklı bir rastgele sayı kümesi oluşturmayı kolaylaştırmak isterseniz ne yapmanız gerekir?

Bu, T-SQL ile birleştirildiğinde kolaydır. Kullanıcıdan bağımsız değişkenleri alan bir saklı yordam tanımlarsınız, ardından bu bağımsız değişkenleri R betiğine değişken olarak geçirirsiniz.

CREATE PROCEDURE MyRNorm (
    @param1 INT
    , @param2 INT
    , @param3 INT
    )
AS
EXECUTE sp_execute_external_script @language = N'R'
    , @script = N'
	     OutputDataSet <- as.data.frame(rnorm(mynumbers, mymean, mysd));'
    , @input_data_1 = N'   ;'
    , @params = N' @mynumbers int, @mymean int, @mysd int'
    , @mynumbers = @param1
    , @mymean = @param2
    , @mysd = @param3
WITH RESULT SETS(([Density] FLOAT NOT NULL));
  • İlk satır, saklı yordam yürütülürken gereken SQL giriş parametrelerinin her birini tanımlar.

  • ile @params başlayan satır, R kodu tarafından kullanılan tüm değişkenleri ve ilgili SQL veri türlerini tanımlar.

  • Hemen izleyen satırlar, SQL parametre adlarını ilgili R değişkeni adlarına eşler.

Artık R işlevini bir saklı yordama sarmaladığınıza göre, işlevi kolayca çağırabilir ve aşağıdaki gibi farklı değerler geçirebilirsiniz:

EXECUTE MyRNorm @param1 = 100,@param2 = 50, @param3 = 3

Sorun giderme için R yardımcı programı işlevlerini kullanma

Varsayılan olarak yüklenen yardımcı program paketi, geçerli R ortamını araştırmak için çeşitli yardımcı program işlevleri sağlar. R kodunuzun SQL Server'da ve dış ortamlardaki performansında tutarsızlıklar fark ederseniz bu işlevler yararlı olabilir.

Örneğin, R işlemleri tarafından kullanılan süreyi yakalamak ve performans sorunlarını analiz etmek için R'deki ve system.timegibi proc.time sistem zamanlama işlevlerini kullanabilirsiniz. Bir örnek için R zamanlama işlevlerinin çözüme eklendiği Veri Özellikleri Oluşturma öğreticisine bakın.

EXECUTE sp_execute_external_script
      @language = N'R'
    , @script = N'
        library(utils);
        start.time <- proc.time();
        
        # Run R processes
        
        elapsed_time <- proc.time() - start.time;'

Diğer yararlı işlevler için bkz. Performansı geliştirmek için R kodu profil oluşturma işlevlerini kullanma.

Sonraki Adımlar

SQL machine learning ile R kullanarak makine öğrenmesi modeli oluşturmak için şu hızlı başlangıcı izleyin: