Sdílet prostřednictvím


Kurz: Sestavení modelu clusteringu v R pomocí strojového učení SQL

Platí pro: SQL Server 2016 (13.x) a novější verze Azure SQL Managed Instance

Ve třetí části této čtyřdílné série kurzů vytvoříte model K-Means v jazyce R pro provádění clusteringu. V další části této série nasadíte tento model do databáze se službou SQL Server Machine Learning Services nebo v clusterech s velkými objemy dat.

Ve třetí části této čtyřdílné série kurzů vytvoříte model K-Means v jazyce R pro provádění clusteringu. V další části této série nasadíte tento model do databáze se službou SQL Server Machine Learning Services.

Ve třetí části této čtyřdílné série kurzů vytvoříte model K-Means v jazyce R pro provádění clusteringu. V další části této série nasadíte tento model do databáze se službami SQL Server R Services.

Ve třetí části této čtyřdílné série kurzů vytvoříte model K-Means v jazyce R pro provádění clusteringu. V další části této série nasadíte tento model do databáze se službou Azure SQL Managed Instance Machine Learning Services.

V tomto článku se naučíte:

  • Definování počtu clusterů pro algoritmu K-Means
  • Proveď klastrovaní
  • Analýza výsledků

V první části jste nainstalovali požadavky a obnovili ukázkovou databázi.

V druhé části jste zjistili, jak připravit data z databáze na clustering.

Ve 4. části se dozvíte, jak vytvořit uloženou proceduru v databázi, která může provádět clustering v jazyce R na základě nových dat.

Požadavky

Definování počtu clusterů

Ke clusterování zákaznických dat použijete algoritmus clusteringu K-Means , jeden z nejjednodušších a nejznámějších způsobů seskupování dat. Další informace o K-Means najdete v úplném průvodci algoritmem clusteringu K-Means.

Algoritmus přijímá dva vstupy: samotná data a předdefinované číslo "k" představující počet clusterů, které se mají vygenerovat. Výstupem jsou clustery k se vstupními daty rozdělenými mezi clustery.

Pokud chcete určit počet shluků, které má algoritmus použít, použijte graf součtu čtverců v rámci skupin podle počtu získaných shluků. Vhodný počet klastrů, které se mají použít, je v místě zalomení nebo "loktu" grafu.

# 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")

Graf loktů

Na základě grafu to vypadá, že k = 4 by bylo dobrou hodnotou vyzkoušet. Tato hodnota k seskupí zákazníky do čtyř clusterů.

Proveď klastrovaní

V následujícím skriptu jazyka R použijete k provádění clusteringu kmeans funkce.

# 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)

Analýza výsledků

Teď, když jste clustering provedli pomocí K-Means, je dalším krokem analýza výsledku a zjištění, jestli najdete nějaké užitečné informace.

#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

Čtyři prostředky clusteru jsou dány pomocí proměnných definovaných v části 2:

  • orderRatio = poměr vrácených objednávek (celkový počet objednávek částečně nebo zcela vrácených oproti celkovému počtu objednávek)
  • itemsRatio = poměr vrácených položek (celkový počet vrácených položek oproti počtu zakoupených položek)
  • monetaryRatio = poměr výnosové částky (celková peněžní částka vrácených položek a zakoupená částka)
  • frequency = návratová frekvence

Dolování dat pomocí K-Means často vyžaduje další analýzu výsledků a další kroky k lepšímu pochopení každého clusteru, ale může poskytnout některé dobré zájemce. Tady je několik způsobů, jak byste mohli tyto výsledky interpretovat:

  • Zdá se, že cluster 1 (největší cluster) je skupina zákazníků, kteří nejsou aktivní (všechny hodnoty jsou nula).
  • Zdá se, že cluster 3 je skupina, která vynikne z hlediska chování při návratu.

Vyčistěte zdroje

Pokud nebudete pokračovat v tomto kurzu, odstraňte tpcxbb_1gb databázi.

Další kroky

Ve třetí části této série kurzů jste se naučili:

  • Definování počtu clusterů pro algoritmu K-Means
  • Proveď klastrovaní
  • Analýza výsledků

Pokud chcete nasadit model strojového učení, který jste vytvořili, postupujte podle části 4 této série kurzů: