Documente Academic
Documente Profesional
Documente Cultură
DE
DATE
PENTRU
AFACERI
– Algoritmi ierarhici
– Algoritmi de partitionare (kmeans)
– Algoritmi aglomerativi (K-nn)
– Algoritmsi de tip grid (Ocluster)
Distanta
(distance measure)
Metoda vecinilor celor mai apropiaţi (Single linkage). Prin aceasta, distanţa dintre
două clase este asimilată cu distanţa dintre elementele cele mai apropiate între ele
(elemente aparţinând, evident, unor grupuri diferite). Utilizarea acestei metode
poate conduce la riscul apariţiei de grupuri foarte eterogene, deoarece nu luăm în
calcul elementele extreme ale clasei.
Metoda vecinilor celor mai depărtaţi (Complete linkage). Prin aceasta, distanţa
dintre două clase este asimilată cu distanţa dintre elementele cele mai depărtate
între ele. (Ca şi mai sus, elementele vor aparţine unor clase diferite.)
Metoda agregării prin medii (Average linkage – weighted). Aceasta constă în
evaluarea distanţei între două clase pornind de la „centrele lor de greutate”. Deşi
această metodă este foarte logică, ea cere multe calcule suplimentare în comparaţie
cu primele două. De aceea, de multe ori este mai indicat a se utiliza una dintre
metodele anterioare.
Metode de grupare ierarhica
– Tendinta de clusterizare
– Determinarea grupurilor
Cod in R
Pachete disponibile pentru analiza cluster
– clustertend
– clValid
– RankAggreg
– Fpc
– factoextra
– pvclust
– clusteval
– cluster
– Mclust
– NbClust
– normtest
Cod in R
library(clustertend)
library(clValid)
library(RankAggreg)
library(fpc)
library(factoextra)
Cod in R
# analiza cluster
express <- data[c(“variabila_1",“variabila_2",“variabila_3")]
express=scale(express)
set.seed(100)
#clustering tendency
library(factoextra)
res1 <- get_clust_tendency(express, n = nrow(express)-1, graph = FALSE)
res1$hopkins_stat
Cod in R
#graphical representation
rownames(express) <- data$variabila_calitativa
d <- dist(express, method = "euclidean") # distance matrix
fit <- hclust(d, method=“?") # linkage method
plot(fit) # display dendogram
# Elbow method
# The method consists of plotting the explained variation as a function of the number of
clusters, and picking the elbow of the curve as the number of clusters to use
wss <- (nrow(express)-1)*sum(apply(express,2,var))
for (i in 1:10) wss[i] <- sum(kmeans(express, centers=i)$withinss)
plot(1:10, wss, type="b", xlab="Number of Clusters",ylab="Within groups sum of
squares")
Aplicatie
#analiza cluster
library(clustertend)
library(clValid)
library(RankAggreg)
library(fpc)
express <-
vanzari_auto[c("pret","cap_motor","caiputere","dim_roata","latime","lungime","greutc
urba","cap_rezervor","consum")]
express = scale(express)
set.seed(100)
Aplicatie
#clustering tendency
library(factoextra)
res1 <- get_clust_tendency(express, n = nrow(express)-1,
graph = FALSE)
res1$hopkins_stat
[1] 0.6596572
Aplicatie
#graphical representation
rownames(express) <- vanzari_auto$model
d <- dist(express, method = "euclidean") # distance matrix
fit <- hclust(d, method="ward.D") # linkage method
plot(fit) # display dendogram
# Elbow method
# The method consists of plotting the explained variation as a function of the number of clusters,
and picking the elbow of the curve as the number of clusters to use
wss <- (nrow(express)-1)*sum(apply(express,2,var))
for (i in 1:10) wss[i] <- sum(kmeans(express, centers=i)$withinss)
plot(1:10, wss, type="b", xlab="Number of Clusters",ylab="Within groups sum of squares")
Aplicatie
Aplicatie
Va multumesc!