K-tähendab ClusterR programmeerimine näitega

⚡ Nutikas kokkuvõte

K-tähendab ClusterR-is rühmitatakse vaatlusi, minimeerides iga punkti ja selle klastri tsentroidi vahelist kaugust. See samm standardiseerib arvutipõhiste hindade andmestikku, animeerib algoritmi, leiab küünarnukimeetodi abil optimaalse k ja loeb klastreid soojuskaardi abil.

  • 🧭 Järelevalveta meetod: Clusteravastab struktuuri ja loob sildi, selle asemel et ennustada teadaolevat tulemust.
  • 📐 Esmalt standardiseeri: scale() annab igale muutujale keskmiseks nulli ja standardhälbeks ühe, seega ükski veerg ei domineeri vahemaa üle.
  • 🔄 Iteratiivne tsükkel: Määrake punktid lähimale tsentroidile, arvutage tsentroidid uuesti ja korrake, kuni klastris enam ühtegi muutust ei toimu.
  • 📉 K valimine: Joonesta tot.withinss vahemikus k ja võta küünarnukk, punkt, kus lisaklastrid enam ei tasu.
  • 🎲 Reprodutseeritavus: Tulemused varieeruvad käivitamiste vahel, seega set.seed() fikseerib alguspunkti ja nstart = 25 säilitab parima paljudest käivitustest.
  • 🌡️ Suuline tõlge: Skaalatud keskpunktide soojuskaart näitab lühidalt, milline muutuja määratleb iga klastri.

K Tähendab Clustersisse R

Mis on Cluster analüüs?

Cluster analüüs kuulub järelevalveta õppimine. Klaster on andmete rühm, millel on sarnased funktsioonid. Võime öelda, et rühmitusanalüüs on rohkem avastamine kui ennustus. Masin otsib andmetes sarnasust. Näiteks saate klastrianalüüsi kasutada järgmise rakenduse jaoks:

  • Klientide segmenteerimine: otsib sarnasust kliendirühmade vahel
  • Aktsiaturgude klasterdamine: Grupi aktsiad tootluste põhjal
  • Andmestiku dimensioonilisuse vähendamine grupi järgiping sarnaste väärtustega vaatlused

ClusterAnalüüsi elluviimine ei ole liiga keeruline ning see on ettevõtte jaoks nii mõttekas kui ka rakendatav.

Kõige silmatorkavam erinevus juhendatud ja juhendamata õppimise vahel peitub tulemustes. Juhendajata õppimine loob uue muutuja, sildi, samas kui juhendatud õpe ennustab tulemust. Masin aitab praktiseerijal andmeid tiheda seotuse alusel märgistada. Analüütiku ülesanne on rühmi ära kasutada ja neile nime anda.

Toome näite, et mõista klastrite kontseptsiooni. Lihtsuse huvides töötame kahemõõtmeliselt. Teil on andmed klientide kogukulu ja nende vanuse kohta. Reklaami parandamiseks soovib turundusmeeskond saata oma klientidele rohkem suunatud e-kirju.

Järgmisel graafikul kujutate kogukulu ja klientide vanust.

library(ggplot2)
df <- data.frame(age = c(18, 21, 22, 24, 26, 26, 27, 30, 31, 35, 39, 40, 41, 42, 44, 46, 47, 48, 49, 54),
    spend = c(10, 11, 22, 15, 12, 13, 14, 33, 39, 37, 44, 27, 29, 20, 28, 21, 30, 31, 23, 24)
)
ggplot(df, aes(x = age, y = spend)) +
    geom_point()

Cluster Analüüs

Sellel hetkel on näha muster

  1. Vasakpoolses allnurgas näete madalama ostujõuga noori
  2. Ülemine keskmine peegeldab inimesi, kellel on töö, mida nad saavad lubada rohkem kulutada
  3. Lõpuks väiksema eelarvega vanemad inimesed.

Cluster Analüüs

Ülaltoodud joonisel koondate vaatlused käsitsi ja määratlete kõik kolm rühma. See näide on mõneti otsekohene ja väga visuaalne. Kui andmekogumile on lisatud uusi vaatlusi, saate need ringides sildistada. Te määratlete ringi meie hinnangu põhjal. Selle asemel võite kasutada Masinõpe et andmeid objektiivselt rühmitada.

Sellest õpetusest saate teada, kuidas kasutada k-tähendab algoritm.

K-keskmiste algoritm

K-keskmised on kõige laialdasemalt kasutatav klastrite moodustamise meetod. Algoritm pärineb 1950. aastatest ja seda on sellest ajast alates mitu korda täiustatud.

Algoritm püüab leida rühmi, minimeerides vaatluste vahelist kaugust, nn kohalik optimaalne Lahendused. Vahemaid mõõdetakse vaatluste koordinaatide põhjal. Näiteks kahemõõtmelises ruumis on koordinaadid lihtsalt x ja y.

K-tähendab algoritmi

Algoritm töötab järgmiselt:

  • 1. samm: Valige tunnuste ruumist juhuslikult k algkeskmeid
  • 2. samm: määrake iga vaatlus lähimasse klastri keskpunkti ehk tsentroidSee tekitab k rühma
  • Samm 3: Shift esialgne tsentroid rühmasiseste koordinaatide keskmisele.
  • 4. samm: minimeerige kaugus vastavalt uutele tsentroididele. Luuakse uued piirid. Seega liiguvad vaatlused ühest rühmast teise
  • Korrake, kuni ükski vaatlus ei muuda rühmi

K-keskmine mõõdab tavaliselt kahe vaatluspunkti x ja y vahelist eukleidilist kaugust:

K-tähendab algoritmi

Saadaval on ka teisi mõõdikuid, näiteks Manhattani või Minkowski kaugus. Pane tähele, et K-mean tagastab iga kord algoritmi käivitamisel erinevad rühmad. Tuleta meelde, et esimesed esialgsed oletused on juhuslikud ja arvuta vahemaid seni, kuni algoritm saavutab rühmades homogeensuse. See tähendab, et k-mean on esimese valiku suhtes väga tundlik ja kui vaatluste ja rühmade arv pole väike, on peaaegu võimatu saada sama klastrite arvu.

Klastrite arvu valimine

Teine k-keskmise puhul esinev raskus on klastrite arvu valik. Rühmasisese homogeensuse parandamiseks saab k väärtuseks määrata suure väärtuse, mis tähendab suurt hulka rühmi, kuid riskite sellega, et üleliigne andmed. Ülesobitamine tähendab, et uute andmete puhul langeb jõudlus järsult, kuna mudel on meelde jätnud selle konkreetse valimi müra, mitte aluseks oleva mustri.

Klastrite arv sõltub andmekogumi olemusest, tööstusest, ärist jne. Siiski on olemas rusikareegel sobiva arvu klastrite valimiseks:

Valige number Clusters

kus n on andmestikus olevate vaatluste arv.

Praktikas tasub kulutada aega k väärtuse otsimisele, mis sobib kõige paremini ettevõtte vajadustega.

Klasterdamisanalüüsi läbiviimiseks kasutame personaalarvutite hindade andmestikku. See andmestik sisaldab 6259 vaatlust ja 10 funktsiooni. Andmekogum jälgib USA-s 1993 personaalarvuti hinda aastatel 1995–486. Muutujad on muu hulgas hind, kiirus, ram, ekraan, cd.

Te jätkate järgmiselt:

  • Andmete importimine
  • Treeni modelli
  • Hinnake mudelit

Andmete importimine

K-keskmised ei sobi faktormuutujate jaoks, kuna see töötab vahemaade puhul ja diskreetsetel siltidel pole omavahel olulist vahemaad. Eemaldage kolm kategoorilist veergu (cd, multi, premium) koos reaindeksiga X. See andmestik ei sisalda puuduvaid väärtusi.

library(dplyr)
PATH <-"https://raw.githubusercontent.com/guru99-edu/R-Programming/master/computers.csv"
df <- read.csv(PATH) %>%
select(-c(X, cd, multi, premium))
glimpse(df)

Väljund

## Observations: 6,259
## Variables: 7
## $ price <int> 1499, 1795, 1595, 1849, 3295, 3695, 1720, 1995, 2225, 2...
## $ speed <int> 25, 33, 25, 25, 33, 66, 25, 50, 50, 50, 33, 66, 50, 25, ...
## $ hd <int> 80, 85, 170, 170, 340, 340, 170, 85, 210, 210, 170, 210...
## $ ram <int> 4, 2, 4, 8, 16, 16, 4, 2, 8, 4, 8, 8, 4, 8, 8, 4, 2, 4, ...
## $ screen <int> 14, 14, 15, 14, 14, 14, 14, 14, 14, 15, 15, 14, 14, 14, ...
## $ ads <int> 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, ...
## $ trend  <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1...

Kokkuvõtlikust statistikast näete, et andmetel on suured väärtused. Enne mis tahes kaugusel põhineva meetodi kasutamist on hea tava andmed standardiseerida nii, et igal muutujal oleks keskmine null ja standardhälve üksIlma selleta domineeriks hind, mille väärtused ulatuvad tuhandetesse, kauguse arvutamisel ja ekraani suurus ei loeks peaaegu midagi.

summary(df)

Väljund:

##      price          speed              hd              ram        
##  Min.   : 949   Min.   : 25.00   Min.   :  80.0   Min.   : 2.000  
##  1st Qu.:1794   1st Qu.: 33.00   1st Qu.: 214.0   1st Qu.: 4.000
##  Median :2144   Median : 50.00   Median : 340.0   Median : 8.000  
##  Mean   :2220   Mean   : 52.01   Mean   : 416.6   Mean   : 8.287  
##  3rd Qu.:2595   3rd Qu.: 66.00   3rd Qu.: 528.0   3rd Qu.: 8.000  
##  Max.   :5399   Max.   :100.00   Max.   :2100.0   Max.   :32.000  
##      screen           ads            trend      
##  Min.   :14.00   Min.   : 39.0   Min.   : 1.00  
##  1st Qu.:14.00   1st Qu.:162.5   1st Qu.:10.00  
##  Median :14.00   Median :246.0   Median :16.00  
##  Mean   :14.61   Mean   :221.3   Mean   :15.93  
##  3rd Qu.:15.00   3rd Qu.:275.0   3rd Qu.:21.50  
##  Max.   :17.00   Max.   :339.0   Max.   :35.00

Muutujate skaala muutmine toimub dplyr teegi funktsiooni scale() abil. Teisendus vähendab kõrvalekallete mõju ja võimaldab võrrelda ainuvaatlust keskmisega. Kui standardväärtus (või z-skoor) on kõrge, võite olla kindel, et see tähelepanek on tõepoolest keskmisest kõrgem (suur z-skoor tähendab, et see punkt on standardhälbe poolest keskmisest kaugel. Z-skoor kaks näitab, et väärtus on 2 standard kõrvalekalded keskmisest. Pange tähele, et z-skoor järgib Gaussi jaotust ja on keskmise ümber sümmeetriline.

# Note: speed is deliberately left out of the scaled data frame
rescale_df <- df %>%
    mutate(price_scal = scale(price),
    hd_scal = scale(hd),
    ram_scal = scale(ram),
    screen_scal = scale(screen),
    ads_scal = scale(ads),
    trend_scal = scale(trend)) %>%
select(-c(price, speed, hd, ram, screen, ads, trend))

R baasil on funktsioon k keskmise algoritmi käivitamiseks. K-keskmise põhifunktsioon on:

kmeans(df, k)
arguments:
-df: dataset used to run the algorithm
-k: Number of clusters

Treeni modelli

Joonisel kolm kirjeldasite algoritmi toimimist. Iga sammu saate graafiliselt vaadata Yihui Xie kirjutatud animatsioonipaketi abil, kes lõi ka R Markdowni jaoks knitr'i. Pakett ei asu conda kanalites, seega installige see CRAN-ist:

install.packages("animation")

Pärast teegi laadimist lisate .ani pärast kmeans ja R joonistab kõik sammud. Illustratsiooni eesmärgil käitate algoritmi ainult kolme klastriga muudetud muutujatega hd ja ram.

set.seed(2345)
library(animation)
kmeans.ani(rescale_df[2:3], 3)

Code Selgitus

  • kmeans.ani(rescale_df[2:3], 3): valige andmestiku rescale_df veerud 2 ja 3 ning käivitage algoritm k komplektiga väärtusele 3. Joonistage animatsioon.

Treenige mudelit

Treenige mudelit

Animatsiooni saate tõlgendada järgmiselt:

  • 1. samm: R valib juhuslikult kolm punkti
  • 2. samm: arvutage välja Eukleidiline kaugus ja joonistage klastrid. Teil on üks roheline kobar all vasakul, üks suur musta värvi kobar paremal ja punane nende vahel.
  • 3. samm: arvutage välja tsentroid, st klastrite keskmine
  • Korrake, kuni andmed ei muuda klastrit

Algoritm lähenes seitsme iteratsiooni järel. Saate käivitada meie viie klastriga andmestiku k-keskmise algoritmi ja nimetada seda pc_cluster.

pc_cluster <-kmeans(rescale_df, 5)

Loendis pc_cluster on seitse kasulikku elementi:

  • pc_cluster$cluster: Igale vaatlusele määratud klaster
  • pc_cluster$centers: klastri keskused
  • pc_cluster$totss: ruutude kogusumma
  • pc_cluster$withinss: Ruutude summa piires üks väärtus klastri kohta
  • pc_cluster$tot.withinss: withinss-i summa
  • pc_cluster$betweenss: Ruutude kogusumma miinus seespool olev ruutude summa
  • pc_cluster$size: vaatluste arv igas klastris

Klastrite optimaalse arvu k arvutamiseks kasutate ruudu sisesumma (st tot.withinss) summat. K leidmine on tõepoolest oluline ülesanne.

Kuidas leida optimaalne k küünarnukimeetodi abil

Ühte tehnikat parima k valimiseks nimetatakse küünarnuki meetod. See meetod kasutab varieeruvuse hindamiseks rühmasisest homogeensust või rühmasisest heterogeensust. Teisisõnu huvitab teid iga klastri seletatav dispersiooni protsent. Võite eeldada, et varieeruvus suureneb koos klastrite arvuga, alternatiivselt väheneb heterogeensus. Meie väljakutse on leida k, mis jääb kahanevatest tuludest kaugemale. Uue klastri lisamine ei paranda andmete varieeruvust, sest selgitamiseks on jäänud väga vähe teavet.

Selles õpetuses leiame selle punkti heterogeensuse mõõtmise abil. Klastrite kogusumma ruutude summa on tot.withinss loendis, mille tagastab kmean().

Saate koostada küünarnuki graafiku ja leida optimaalse k järgmiselt:

  • 1. samm: konstrueerige funktsioon klastrite ruutude summa arvutamiseks
  • 2. samm: Käivitage algoritm k väärtuste vahemikus
  • 3. samm: looge andmeraam algoritmi tulemustega
  • 4. samm: joonistage tulemused

Step 1) Koostage funktsioon klastrite ruutude summa arvutamiseks

Loote funktsiooni, mis käivitab k-keskmise algoritmi ja salvestate kogusumma klastrite ruutude summa

kmean_withinss <- function(k) {
    cluster <- kmeans(rescale_df, k)
    return (cluster$tot.withinss)
}

Code Selgitus

  • function(k): määrab funktsiooni argumentide arvu
  • kmeans(rescale_df, k): Käivita algoritm selle k väärtusega
  • return(cluster$tot.withinss): salvestab kogusumma klastrites ruutude summa

Testi funktsiooni, kui k on võrdne 2-ga.

Väljund:

## Try with 2 cluster
kmean_withinss(2)

Väljund:

## [1] 27087.07

Step 2) Käivitage algoritm n korda

Algoritmi käivitamiseks vahemikus k kasutate funktsiooni sapply(). See tehnika on kiirem kui silmuse loomine ja väärtuse salvestamine.

# Set maximum cluster 
max_k <-20 
# Run algorithm over a range of k 
wss <- sapply(2:max_k, kmean_withinss)

Code Selgitus

  • max_k <- 20: Määra k maksimaalseks väärtuseks 20
  • sapply(2:max_k, kmean_withinss): käivitage funktsioon kmean_withinss() vahemikus 2:max_k, st 2 kuni 20.

Step 3) Looge andmeraam algoritmi tulemustega

Kui funktsioon on kirjutatud ja testitud, käivitage see vahemikus 2 kuni 20 ja salvestage kõik tot.withinss väärtused.

# Create a data frame to plot the graph
elbow <-data.frame(2:max_k, wss)

Code Selgitus

  • data.frame(2:max_k, wss): looge andmeraam wss-is oleva algoritmihoidla väljundiga

Step 4) Joonistage tulemused

Joonistate graafiku, et visualiseerida, kus on küünarnuki punkt

# Plot the graph with gglop
ggplot(elbow, aes(x = X2.max_k, y = wss)) +
    geom_point() +
    geom_line() +
    scale_x_continuous(breaks = seq(1, 20, by = 1))

Optimaalne k

Graafikult on näha, et optimaalne k on seitse, kus kõver hakkab kahanema.

Kui teil on optimaalne k, käivitate algoritmi uuesti, kus k on 7, ja hindate klastreid.

Klastrite uurimine

pc_cluster_2 <-kmeans(rescale_df, 7)

Nagu varem mainitud, pääsete juurde ülejäänud huvitavale teabele loendis, mille kmean() tagastab.

pc_cluster_2$cluster
pc_cluster_2$centers
pc_cluster_2$size

Hindamine on subjektiivne ja sõltub klastrite otstarbest. Eesmärk on grupeerida sarnaste spetsifikatsioonidega arvutid. Valdkonnaekspert saaks seda käsitsi teha, kuid protsess oleks aeglane ja veaohtlik. K-tähendab, kas rühm...ping objektiivselt ja jätab eksperdile tulemuse tõlgendamise ja nimetamise.

Eelhinnanguna saate uurida klastrite suurust.

pc_cluster_2$size

Väljund:

## [1] 608 1596 1231  580 1003  699  542

Suurim klaster, number 2, sisaldab 1,596 vaatlust, samas kui väikseim, number 7, sisaldab ainult 542 arvutit. Klastrite vaheline homogeensus võib olla hea, vastasel juhul võib olla vaja õhemat andmetöötlust.

Keskmise komponendi abil saate andmetest sügavama ülevaate. Read tähistavad klastri numeratsiooni ja veerud algoritmi poolt kasutatavaid muutujaid. Väärtused on iga klastri keskmine skoor vastava veeru kohta. Standardiseerimine muudab tõlgendamise lihtsamaks. Positiivsed väärtused näitavad, et antud klastri z-skoor on üldisest keskmisest kõrgem. Näiteks 4. klastril on kõrgeim keskmine hind (price_scal = 1.09), samas kui 5. klastril on see madalaim (-0.82).

center <-pc_cluster_2$centers
center

Väljund:

##   price_scal    hd_scal     ram_scal screen_scal   ads_scal trend_scal
## 1 -0.6372457 -0.7097995 -0.691520682  -0.4401632  0.6780366 -0.3379751
## 2 -0.1323863  0.6299541  0.004786730   2.6419582 -0.8894946  1.2673184
## 3  0.8745816  0.2574164  0.513105797  -0.2003237  0.6734261 -0.3300536
## 4  1.0912296 -0.2401936  0.006526723   2.6419582  0.4704301 -0.4132057
## 5 -0.8155183  0.2814882 -0.307621003  -0.3205176 -0.9052979  1.2177279
## 6  0.8830191  2.1019454  2.168706085   0.4492922 -0.9035248  1.2069855
## 7  0.2215678 -0.7132577 -0.318050275  -0.3878782 -1.3206229 -1.5490909

Saate luua ggploti abil soojuskaardi, mis aitab meil kategooriate erinevusi esile tuua.

Ggploti vaikevärve tuleb RColorBreweri teegiga muuta. Võite kasutada conda raamatukogu ja terminalis käivitatav kood:

conda install -c r r-rcolorbrewer

Soojuskaardi loomiseks toimige kolmes etapis:

  • Koostage andmeraam keskuse väärtustega ja looge muutuja klastri numbriga
  • Kujundage andmed ümber tidyr teegi funktsiooni kogumine() abil. Soovite andmeid laiadest pikkadeks muuta.
  • Looge värvipalett värvigaRampPalette() funktsioon

Step 1) Looge andmeraam

Loome ümberkujundamise andmestiku

library(tidyr)

# create dataset with the cluster number

cluster <- c(1: 7)
center_df <- data.frame(cluster, center)

# Reshape the data

center_reshape <- gather(center_df, features, values, price_scal: trend_scal)
head(center_reshape)

Väljund:

##   cluster   features     values
## 1       1 price_scal -0.6372457
## 2       2 price_scal -0.1323863
## 3       3 price_scal  0.8745816
## 4       4 price_scal  1.0912296
## 5       5 price_scal -0.8155183
## 6       6 price_scal  0.8830191		

Step 2) Loo värvipalett

Allolev kood loob soojuskaardi värvipaleti.

library(RColorBrewer)
# Create the palette
hm.palette <-colorRampPalette(rev(brewer.pal(10, 'RdYlGn')),space='Lab')

Samm 3) Visualiseeri

Saate joonistada graafiku ja vaadata, kuidas klastrid välja näevad.

# Plot the heat map
ggplot(data = center_reshape, aes(x = features, y = cluster, fill = values)) +
    scale_y_continuous(breaks = seq(1, 7, by = 1)) +
    geom_tile() +
    coord_equal() +
    scale_fill_gradientn(colours = hm.palette(90)) +
    theme_classic()

Uurides Cluster

Kuidas saada reprodutseeritavaid K-keskmiste tulemusi funktsioonidega set.seed() ja nstart

Õpetuses märgitakse, et k-means tagastab igal käivitamisel erinevad rühmad. See ei ole iseärasus, millega leppida, vaid probleem kahe standardse lahendusega ja kumbagi ei kasutata ülaltoodud näidetes.

1. Fikseeri alguspunkt funktsiooniga set.seed(). Esialgsed tsentroidid loositakse juhuslikult, seega sama kutse annab iga kord erinevad klastrid. Seemne määramine muudab kogu analüüsi korratavaks:

set.seed(123)
pc_cluster_2 <- kmeans(rescale_df, 7)

2. Käivita mitu starti ja säilita parim nstart abil. Üks juhuslik algus võib koonduda halva lokaalse optimumini. Argument nstart käivitab algoritmi mitu korda erinevatest juhuslikest algustest ja tagastab selle, millel on ruutude summa piires madalaim summa:

set.seed(123)
pc_cluster_2 <- kmeans(rescale_df, centers = 7, nstart = 25)

Tavaliselt soovitatakse kakskümmend viis algust ja see maksab sellise suurusega andmestiku puhul väga vähe. Ilma selleta muutub küünarnukikõver ise ebastabiilseks, sest iga punkt graafikul pärineb ühest ebaõnnestunud või õnnelikust algusest. Varem defineeritud kmean_withinss() funktsioon tuleks seega kirjutada järgmiselt:

kmean_withinss <- function(k) {
    cluster <- kmeans(rescale_df, centers = k, nstart = 25)
    return (cluster$tot.withinss)
}

3. Tõsta iter.max väärtust, kui algoritm annab hoiatuse. Kui R teatab, et „ei koondunud 10 iteratsiooni jooksul”, siis andke edasi iter.max = 50, et anda sellele rohkem ruumi.

K-keskmised vs hierarhilised Clustersisse R

K-keskmised pole ainus saadaolev klastrite moodustamise meetod ja valik sõltub tavaliselt andmete suurusest ja sellest, kas te juba teate, mitu rühma soovite.

Kriteeriumid K-tähendab Hierarhiline
Klastrite arv Tuleb eelnevalt valida Valitud pärast dendrogrammi lõikamist
Tulemuste stabiilsus Varieerub juhusliku alguse järgi Deterministlik
Skaalautuvus Haldab väga suuri andmekogumeid Võitleb üle paari tuhande rea
Cluster kujundada Eeldab ligikaudu sfäärilisi, sarnase suurusega rühmi Paindlikum
Väljund Lame siltide komplekt Dendrogramm, mis näitab pesastatud struktuuri
R funktsioon kmeans(df, k) hclust(dist(df))
# Hierarchical alternative on the same scaled data
hc <- hclust(dist(rescale_df), method = "ward.D2")
plot(hc)
groups <- cutree(hc, k = 7)

6,259 vaatluse korral peab hierarhiline klasterdamine looma ligikaudu 19.6 miljonist paarist koosneva kaugusmaatriksi, mistõttu on selle andmestiku jaoks praktiline valik k-keskmised. Pange tähele, et k-keskmised eeldavad sarnase suuruse ja ligikaudu sfäärilise kujuga klastreid; kui see eeldus ei päde, käsitleb DBSCAN ebakorrapäraseid kujusid ja tuvastab erandid, selle asemel et iga punkti rühma sundida.

K-tähendab ClusterR-is: funktsioonide viide

Kõik selles õpetuses kasutatud funktsioonid on loetletud allpool:

Pakend Eesmärk funktsioon Argument
baas Treeni k-keskmine kmeans() df, k
Juurdepääsuklaster kmeans()$klaster
Cluster keskused kmeans()$keskused
Cluster suurused kmeans()$ suurus
Kokku ruutude summa piires kmeans()$tot.withinss Kasutatakse küünarnuki meetodil
Ruutude summa vahel kmeans()$betweenss
baas Reprodutseeritav jooks set.seed() seemneväärtus
baas Tulemuse stabiliseerimine kmeans(df, k, nstart = 25) nstart

KKK

Esialgsed tsentroidid valitakse juhuslikult, et algoritm saaks jääda erinevate lokaalsete optimumite juurde. Kasutage funktsiooni set.seed(), et muuta käivitamine korratavaks, ja nstart = 25, et säilitada parim paljudest juhuslikest käivitustest.

Jah, alati, kui muutujad kasutavad erinevaid ühikuid või vahemikke. K-keskmised mõõdavad kaugust, seega tuhandetes ulatuv skaleerimata hinnaveerg täidaks ekraanisuuruse veeru, mis on mõõdetud tollides.

Kasutame silueti meetodit, mis hindab, kui hästi iga punkt oma klastrisse sobib, või tühimiku statistikat. Mõlemad on saadaval factoextra paketi fviz_nbclust() kaudu.

K-keskmised võimaldavad klientide segmenteerimist, piltide värvide kvantiseerimist, anomaaliate tuvastamist ja dokumentide grupeerimist.pingSeda kasutatakse ka funktsioonide tihendamiseks enne, kui juhendatud mudelit nende peal treenitakse.

Jah. Tehisintellekti assistendid saavad lugeda klastrite keskpunktide tabelit ja pakkuda igale segmendile kirjeldavaid nimesid. Valideerida iga silti alusandmete suhtes, sest algoritm ei määra ise kunagi tähendust.

Võta see postitus kokku järgmiselt: