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 dört bölümden oluşan öğretici serisinin ikinci bölümünde, SQL Server Machine Learning Services ile R'de veya Büyük Veri Kümelerinde kümeleme gerçekleştirmek için veritabanından verileri hazırlayacaksınız.
Bu dört bölümden oluşan öğretici serisinin ikinci bölümünde, SQL Server Machine Learning Services ile R'de kümeleme gerçekleştirmek için veritabanındaki verileri hazırlayacaksınız.
Bu dört bölümden oluşan öğretici serisinin ikinci bölümünde, SQL Server 2016 R Services ile R'de kümeleme gerçekleştirmek için veritabanındaki verileri hazırlayacaksınız.
Bu dört bölümden oluşan öğretici serisinin ikinci bölümünde, Azure SQL Yönetilen Örneği Machine Learning Services ile R'de kümeleme gerçekleştirmek için veritabanından verileri hazırlayacaksınız.
Bu makalede şunları nasıl yapacağınızı öğreneceksiniz:
- R kullanarak müşterileri farklı boyutlarda ayırma
- Veritabanındaki verileri R veri çerçevesine yükleme
Birinci bölümde önkoşulları yüklemiş ve örnek veritabanını geri yüklemişsinizdir.
Üçüncü bölümde R'de K-Means kümeleme modeli oluşturmayı ve eğitmeyi öğreneceksiniz.
Dördüncü bölümde, yeni verilere göre R'de kümeleme gerçekleştirebilen bir veritabanında saklı yordam oluşturmayı öğreneceksiniz.
Önkoşullar
- Bu öğreticinin ikinci bölümünde birinci bölümü tamamladığınız varsayılır.
Ayrı müşteriler
RStudio'da yeni bir RScript dosyası oluşturun ve aşağıdaki betiği çalıştırın. SQL sorgusunda müşterileri aşağıdaki boyutlara göre ayırıyorsunuz:
- orderRatio = iade siparişi oranı (kısmen veya tamamen iade edilen toplam sipariş sayısı ile toplam sipariş sayısı)
- itemsRatio = iade öğesi oranı (döndürülen toplam öğe sayısı ile satın alınan ürün sayısı)
- monetaryRatio = getiri tutarı oranı (döndürülen toplam parasal öğe miktarı ile satın alınan tutar)
- frequency = dönüş sıklığı
connStr işlevinde ServerName değerini kendi bağlantı bilgilerinizle değiştirin.
# Define the connection string to connect to the tpcxbb_1gb database
connStr <- "Driver=SQL Server;Server=ServerName;Database=tpcxbb_1gb;uid=Username;pwd=Password"
#Define the query to select data
input_query <- "
SELECT ss_customer_sk AS customer
,round(CASE
WHEN (
(orders_count = 0)
OR (returns_count IS NULL)
OR (orders_count IS NULL)
OR ((returns_count / orders_count) IS NULL)
)
THEN 0.0
ELSE (cast(returns_count AS NCHAR(10)) / orders_count)
END, 7) AS orderRatio
,round(CASE
WHEN (
(orders_items = 0)
OR (returns_items IS NULL)
OR (orders_items IS NULL)
OR ((returns_items / orders_items) IS NULL)
)
THEN 0.0
ELSE (cast(returns_items AS NCHAR(10)) / orders_items)
END, 7) AS itemsRatio
,round(CASE
WHEN (
(orders_money = 0)
OR (returns_money IS NULL)
OR (orders_money IS NULL)
OR ((returns_money / orders_money) IS NULL)
)
THEN 0.0
ELSE (cast(returns_money AS NCHAR(10)) / orders_money)
END, 7) AS monetaryRatio
,round(CASE
WHEN (returns_count IS NULL)
THEN 0.0
ELSE returns_count
END, 0) AS frequency
FROM (
SELECT ss_customer_sk,
-- return order ratio
COUNT(DISTINCT (ss_ticket_number)) AS orders_count,
-- return ss_item_sk ratio
COUNT(ss_item_sk) AS orders_items,
-- return monetary amount ratio
SUM(ss_net_paid) AS orders_money
FROM store_sales s
GROUP BY ss_customer_sk
) orders
LEFT OUTER JOIN (
SELECT sr_customer_sk,
-- return order ratio
count(DISTINCT (sr_ticket_number)) AS returns_count,
-- return ss_item_sk ratio
COUNT(sr_item_sk) AS returns_items,
-- return monetary amount ratio
SUM(sr_return_amt) AS returns_money
FROM store_returns
GROUP BY sr_customer_sk
) returned ON ss_customer_sk = sr_customer_sk";
Verileri bir veri çerçevesine yükleme
Şimdi sorgudaki sonuçları bir R veri çerçevesine döndürmek için aşağıdaki betiği kullanın.
# Query using input_query and get the results back
# to data frame customer_data
library(RODBC)
ch <- odbcDriverConnect(connStr)
customer_data <- sqlQuery(ch, input_query)
# Take a look at the data just loaded
head(customer_data, n = 5);
Aşağıdakine benzer sonuçlar görmeniz gerekir.
customer orderRatio itemsRatio monetaryRatio frequency
1 29727 0 0 0.000000 0
2 26429 0 0 0.041979 1
3 60053 0 0 0.065762 3
4 97643 0 0 0.037034 3
5 32549 0 0 0.031281 4
Kaynakları temizle
Bu öğreticiye devam etmeyecekseniz tpcxbb_1gb veritabanını silin.
Sonraki Adımlar
Bu öğretici serisinin ikinci bölümünde şunların nasıl yapılacağını öğrendiniz:
- R kullanarak müşterileri farklı boyutlarda ayırma
- Veritabanındaki verileri R veri çerçevesine yükleme
Bu müşteri verilerini kullanan bir makine öğrenmesi modeli oluşturmak için bu öğretici serisinin üçüncü bölümünü izleyin: