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 üçüncü bölümünde, kümeleme gerçekleştirmek için Python'da bir K-Means modeli oluşturacaksınız. Bu serinin sonraki bölümünde, bu modeli SQL Server Machine Learning Services içeren bir veritabanında veya Büyük Veri Kümelerinde dağıtacaksınız.
Bu dört bölümden oluşan öğretici serisinin üçüncü bölümünde, kümeleme gerçekleştirmek için Python'da bir K-Means modeli oluşturacaksınız. Bu serinin sonraki bölümünde bu modeli SQL Server Machine Learning Services ile bir veritabanına dağıtacaksınız.
Bu dört bölümden oluşan öğretici serisinin üçüncü bölümünde, kümeleme gerçekleştirmek için Python'da bir K-Means modeli oluşturacaksınız. Bu serinin sonraki bölümünde bu modeli Azure SQL Yönetilen Örneği Machine Learning Services ile bir veritabanına dağıtacaksınız.
Bu makalede şunları nasıl yapacağınızı öğreneceksiniz:
- K ortalamaları algoritması için küme sayısını tanımlama
- Kümeleme gerçekleştirme
- Sonuçları analiz etme
Birinci bölümde önkoşulları yüklemiş ve örnek veritabanını geri yüklemişsinizdir.
İkinci bölümde, kümeleme gerçekleştirmek için veritabanındaki verileri nasıl hazırlayabileceğinizi öğrendinsiniz.
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.
Önkoşullar
- Bu öğreticinin üçüncü bölümünde birinci bölümün önkoşullarını yerine getirdiğiniz ve ikinci bölümdeki adımları tamamladığınız varsayılır.
Küme sayısını tanımlama
Müşteri verilerinizi kümelendirmek için, verileri gruplandırmanın en basit ve en iyi bilinen yollarından biri olan K-Means kümeleme algoritmasını kullanacaksınız. K-Ortalamalar ile ilgili daha fazla bilgiyi K-Ortalamalar kümeleme algoritmasına yönelik eksiksiz bir kılavuz adlı rehberde bulabilirsiniz.
Algoritma iki girişi kabul eder: Verilerin kendisi ve oluşturulacak küme sayısını temsil eden önceden tanımlanmış bir "k" sayısı. Çıkış, giriş verilerinin kümeler arasında bölümlendiği k kümeleridir.
K-ortalamalarının amacı, öğeleri k kümelerinde gruplandırmaktır. Böylece, aynı kümedeki tüm öğeler birbirine benzer ve diğer kümelerdeki öğelerden mümkün olduğunca farklıdır.
Algoritmanın kullanılacak küme sayısını belirlemek için, ayıklanan küme sayısına göre grupların içindeki karelerin toplamını gösteren bir çizim kullanın. Kullanılacak uygun küme sayısı, grafiğin büküm noktası veya "dirsek"indedir.
################################################################################################
## Determine number of clusters using the Elbow method
################################################################################################
cdata = customer_data
K = range(1, 20)
KM = (sk_cluster.KMeans(n_clusters=k).fit(cdata) for k in K)
centroids = (k.cluster_centers_ for k in KM)
D_k = (sci_distance.cdist(cdata, cent, 'euclidean') for cent in centroids)
dist = (np.min(D, axis=1) for D in D_k)
avgWithinSS = [sum(d) / cdata.shape[0] for d in dist]
plt.plot(K, avgWithinSS, 'b*-')
plt.grid(True)
plt.xlabel('Number of clusters')
plt.ylabel('Average within-cluster sum of squares')
plt.title('Elbow for KMeans clustering')
plt.show()
Grafiğe bağlı olarak , k = 4 denemek için iyi bir değer olacaktır. Bu k değeri, müşterileri dört küme halinde gruplandıracaktır.
Kümeleme gerçekleştirme
Aşağıdaki Python betiğinde, sklearn paketinden KMeans işlevini kullanacaksınız.
################################################################################################
## Perform clustering using Kmeans
################################################################################################
# It looks like k=4 is a good number to use based on the elbow graph.
n_clusters = 4
means_cluster = sk_cluster.KMeans(n_clusters=n_clusters, random_state=111)
columns = ["orderRatio", "itemsRatio", "monetaryRatio", "frequency"]
est = means_cluster.fit(customer_data[columns])
clusters = est.labels_
customer_data['cluster'] = clusters
# Print some data about the clusters:
# For each cluster, count the members.
for c in range(n_clusters):
cluster_members=customer_data[customer_data['cluster'] == c][:]
print('Cluster{}(n={}):'.format(c, len(cluster_members)))
print('-'* 17)
print(customer_data.groupby(['cluster']).mean())
Sonuçları analiz etme
K-Means kullanarak kümeleme gerçekleştirdiğinize göre, sonraki adım sonucu analiz etmek ve eyleme dönüştürülebilir herhangi bir bilgi bulup bulamayacağınızı görmektir.
Önceki betikten yazdırılan kümeleme ortalama değerlerine ve küme boyutlarına bakın.
Cluster0(n=31675):
-------------------
Cluster1(n=4989):
-------------------
Cluster2(n=1):
-------------------
Cluster3(n=671):
-------------------
customer orderRatio itemsRatio monetaryRatio frequency
cluster
0 50854.809882 0.000000 0.000000 0.000000 0.000000
1 51332.535779 0.721604 0.453365 0.307721 1.097815
2 57044.000000 1.000000 2.000000 108.719154 1.000000
3 48516.023845 0.136277 0.078346 0.044497 4.271237
Dört küme ortalaması birinci bölümde tanımlanan değişkenler kullanılarak verilir:
- 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ığı
K-Means ile veri madenciliği, genellikle sonuçların daha fazla analizini ve her kümeyi daha iyi anlamak için ek adımlar gerektirir; ancak bazı iyi ipuçları sağlayabilir. Bu sonuçları yorumlamanın birkaç yolu şunlardır:
- Küme 0, etkin olmayan bir müşteri grubu gibi görünüyor (tüm değerler sıfırdır).
- Küme 3, dönüş davranışı açısından öne çıkan bir grup gibi görünüyor.
Küme 0, açıkça etkin olmayan bir müşteri kümesidir. Satın alma işlemlerine yönelik bir ilgiyi tetikleme amacıyla pazarlama çalışmalarını bu gruba yönlendirebilirsiniz. Sonraki adımda, küme 0'daki müşterilerin e-posta adresleri için veritabanını sorgulayacak ve böylece onlara pazarlama e-postası gönderebileceksiniz.
Kaynakları temizle
Bu öğreticiye devam etmeyecekseniz tpcxbb_1gb veritabanını silin.
Sonraki Adımlar
Bu öğretici serisinin üçüncü bölümünde şu adımları tamamladınız:
- K ortalamaları algoritması için küme sayısını tanımlama
- Kümeleme gerçekleştirme
- Sonuçları analiz etme
Oluşturduğunuz makine öğrenmesi modelini dağıtmak için bu öğretici serisinin dördüncü bölümünü izleyin: