====== KL-vztah kategoriálních atributů ======
\\
===== Příklad =====
Příkladem KL-vztahu je vztah kategoriálních atributů **DHodnoceni** a **DPersonal** vyjádřený KL-výrazem \\
**DHodnoceni** [TauB ≥ 0.94,SUM ≥ 113] **DPersonal** / **HMesto(//Praha//)** ∧ **PTypPobytu(//rekreační//)**, \\
kterému odpovídá výstup procedury KL-Miner uvedený v následujícím obrázku.
{{ :kl_vztah_priklad.png |}}
Uvedený KL-vztah se týká matice dat
[[https://lispminer.vse.cz/guhadi/doku.php?id=lm_guha_di_hotel_prehled_skupin|Hotel]]. Platí:
* KL-vztah se týká atributu [[https://lispminer.vse.cz/guhadi/doku.php?id=lm_guha_di_hotel_dotaznik#atribut_dhodnoceni|DHodnoceni]] s kategoriemi //nižší//, //průměr//, //vyšší// a atributu [[https://lispminer.vse.cz/guhadi/doku.php?id=lm_guha_di_hotel_dotaznik#atribut_dpersonal_ef3|DPersonal]] s kategoriemi //nespokojen//, //průměr//, //spokojen//.
* V levé části je KL-tabulka \\ KL(**DHodnoceni**,**DPersonal**, **Hotel** / **HMesto(//Praha//)** ∧ **PTypPobytu(//rekreační//)**. Tabulka uvádí frekvence pro kombinace kategorií atributů **DHodnoceni** a **Personal** v [[lm_guha_te_matice#podmatice_matice_dat|podmatici]] \\ **Hotel** / **HMesto(//Praha//)** ∧ **PTypPobytu(//rekreační//)** matice dat [[https://lispminer.vse.cz/guhadi/doku.php?id=lm_guha_di_hotel_prehled_skupin|Hotel]]. 45 řádků podmatice odpovídá kombinaci kategorií //nížší// + //nespokojen//, analogicky pro ostatní kombinace kategorií. V pravé části je sloupcový graf pro jednotlivé kombinace.
* Je zřejmé, že mezi atributy **DHodnoceni** a **DPersonal** je pozitivní pořadová korelace. To je vyjádřeno i hodnotou Kendallova korelačního koeficientu TauB. Platí TauB = 0.94.
* Podmatice dat** Hotel** / **HMesto(//Praha//) ∧ PTypPobytu(//rekreační//)** má celkem \\ 45 + 0 + 0 + ... + 0 + 1 + 45 = 113 řádků.
* Vztah kategoriálních atributů **DHodnoceni** a **DPersonal** je vyjádřený KL-výrazem \\ ** DHodnoceni** ↑↑[TauB ≥ 0.94,SUM ≥ 113] **DPersonal** / **HMesto(//Praha//) ∧ PTypPobytu(//rekreační//)**, \\ který je pravdivý pro matici dat **Hotel**.
===== KL-vztah a KL-výraz =====
KL-vztahem rozumíme vztah dvou kategoriálních atributů na podmatici matice dat. Pro vyjádření \\ KL-vztahu se používá KL-výraz **R**≈**C**/χ kde
* **R**,**C** jsou [[lm_guha_te_matice|kategoriální atributy]]
* ≈ je [[lm_guha_te_tabulka#KL-kvantifikátor|KL-kvantifikátor]]
* χ je [[lm_guha_te_bool|booleovský atribut]].
KL-výraz **R**≈**C**/χ může být na dané matici **M** pravdivý nebo nepravdivý.
Pokud je pravdivý, pak říkáme, že kategoriální atributy **R** a **C** jsou na matici dat **M** ve vztahu daném KL-kvantifikátorem ≈, nebo že \\ KL-vztah **R**≈**C**/χ platí na matici dat **M**.
Určení, zda KL-vztah **R**≈**C**/χ [[lm_guha_te_tabulka#KL-vztah platí v matici dat|platí v matici dat]] **M** se provádí na základě [[lm_guha_te_tabulka#KL-tabulka|KL-tabulky]].
Výrazy //KL-vztah// a //KL-výraz// se obvykle používají jako synonyma.
===== KL-tabulka a podmíněná KL-tabulka=====
KL-tabulkou KL(**R**,**C**,**M/χ**) pro KL-vztah **R**≈**C**/χ a matici dat **M** rozumíme kontingenční tabulku
atributů **R** a **C** v podmatici **M/χ**, viz též následující obrázek.
{{ :kl_tabulka.png?400 |}}
KL-tabulku KL(**R**,**C**,**M/χ**) zapisujeme i ve stručné formě {ni,j}, případně {ni,j}K,L. Platí:
* Atribut **R** má kategorie r1,...,rK a atribut **C** má kategorie c1,...,cL.
* ni,j je počet řádků matice **M/χ** pro které atribut R nabývá hodnotu ri a atribut C hodnotu cj
* ni,* je počet řádků matice **M/χ** pro které atribut R nabývá hodnotu ri
* n*,j je počet řádků matice **M/χ** pro které atribut C nabývá hodnotu cj
* n je počet všech řádků matice **M/χ**.
Některé KL-kvantifikátory využívají i informaci o počtu řádků v celé matici dat **M**.
Proto definujeme \\ **podmíněnou tabulku** KLC(**R**,**C**,**M/χ**) jako dvojici ‹ {ni,j},nT › kde nT je počet řádků v celé matici dat **M**.
===== KL-kvantifikátor =====
Symbol "≈" v KL-vztahu **R**≈**C**/χ se nazývá KL-kvantifikátor. Definuje podmínku týkající se
dvojice \\ ‹ {ui,j}K,L, V › kde {ui,j}K,L je matice celých nezáporných čísel
o K řádcích a L sloupcích a V je celé číslo splňující V ≥ ΣiΣj ui,j.
Podobně jako pro [[lm_guha_te_pravidlo#4ft-kvantifikátor|4ft-kvantifikátor]], chápeme i
KL-kvantifikátor ≈ jako {0,1}-hodnotovou funkci ≈({ui,j}K,L, V).
Platí
* ≈({ui,j}K,L, V) = 1 pokud je podmínka daná KL-kvantifikátorem ≈ splněna pro matici {ui,j}K,L a číslo V
* ≈({ui,j}K,L, V) = 0 pokud podmínka daná KL-kvantifikátorem ≈ pro matici {ui,j}K,L a číslo V splněna není.
KL-kvantifikátory implementované v GUHA proceduře KL-Miner jsou popsány [[lm_guha_te_kl_kvantifikator|zde]].
===== KL-vztah platí v matici dat =====
Platnost KL-vztahu **R**≈**C**/χ v matici dat **M** je definována pomocí KLC(**R**,**C**,**M/**χ) tabulky \\
KLC(**R**,**C**,**M/**χ) = ‹ {ni,j},nT › takto:
* **R**≈**C**/χ platí v matici dat **M** pokud ≈({ni,j},nT) = 1, formálně zapisujeme Val(**R**≈**C**/χ, **M**) = 1. Pokud není nebezpečí nedorozumění, píšeme pouze ≈(**R**,**C**,χ, **M**) = 1.
* **R**≈**C**/χ neplatí v matici dat **M** pokud ≈({ni,j},nT) = 0, formálně zapisujeme Val(**R**≈**C**/χ, **M**) = 0. Pokud není nebezpečí nedorozumění, píšeme pouze ≈(**R**,**C**,χ, **M**) = 0.