Multzokatze hierarkiko

Datu-meatzaritzan eta estatistikan, **multzokatze hierarkikoa** multzoen hierarkia bat sortzen duen multzoen analisirako metodo bat da. Sortutako multzoen hierarkia dendrograma baten bidez adierazten da. Multzokatzea modu hierarkikoan egiteko bi estrategia mota daude:

* **Pilatzaileak**: Behetik gorako metodoak dira. Hasieran, elementu edo kasu bakoitzak multzo bat osatzen du eta gertueneko multzoak elkarri batuz, kasu guztiak multzo bakar batean multzokatzea lortzen da.
* **Zatitzaileak**: Goitik beherako metodoak dira. Hasieran, elementu edo kasu guztiek multzo bakar bat osatzen dute eta multzoa urratsez urrats bitan zatituko da, azkenean multzo bakoitzak kasu bakarra izango duen arte.

## Multzoen bereizketa 
### Metrika 
Multzokatze hierarkikoan, metodo pilatzaileek gertueneko multzoak batzen dituzte eta metodo zatitzaileek multzoa bitan zatitzen dute. Elkarri batuko diren edo zatituak izango diren multzoak algoritmoaren iterazio bakoitzean aukeratu behar dira. Aukeraketa hori egiteko irizpide bat behar da, erabiltzen den distantziaren arabera elkarri gertuen dauden multzoak desberdinak izan daitezkeelako. Metrika erabilienak honakoak dira:
.

Testuetarako edo zenbakizkoak ez diren datuetarako, Hamming-en distantzia edota Levenshtein-en distantzia erabiltzen dira.

Osasunerako psikologian erabilitako multzokatze analisian egindako ikerketa batean, ohikoenak ziren distantziak Euklidearra eta Euklidear karratua zirela ondorioztatu zuten.

### Lotura irizpideak 
Lotura irizpidearen arabera, multzoen arteko distantzia definitzen da. Multzoetako kasuen arteko distantzien kalkuluan oinarritzen dira multzoen arteko distantzia definitzen dute irizpideak.

*A* eta *B* multzoak izanik, hona hemen oso sarri erabili ohi diren lotura irizpide batzuk: 

 \sum_{a \in A }\sum_{ b \in B} d(a,b). 
|-
| Zentroideen arteko distantzia
|  \|c_s - c_t \|  non c_s eta c_t *s* eta *t* multzoen zentroideak diren, hurrenez hurren.
|-
| Energia minimoa
|   \frac {2}{nm}\sum_{i,j=1}^{n,m} \|a_i- b_j\|_2 - \frac {1}{n^2}\sum_{i,j=1}^{n} \|a_i-a_j\|_2 - \frac{1}{m^2}\sum_{i,j=1}^{m} \|b_i-b_j\|_2 
|}
non *d* aukeratutako metrika den. Badaude beste lotura irizpide batzuk, baina erabilienak horiek dira.

Multzokatze hierarkikoan edozein distantzia mota erabil daiteke. Izan ere, multzoa osatzen duten kasuak edo elementuak izatea ez da beharrezkoa, haien arteko distantziez osatutako matrizea erabiltzen baita.

## Algoritmoen konplexutasuna 
Oro har, multzoen banaketa eta elkarketa horiek algoritmo irenskor baten bidez egiten dira.

Multzokatze hierarkikorako algoritmo arruntak \mathcal{O}(n^3)-ko konplexutasun denbora du eta \mathcal{O}(n^2)-ko memoria behar izaten du. Horrek, algoritmoa nahiko motela izatea eragiten du. Hala ere, \mathcal{O}(n^2) konplexutasuna duten metodo pilatzaile optimo eraginkorrak ezagutzen dira, zenbait kasu partikularretan erabil daitezkeenak: SLINK

distantzia minimoko multzokatzerako eta CLINK
distantzia maximoko multzokatzerako.

Distantzia minimoko multzokatzea erabiltzen duten kasu partikular batzuetatik aparte, ez dago soluzio optimo bat aurkitu dezakeela bermatzen duen beste algoritmorik (\mathcal{O}(2^n)-ko bilaketa zehatza (exhaustiboa) izan ezik). Hala ere, ohikoa da azkarragoak diren hurbilpen algoritmoak erabiltzea, adibidez, partiziozko multzokatzea (ingelesez ***k-means***).

## Adibidea. Multzokatze pilatzailea 
Demagun sei elementu ditugula {a}, {b}, {c}, {d}, {e} eta {f}. Haien arteko distantziak ezagunak dira (ikus irudia). Demagun distantzia euklidearra erabiliko dela.

frame|none|Kasuak multzokatu gabe

Metodo pilatzailearen bidez multzokatze hierarkikoa egitea, urrats bakoitzean gertueneko bi multzoak bakar batean elkartzea izan da. Honako dendrogramak erakusten du prozesu osoa:

frame|none|Kasuak hierarkikoki multzokatuta

Ikusten den bezala, hasieran elementu edo kasu bakoitzak multzo bat osatzen du. Hasierako urrats horretan, multzoen arteko distantzia elementuen arteko distantzia da. Gertueneko bi multzoak {*b*} eta {*c*} badira, haiek batu ondoren, {*a*}, {*b*, *c*}, {*d*}, {*e*} eta {*f*} multzoak lortzen dira. Multzokatze gehiago egin ahal izateko, multzoen arteko distantziak eguneratu egin behar dira; sortu berri den {*b*, *c*} multzotik gainerako multzoetarako distantziak kalkulatu egin behar dira. Horretarako, erabaki behar da zein lotura irizpideren arabera definituko den multzoen arteko distantzia.

Normalean distantzien taula bat eraikitzen da, non *i*. errenkadan eta *j*. zutabean dagoen elementuak *i* multzoaren eta *j* multzoaren arteko distantzia adierazten duen. Irizpide arruntenen kasurako, horrela kalkulatuko litzateke:
* Distantzia maximoa: Distantzia maximora dauden \mathcal{A} multzoko x elementuaren eta \mathcal{B} multzoko y elementuaren arteko distantziak definitzen du \mathcal{A} eta \mathcal{B} multzoen arteko distantzia.
:: \max \{\, d(x,y) : x \in \mathcal{A},\, y \in \mathcal{B}\,\}. 
* Distantzia minimoa: Distantzia minimora dauden \mathcal{A} multzoko x elementuaren eta \mathcal{B} multzoko y elementuaren arteko distantziak definitzen du \mathcal{A} eta \mathcal{B} multzoen arteko distantzia.
:: \min \{\, d(x,y) : x \in \mathcal{A},\, y \in \mathcal{B} \,\}. 
* Batezbesteko distantzia: Bi multzoetako elementu guztien arteko batezbesteko distantziak definitzen du \mathcal{A} eta \mathcal{B} multzoen arteko distantzia.
:: {1 \over }\sum_{x \in \mathcal{A}}\sum_{ y \in \mathcal{B}} d(x,y). 

Prozesua amaituko da elementu guztiak multzo bakar batean daudenean. Urratsez urrats elkartu diren multzoak zein izan diren eta haien arteko distantzia zein den adieraziz eraikitzen da prozesu osoa adierazten duen dendrograma.

Multzokatze hierarkikorako metodoa aplikatzearen ondorioz lortu den multzokatzea zein den erabakitzeko, zuhaitza mailaren batean moztu behar da. Adibidean, dendrograma bigarren errenkadan moztuz, {a}, {b, c}, {d,e}, {f} multzokatzea lortzen da (4 multzo). Hirugarren errenkadaren ondoren moztuz, {a}, {b,c}, {d,e,f} multzokatzea lortzen da (3 multzo). Multzokatze horien artean egokiena zein den erabaki ahal izateko, ebaluazio irizpideren bat erabiltzea beharrezkoa gertatzen da.

## Multzokatze zatitzailea 
Multzokatze hierarkikorako metodo zatitzaileek DIANA (ingeleraz, "DIvisive ANAlysis Clustering") algoritmoan dteu jatorria.
 Algoritmoaren hasieran, kasu guztiak multzo bakar batean daude eta algoritmoaren urrats bakoitzean multzo handiena zatitzen da, kasu bakoitza multzo bakar batean geratu arte.

Multzoak zatitzeko O(2^n) modu existitzen direnez, metodo heuristikoren bat behar da. Horretarako, DIANA algoritmoak batezbestean desberdintasun handiena duen azpimultzoa aukeratzen du, horiekin multzo berri bat sortzeko. Ondoren, gertuen dauden kasuak sartuko zaizkio.

## Softwarea 
### Kode irekikoak 
[thumb|Iris lorearen datu multzoarekin lortutako dendrogramaren multzokatze hierarkikoa ([R (programazio lengoaia)|R erabiliz). Iturria ]]

* Octave, MATLAB-en parekoa GNU proiektuan.
* R lengoaiak multzokatze hierarkikorako funtzio asko ditu.
* SciPy liburutegiak multzokatze hierarkikoa eskaintzen du, Pythonen inplementatua. Oso eraginkorra den SLINK algoritmoa ere badu.
* Weka ingurunean multzokatze hierarkikoa erabili daiteke.

### Inplementazio komertzialak 
* MATLAB multzokatze hierarkikoa inplementatuta dauka.
* Mathematica programak multzokatze hierarkikorako pakete bat dauka.
* SPSS paketeak multzokatze hierarkikoa egiteko aukera ematen du.

## Erreferentziak 
## Ikus, gainera 
* Multzokatze (estatistika)
* Dendrograma

## Kanpo estekak