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 2017 (14.x) ve sonraki sürümleri
Azure SQL Yönetimli Örnek
Bu dört bölümden oluşan öğretici serisinin ikinci bölümünde Python kullanarak verileri geri yükleyip bir veritabanından hazırlayacaksınız. Bu serinin ilerleyen bölümlerinde, SQL Server Machine Learning Services ile Python'da veya Büyük Veri Kümelerinde bir kümeleme modeli eğitmek ve dağıtmak için bu verileri kullanacaksınız.
Bu dört bölümden oluşan öğretici serisinin ikinci bölümünde Python kullanarak verileri geri yükleyip bir veritabanından hazırlayacaksınız. Bu serinin ilerleyen bölümlerinde, SQL Server Machine Learning Services ile Python'da bir kümeleme modeli eğitmek ve dağıtmak için bu verileri kullanacaksınız.
Bu dört bölümden oluşan öğretici serisinin ikinci bölümünde Python kullanarak verileri geri yükleyip bir veritabanından hazırlayacaksınız. Bu serinin ilerleyen bölümlerinde, Azure SQL Yönetilen Örneği Machine Learning Services ile Python'da bir kümeleme modeli eğitmek ve dağıtmak için bu verileri kullanacaksınız.
Bu makalede şunları nasıl yapacağınızı öğreneceksiniz:
- Python kullanarak müşterileri farklı boyutlara ayırma
- Veritabanındaki verileri python 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 Python'da K-Means kümeleme modeli oluşturmayı ve eğitmeyi öğreneceksiniz.
Dördüncü bölümde, yeni verilere göre Python'da kümeleme gerçekleştirebilen bir veritabanında saklı yordam oluşturmayı öğreneceksiniz.
Prerequisites
- Bu öğreticinin ikinci bölümünde birinci bölümün önkoşullarını yerine getirdiğiniz varsayılır.
Ayrı müşteriler
Müşterileri kümelemeye hazırlanmak için önce aşağıdaki boyutlara göre müşterileri ayıracaksınız:
- 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ığı
Azure Data Studio'da yeni bir not defteri açın ve aşağıdaki betiği girin.
Bağlantı dizesinde, bağlantı ayrıntılarını gerektiği gibi değiştirin.
# Load packages.
import pyodbc
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from scipy.spatial import distance as sci_distance
from sklearn import cluster as sk_cluster
################################################################################################
## Connect to DB and select data
################################################################################################
# Connection string to connect to SQL Server named instance.
conn_str = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server}; SERVER=<server>; DATABASE=tpcxbb_1gb; UID=<username>; PWD=<password>')
input_query = '''SELECT
ss_customer_sk AS customer,
ROUND(COALESCE(returns_count / NULLIF(1.0*orders_count, 0), 0), 7) AS orderRatio,
ROUND(COALESCE(returns_items / NULLIF(1.0*orders_items, 0), 0), 7) AS itemsRatio,
ROUND(COALESCE(returns_money / NULLIF(1.0*orders_money, 0), 0), 7) AS monetaryRatio,
COALESCE(returns_count, 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'''
# Define the columns we wish to import.
column_info = {
"customer": {"type": "integer"},
"orderRatio": {"type": "integer"},
"itemsRatio": {"type": "integer"},
"frequency": {"type": "integer"}
}
Verileri bir veri çerçevesine yükleme
Sorgunun sonuçları Pandas read_sql işlevi kullanılarak Python'a döndürülür. İşlemin bir parçası olarak, önceki betikte tanımladığınız sütun bilgilerini kullanacaksınız.
customer_data = pd.read_sql(input_query, conn_str)
Şimdi doğru göründüğünden emin olmak için veri çerçevesinin başlangıcını görüntüleyin.
print("Data frame:", customer_data.head(n=5))
Sonuç kümesi aşağıdadır.
Rows Read: 37336, Total Rows Processed: 37336, Total Chunk Time: 0.172 seconds
Data frame: customer orderRatio itemsRatio monetaryRatio frequency
0 29727.0 0.000000 0.000000 0.000000 0
1 97643.0 0.068182 0.078176 0.037034 3
2 57247.0 0.000000 0.000000 0.000000 0
3 32549.0 0.086957 0.068657 0.031281 4
4 2040.0 0.000000 0.000000 0.000000 0
Kaynakları temizle
Bu öğreticiye devam etmeyecekseniz tpcxbb_1gb veritabanını silin.
Sonraki Adımlar
Bu öğretici serisinin ikinci bölümünde şu adımları tamamladınız:
- Python kullanarak müşterileri farklı boyutlara ayırma
- Veritabanındaki verileri python 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: