Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
              Gäller för: SQL Server 2016 (13.x) och senare versioner 
Azure SQL Managed Instance
I del tre i den här självstudieserien i fyra delar skapar du en K-Means-modell i R för att utföra klustring. I nästa del av den här serien distribuerar du den här modellen i en databas med SQL Server Machine Learning Services eller i stordatakluster.
I del tre i den här självstudieserien i fyra delar skapar du en K-Means-modell i R för att utföra klustring. I nästa del av den här serien distribuerar du den här modellen i en databas med SQL Server Machine Learning Services.
I del tre i den här självstudieserien i fyra delar skapar du en K-Means-modell i R för att utföra klustring. I nästa del av den här serien distribuerar du den här modellen i en databas med SQL Server R Services.
I del tre i den här självstudieserien i fyra delar skapar du en K-Means-modell i R för att utföra klustring. I nästa del av den här serien distribuerar du den här modellen i en databas med Azure SQL Managed Instance Machine Learning Services.
I den här artikeln får du lära dig att:
- Definiera antalet kluster för en K-Means-algoritm
 - Utföra klustring
 - Analysera resultaten
 
I del ett installerade du förhandskraven och återställde exempeldatabasen.
I del två lärde du dig hur du förbereder data från en databas för att utföra klustring.
I del fyra får du lära dig hur du skapar en lagrad procedur i en databas som kan utföra klustring i R baserat på nya data.
Förutsättningar
- Del tre i den här självstudieserien förutsätter att du har uppfyllt förutsättningarna för del ett och slutfört stegen i del två.
 
Definiera antalet kluster
För att klustra dina kunddata använder du K-Means-klustringsalgoritmen , ett av de enklaste och mest kända sätten att gruppera data. Du kan läsa mer om K-Means i En komplett guide till K-means-klustringsalgoritmen.
Algoritmen accepterar två indata: Själva data och ett fördefinierat tal "k" som representerar antalet kluster som ska genereras. Utdata är k-kluster med indata partitionerade mellan klustren.
Om du vill fastställa antalet kluster som algoritmen ska använda använder du ett diagram med summan av kvadraterna inom grupper, efter antal extraherade kluster. Det lämpliga antalet kluster som ska användas är vid kurvan eller "armbågen" i diagrammet.
# Determine number of clusters by using a plot of the within groups sum of squares,
# by number of clusters extracted. 
wss <- (nrow(customer_data) - 1) * sum(apply(customer_data, 2, var))
for (i in 2:20)
    wss[i] <- sum(kmeans(customer_data, centers = i)$withinss)
plot(1:20, wss, type = "b", xlab = "Number of Clusters", ylab = "Within groups sum of squares")
              
              
            
Baserat på diagrammet ser det ut som att k = 4 skulle vara ett bra värde att prova. Det k-värdet grupperar kunderna i fyra kluster.
Utföra klustring
I följande R-skript använder du funktionen kmeans för att utföra klustring.
# Output table to hold the customer group mappings.
# Generate clusters using Kmeans and output key / cluster to a table
# called return_cluster
## create clustering model
clust <- kmeans(customer_data[,2:5],4)
## create clustering output for table
customer_cluster <- data.frame(cluster=clust$cluster,customer=customer_data$customer,orderRatio=customer_data$orderRatio,
        itemsRatio=customer_data$itemsRatio,monetaryRatio=customer_data$monetaryRatio,frequency=customer_data$frequency)
## write cluster output to DB table
sqlSave(ch, customer_cluster, tablename = "return_cluster")
# Read the customer returns cluster table from the database
customer_cluster_check <- sqlFetch(ch, "return_cluster")
head(customer_cluster_check)
Analysera resultaten
Nu när du har gjort klustring med hjälp av K-Means är nästa steg att analysera resultatet och se om du kan hitta någon åtgärdsbar information.
#Look at the clustering details to analyze results
clust[-1]
$centers
   orderRatio itemsRatio monetaryRatio frequency
1 0.621835791  0.1701519    0.35510836  1.009025
2 0.074074074  0.0000000    0.05886575  2.363248
3 0.004807692  0.0000000    0.04618708  5.050481
4 0.000000000  0.0000000    0.00000000  0.000000
$totss
[1] 40191.83
$withinss
[1] 19867.791   215.714   660.784     0.000
$tot.withinss
[1] 20744.29
$betweenss
[1] 19447.54
$size
[1]  4543   702   416 31675
$iter
[1] 3
$ifault
[1] 0
De fyra klustersätten ges med hjälp av variablerna som definieras i del två:
- orderRatio = returorderförhållande (totalt antal ordrar delvis eller helt returnerade jämfört med det totala antalet beställningar)
 - itemsRatio = return item ratio (totalt antal artiklar som returneras jämfört med antalet köpta artiklar)
 - monetaryRatio = förhållandet mellan returbelopp (totalt penningbelopp för poster som returneras jämfört med det köpta beloppet)
 - frequency = återfrekvens
 
Datautvinning med hjälp av K-Means kräver ofta ytterligare analys av resultaten och ytterligare steg för att bättre förstå varje kluster, men det kan ge några bra leads. Här följer några sätt att tolka dessa resultat:
- Kluster 1 (det största klustret) verkar vara en grupp kunder som inte är aktiva (alla värden är noll).
 - Kluster 3 verkar vara en grupp som sticker ut när det gäller returbeteende.
 
Rensa resurser
Om du inte ska fortsätta med den här självstudien tar du bort tpcxbb_1gb-databasen.
Nästa steg
I del tre i den här självstudieserien lärde du dig att:
- Definiera antalet kluster för en K-Means-algoritm
 - Utföra klustring
 - Analysera resultaten
 
Om du vill distribuera den maskininlärningsmodell som du har skapat följer du del fyra i den här självstudieserien: