Sunteți pe pagina 1din 32

ANALIZA

DE
DATE
PENTRU
AFACERI

CURS 6 – 17 NOIEMBRIE 2020


Analiza CLUSTER
Analiza Cluster
cluster = a strange in grupe / a clasifica

– O metoda prin care elementele unei multimi sunt grupate in


submultimi, pornind de la una sau mai multe insusiri ale
acestor elemente
– Primele analize de acest tip au aparut in psihologie in anii
‘30 (Zubin, 1938; Tryon, 1931) si in antropologie (Driver si
Kroeber, 1932)
– Modelele cluster pot sa difere in functie de modul de
definire a distantei, de procedeul de grupare si de criterial
prin care este decis nivelul optim de grupare
Analiza Cluster

– Folosita in analiza multivariata, aceasta clasificare


descriptiva se refera la metodele utilizate pentru a identifica
intr-o multime de obiecte, grupurile de obiecte similare
– Grupurile formate contin indivizi asemanatori intre ei, cu
disimilaritati mici
– Grupa omogena poate fi reprezentata in diverse analize
printr-un singur individ: centrul grupei
Utilitate

– Furnizorii de asigurari folosesc analiza pentru a detecta


cererile frauduloase
– Bancile aplica analiza pentru evaluarea scorului de credit
– Cercetare de piata – clientii pot fi caracterizati pe baza
pattern-urilor de cumparare
– > Determinare de tipologii ale opiniilor, obiceiurilor etc ce
pot fi folosite in politica, psihologie, marketing etc
– Procesarea imaginilor etc
Exemple

Analiza gruparii tarilor din Uniunea Europeana pe indicatori ce


tin de dezvoltare economica

Analiza gruparii judetelor din Romania pe indicatori ce tin de


calitatea vietii

Analiza gruparii unor companii din Bucuresti pe baza aplicarii


politicilor ecologice de mediu
Algoritmi de clusterizare

– Algoritmi ierarhici
– Algoritmi de partitionare (kmeans)
– Algoritmi aglomerativi (K-nn)
– Algoritmsi de tip grid (Ocluster)
Distanta
(distance measure)

Pentru a indeplini cerinta de a obtine clusteri compacti, cu


elemente asemanatoare, este nevoie de un procedeu de
apreciere a asemanarii / diferentierii
Tipuri de distanta des folosite:
– Seuclid – patratul distantei euclidiene: d(X, Y) = σ ( 푥푖 −
푦푖 )2
– Euclid – distanta euclidiana: d(X, Y) = σ ( 푥푖 −
푦푖 )2
– Bloc (Manhattan) – suma abaterilor: d(X, Y) = σ | 푥푖 −
푦푖 |
– Chebychev – abaterea maxima: d(X, Y) = max|xi-yi|
– Minkowski – distanta euclidiana generalizata
Metode de grupare ierarhica
(linkage methods)

– Gruparea prin legatura simpla - Single linkage or nearest


neighbor
– Gruparea prin legatura complete - Complete linkage or
furthest neighbor
– Metoda gruparii prin legatura medie - Baverage (Average
linkage betweeng groups)
– Metoda centroida
– Metoda variantei minime / Ward
Metode de grupare ierarhica

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

– In grafic avem două clase: prima cu elementele A, B, C, şi D, iar a doua cuelementele P, Q şi


R.
– In prima clasă centrul de greutate - O1, în clasa a doua centrul de greutate - O2.
După metoda vecinilor celor mai apropiaţi, distanţa dintre cele două clase este dată de distanţa
de la punctul C la punctul P.
După metoda vecinilor celor mai depărtaţi, distanţa între clase e dată de distanţa dintre A şi R.
După metoda agregării prin medii, distanţa dintre clase este distanţa dintre centrele lor de
greutate, marcate cu O1 şi O2.
Reprezentare grafica
Dendrograma
Cod in R
Etape

– Tendinta de clusterizare

– Hopkins statistics (> 0.5  statistically significant clusters)

– Determinarea algoritmului de clusterizare si numarului de


grupe

– Stabilirea metodei de grupare


– Jaccard coefficient (> 0.6)

– 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

# Validate Cluster Results


# nClust - A numeric vector giving the numbers of clusters to be evaluated. e.g., 2:6 would evaluate
the number of clusters ranging from 2 to 6
# clMethods - A character vector giving the clustering methods. Available options are
"hierarchical", "kmeans", "diana", "fanny", "som", "model", "sota", "pam", "clara", and "agnes",
with multiple choices allowed.
# validation - A character vector giving the type of validation measures to use. Available options
are "internal", "stability", and "biological", with multiple choices allowed
clv1 <- clValid(express, 2:6, clMethods=c("hierarchical","kmeans"),
validation=c("internal","stability"))
res2 <- getRanksWeights(clv1)
getRanksWeights(clv1)
if(require("RankAggreg")) {
CEWS <- RankAggreg(x=res2$ranks, k=10, weights=res$weights, seed=123, verbose=FALSE)
CEWS
}
Cod in R

# Clusterwise Cluster Stability Assessment By Resampling


# stability of a cluster # linkage methods # k = nb of clusters established
cf1 <- clusterboot(dist(express),B=3,bootmethod= "subset",clustermethod=disthclustCBI, k=?, cut="number",
method="average", showplots=TRUE, seed=15555)
print(cf1)
cf2 <- clusterboot(dist(express),B=3,bootmethod= "subset",clustermethod=disthclustCBI, k=?, cut="number",
method="ward.D", showplots=TRUE, seed=15555)
print(cf2)
cf3 <- clusterboot(dist(express),B=3,bootmethod= "subset",clustermethod=disthclustCBI, k=?, cut="number",
method="single", showplots=TRUE, seed=15555)
print(cf3)
cf4 <- clusterboot(dist(express),B=3,bootmethod= "subset",clustermethod=disthclustCBI, k=?, cut="number",
method="complete", showplots=TRUE, seed=15555)
print(cf4)
cf5 <- clusterboot(dist(express),B=3,bootmethod= "subset",clustermethod=disthclustCBI, k=4?, cut="number",
method="centroid", showplots=TRUE, seed=15555)
print(cf5)
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

– Avem o baza de date “vanzari_auto” ce cuprinde preturi si


specificatii tehnice pentru diferite marci si modele de
automobile de lux.
– Utilizarea Analizei Cluster va conduce la gruparea
automobilelor cu cele mai mari vânzări în functie preţ şi
caracteristici tehnice.
Aplicatie
summary(vanzari_auto)
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

# Validate Cluster Results


# nClust - A numeric vector giving the numbers of clusters to be evaluated. e.g., 2:6 would evaluate
the number of clusters ranging from 2 to 6
# clMethods - A character vector giving the clustering methods. Available options are
"hierarchical", "kmeans", "diana", "fanny", "som", "model", "sota", "pam", "clara", and "agnes",
with multiple choices allowed.
# validation - A character vector giving the type of validation measures to use. Available options
are "internal", "stability", and "biological", with multiple choices allowed
clv1 <- clValid(express, 2:6, clMethods=c("hierarchical","kmeans"),
validation=c("internal","stability"))
res2 <- getRanksWeights(clv1)
getRanksWeights(clv1)
if(require("RankAggreg")) {
CEWS <- RankAggreg(x=res2$ranks, k=10, weights=res$weights, seed=123, verbose=FALSE)
CEWS
}
Aplicatie
Aplicatie

# Clusterwise Cluster Stability Assessment By Resampling


# stability of a cluster # linkage methods
cf1 <- clusterboot(dist(express),B=3,bootmethod= "subset",clustermethod=disthclustCBI, k=4, cut="number", method="average",
showplots=TRUE, seed=15555)
print(cf1)
cf2 <- clusterboot(dist(express),B=3,bootmethod= "subset",clustermethod=disthclustCBI, k=4, cut="number", method="ward.D",
showplots=TRUE, seed=15555)
print(cf2)
cf3 <- clusterboot(dist(express),B=3,bootmethod= "subset",clustermethod=disthclustCBI, k=4, cut="number", method="single",
showplots=TRUE, seed=15555)
print(cf3)
cf4 <- clusterboot(dist(express),B=3,bootmethod= "subset",clustermethod=disthclustCBI, k=4, cut="number", method="complete",
showplots=TRUE, seed=15555)
print(cf4)
cf5 <- clusterboot(dist(express),B=3,bootmethod= "subset",clustermethod=disthclustCBI, k=4, cut="number", method="centroid",
showplots=TRUE, seed=15555)
print(cf5)
Aplicatie
ward.D
Aplicatie
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!

S-ar putea să vă placă și

  • Curs 5
    Curs 5
    Document13 pagini
    Curs 5
    calingabi321
    Încă nu există evaluări
  • Curs 5
    Curs 5
    Document25 pagini
    Curs 5
    calingabi321
    Încă nu există evaluări
  • Curs 4 AEF
    Curs 4 AEF
    Document22 pagini
    Curs 4 AEF
    calingabi321
    Încă nu există evaluări
  • Curs 5
    Curs 5
    Document25 pagini
    Curs 5
    calingabi321
    Încă nu există evaluări
  • Curs 4
    Curs 4
    Document26 pagini
    Curs 4
    calingabi321
    Încă nu există evaluări
  • Curs 4
    Curs 4
    Document26 pagini
    Curs 4
    calingabi321
    Încă nu există evaluări
  • Curs 5
    Curs 5
    Document8 pagini
    Curs 5
    calingabi321
    Încă nu există evaluări
  • Curs 3.11.
    Curs 3.11.
    Document19 pagini
    Curs 3.11.
    Calin Dumitrache
    Încă nu există evaluări
  • Curs 3
    Curs 3
    Document15 pagini
    Curs 3
    Dumitrache Călin Gabriel
    Încă nu există evaluări
  • Sistem de Management Al Calitatii
    Sistem de Management Al Calitatii
    Document59 pagini
    Sistem de Management Al Calitatii
    calingabi321
    Încă nu există evaluări
  • Curs 4 AEF
    Curs 4 AEF
    Document22 pagini
    Curs 4 AEF
    calingabi321
    Încă nu există evaluări
  • Curs 4
    Curs 4
    Document13 pagini
    Curs 4
    calingabi321
    Încă nu există evaluări
  • Curs 3.11.
    Curs 3.11.
    Document19 pagini
    Curs 3.11.
    Calin Dumitrache
    Încă nu există evaluări
  • Curs 5 Asigurari
    Curs 5 Asigurari
    Document8 pagini
    Curs 5 Asigurari
    Gabriel Alexandru Antonescu
    Încă nu există evaluări
  • Curs 1
    Curs 1
    Document37 pagini
    Curs 1
    calingabi321
    Încă nu există evaluări
  • Sistem de Management Al Calitatii
    Sistem de Management Al Calitatii
    Document59 pagini
    Sistem de Management Al Calitatii
    calingabi321
    Încă nu există evaluări
  • 1 Tob
    1 Tob
    Document29 pagini
    1 Tob
    calingabi321
    Încă nu există evaluări
  • 2 Tob
    2 Tob
    Document38 pagini
    2 Tob
    calingabi321
    Încă nu există evaluări
  • Capital Uman PPT Seminar 2
    Capital Uman PPT Seminar 2
    Document18 pagini
    Capital Uman PPT Seminar 2
    calingabi321
    Încă nu există evaluări
  • Curs 2
    Curs 2
    Document21 pagini
    Curs 2
    calingabi321
    Încă nu există evaluări
  • Curs 2
    Curs 2
    Document21 pagini
    Curs 2
    calingabi321
    Încă nu există evaluări
  • Curs 1
    Curs 1
    Document37 pagini
    Curs 1
    calingabi321
    Încă nu există evaluări
  • 1 Tob
    1 Tob
    Document29 pagini
    1 Tob
    calingabi321
    Încă nu există evaluări
  • PPT4
    PPT4
    Document5 pagini
    PPT4
    calingabi321
    Încă nu există evaluări
  • Capital Uman - PPT - Seminar - 1
    Capital Uman - PPT - Seminar - 1
    Document6 pagini
    Capital Uman - PPT - Seminar - 1
    Dumitrache Călin Gabriel
    Încă nu există evaluări
  • Analiza de Date 9 - AA
    Analiza de Date 9 - AA
    Document34 pagini
    Analiza de Date 9 - AA
    calingabi321
    Încă nu există evaluări
  • Capital Uman PPT Seminar 2
    Capital Uman PPT Seminar 2
    Document18 pagini
    Capital Uman PPT Seminar 2
    calingabi321
    Încă nu există evaluări
  • PPT3
    PPT3
    Document6 pagini
    PPT3
    calingabi321
    Încă nu există evaluări
  • Capital Uman - PPT - Seminar - 1
    Capital Uman - PPT - Seminar - 1
    Document6 pagini
    Capital Uman - PPT - Seminar - 1
    Dumitrache Călin Gabriel
    Încă nu există evaluări
  • Analiza de Date 6 - AA
    Analiza de Date 6 - AA
    Document40 pagini
    Analiza de Date 6 - AA
    calingabi321
    Încă nu există evaluări