Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: SQL Server 2016 (13.x) en latere versies
van Azure SQL Managed Instance
In deel drie van deze vierdelige reeks zelfstudies bouwt u een K-Means-model in R om clustering uit te voeren. In het volgende deel van deze reeks implementeert u dit model in een database met SQL Server Machine Learning Services of op Big Data-clusters.
In deel drie van deze vierdelige reeks zelfstudies bouwt u een K-Means-model in R om clustering uit te voeren. In het volgende deel van deze reeks implementeert u dit model in een database met SQL Server Machine Learning Services.
In deel drie van deze vierdelige reeks zelfstudies bouwt u een K-Means-model in R om clustering uit te voeren. In het volgende deel van deze reeks implementeert u dit model in een database met SQL Server R Services.
In deel drie van deze vierdelige reeks zelfstudies bouwt u een K-Means-model in R om clustering uit te voeren. In het volgende deel van deze reeks implementeert u dit model in een database met Azure SQL Managed Instance Machine Learning Services.
In dit artikel leert u het volgende:
- Het aantal clusters definiëren voor een K-Means-algoritme
- Clustering uitvoeren
- De resultaten analyseren
In deel 1 hebt u de vereisten geïnstalleerd en de voorbeelddatabase hersteld.
In deel twee hebt u geleerd hoe u de gegevens uit een database voorbereidt om clustering uit te voeren.
In deel vier leert u hoe u een opgeslagen procedure maakt in een database die clustering in R kan uitvoeren op basis van nieuwe gegevens.
Vereiste voorwaarden
- In deel drie van deze reeks zelfstudies wordt ervan uitgegaan dat u aan de vereisten van deel 1 hebt voldaan en dat u de stappen in deel twee hebt voltooid.
Het aantal clusters definiëren
Als u uw klantgegevens wilt clusteren, gebruikt u het K-Means-clustering-algoritme , een van de eenvoudigste en meest bekende manieren om gegevens te groeperen. Meer informatie over K-Means vindt u in een volledige handleiding voor het K-means-clustering-algoritme.
Het algoritme accepteert twee invoerwaarden: de gegevens zelf en een vooraf gedefinieerd getal 'k' dat het aantal clusters vertegenwoordigt dat moet worden gegenereerd. De uitvoer is k-clusters met de invoergegevens die zijn gepartitioneerd tussen de clusters.
Als u het aantal clusters wilt bepalen dat het algoritme moet gebruiken, gebruikt u een plot van de som van kwadraten binnen groepen, op basis van het aantal geëxtraheerde clusters. Het juiste aantal clusters dat moet worden gebruikt, bevindt zich in de bocht of 'elleboog' van de plot.
# 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")
Op basis van de grafiek lijkt het erop dat k = 4 een goede waarde is om te proberen. Deze k-waarde groepeert de klanten in vier clusters.
Clustering uitvoeren
In het volgende R-script gebruikt u de functie kmeans om clustering uit te voeren.
# 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)
De resultaten analyseren
Nu u de clustering hebt uitgevoerd met behulp van K-Means, is de volgende stap het analyseren van het resultaat en te zien of u bruikbare informatie kunt vinden.
#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 vier clustermiddelen worden gegeven met behulp van de variabelen die zijn gedefinieerd in deel twee:
- orderRatio = retourorderverhouding (totaal aantal orders gedeeltelijk of volledig geretourneerd versus het totale aantal orders)
- itemsRatio = verhouding retouritem (totaal aantal geretourneerde items versus het aantal gekochte artikelen)
- monetaryRatio = retourbedragverhouding (totale monetaire hoeveelheid geretourneerde items versus het aangeschafte bedrag)
- frequency = retourfrequentie
Gegevensanalyse met behulp van K-Means vereist vaak verdere analyse van de resultaten en verdere stappen om elk cluster beter te begrijpen, maar het kan een aantal goede leads bieden. Hier volgen een aantal manieren waarop u deze resultaten kunt interpreteren:
- Cluster 1 (het grootste cluster) lijkt een groep klanten te zijn die niet actief zijn (alle waarden zijn nul).
- Cluster 3 lijkt een groep te zijn die opvalt in termen van retourgedrag.
De hulpbronnen opschonen
Als u niet verdergaat met deze zelfstudie, verwijdert u de tpcxbb_1gb-database.
Volgende stappen
In deel drie van deze reeks zelfstudies hebt u geleerd hoe u het volgende kunt doen:
- Het aantal clusters definiëren voor een K-Means-algoritme
- Clustering uitvoeren
- De resultaten analyseren
Als u het machine learning-model wilt implementeren dat u hebt gemaakt, volgt u deel vier van deze reeks zelfstudies: