Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: SQL Server 2016 (13.x) i nowsze wersje
usługi Azure SQL Managed Instance
W trzeciej części tej czteroczęściowej serii samouczków utworzysz model K-Średnich w języku R w celu wykonania klastrowania. W następnej części tej serii wdrożysz ten model w bazie danych z usługami SQL Server Machine Learning Services lub w klastrach danych big data.
W trzeciej części tej czteroczęściowej serii samouczków utworzysz model K-Średnich w języku R w celu wykonania klastrowania. W następnej części tej serii wdrożysz ten model w bazie danych za pomocą usług SQL Server Machine Learning Services.
W trzeciej części tej czteroczęściowej serii samouczków utworzysz model K-Średnich w języku R w celu wykonania klastrowania. W następnej części tej serii wdrożysz ten model w bazie danych z usługami JĘZYKA R programu SQL Server.
W trzeciej części tej czteroczęściowej serii samouczków utworzysz model K-Means w języku R do klastrowania. W następnej części tej serii wdrożysz ten model w bazie danych za pomocą usług Azure SQL Managed Instance Machine Learning Services.
W tym artykule dowiesz się, jak:
- Określenie liczby klastrów w algorytmie k-means
- Wykonywanie klastrowania
- Analizowanie wyników
W części 1 zainstalowano wymagania wstępne i przywrócono przykładową bazę danych.
W drugiej części przedstawiono sposób przygotowywania danych z bazy danych do wykonywania klastrowania.
W czwartej części dowiesz się, jak utworzyć procedurę składowaną w bazie danych, która może wykonywać klastrowanie w języku R na podstawie nowych danych.
Wymagania wstępne
- W trzeciej części tej serii samouczków przyjęto założenie, że spełniono wymagania wstępne części jednej i wykonano kroki opisane w drugiej części.
Definiowanie liczby klastrów
Aby klasterować dane klientów, użyjesz algorytmu klastrowania K-Średnich, jednego z najprostszych i najbardziej znanych sposobów grupowania danych. Więcej informacji na temat metody K-Średnich można przeczytać w kompletnym przewodniku po algorytmie klastrowania metodą K-średnich.
Algorytm akceptuje dwa dane wejściowe: same dane wejściowe i wstępnie zdefiniowaną liczbę "k" reprezentującą liczbę klastrów do wygenerowania. Dane wyjściowe to k klastry z danymi wejściowymi podzielonymi na partycje między klastrami.
Aby określić liczbę klastrów używanych przez algorytm, użyj wykresu sumy kwadratów wewnątrz grup w zależności od liczby wyodrębnionych klastrów. Odpowiednia liczba klastrów do użycia znajduje się w zagięciu lub "punkcie zgięcia" wykresu.
# 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")
Na podstawie wykresu wygląda na to, że k = 4 byłoby dobrą wartością do wypróbowania. Ta wartość k grupuje klientów na cztery klastry.
Wykonywanie klastrowania
W poniższym skryscie języka R użyjesz funkcji kmeans do wykonania klastrowania.
# 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)
Analizowanie wyników
Po zakończeniu klastrowania przy użyciu metody K-średnich, następnym krokiem jest przeanalizowanie wyniku i sprawdzenie, czy można znaleźć informacje, na podstawie których można podjąć działania.
#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
Cztery metody klastra są podane przy użyciu zmiennych zdefiniowanych w drugiej części:
- orderRatio = współczynnik zamówienia zwrotnego (łączna liczba zamówień częściowo lub w pełni zwrócona w porównaniu z łączną liczbą zamówień)
- itemsRatio = współczynnik elementów zwracanych (łączna liczba zwróconych elementów w porównaniu z liczbą zakupionych elementów)
- monetaryRatio = stosunek kwoty zwrotu (łączna kwota pieniężna elementów zwróconych w porównaniu do zakupionej kwoty)
- frequency = częstotliwość zwrotu
Eksploracja danych przy użyciu metody K-średnich często wymaga dalszej analizy wyników i podejmowania kolejnych kroków w celu lepszego zrozumienia każdego klastra, ale może dostarczyć dobrych wskazówek. Oto kilka sposobów interpretowania tych wyników:
- Klaster 1 (największy klaster) wydaje się być grupą klientów, którzy nie są aktywni (wszystkie wartości to zero).
- Klaster 3 wydaje się być grupą, która wyróżnia się pod względem zachowania zwrotnego.
Uprzątnij zasoby
Jeśli nie zamierzasz kontynuować pracy z tym samouczkiem, usuń bazę danych tpcxbb_1gb.
Dalsze kroki
W trzeciej części tej serii samouczków przedstawiono następujące zagadnienia:
- Określenie liczby klastrów w algorytmie k-means
- Wykonywanie klastrowania
- Analizowanie wyników
Aby wdrożyć utworzony model uczenia maszynowego, wykonaj czynności opisane w czwartej części tej serii samouczków: