====== Dvojice histogramů a SDCF-výraz ======
==== Příklad ====
V následujícím obrázku jsou uvedeny histogramy \\
** DHodnoceni** / **POsob(//2//) ∧ POsobonoci(//vyšší//, //nejvyšší//)** \\
pro podmatice
**Hotel / HStat(//ČR//)** a **Hotel / HStat(//Německo//)** matice dat
[[https://lispminer.vse.cz/guhadi/doku.php?id=lm_guha_di_hotel_prehled_skupin|Hotel]].
{{ :priklad_dvojice_histogramu.png |}}
Pro histogram **DHodnocení / POsob(//2//) ∧ POsobonoci(//vyšší//, //nejvyšší//)** a matici dat **Hotel** tedy platí:
* pro podmatici **Hotel / HStat(//ČR//)** týkající se 157 hostů z ČR tento histogram roste
* pro podmatici dat **Hotel / HStat(//Německo//)** týkající se 72 hostů z Německa tento histogram klesá.
To lze vyjádřit pomocí [[lm_guha_te_histogram_2#SDCF-výraz|SDCF-výrazu]] \\
**HStat(//ČR//)** × **HStat(//Německo//)**: [↑↓, ≥157, ≥72] **DHodnocení / POsob(//2//) ∧ POsobonoci(//vyšší//, //nejvyšší//)**, \\
o kterém prohlásíme, že je pravdivý v matici dat **Hotel**.
Výraz [↑↓, ≥157, ≥72] je [[lm_guha_te_histogram_2#SDCF-kvantifikátor|SDCF-kvantifikátor]]. Ověření, zda daný [[lm_guha_te_histogram_2#SDCF-výraz je pravdivý|SDCF-výraz je pravdivý]] v dané matici dat se provádí na základě [[lm_guha_te_histogram_2#SDCF-tabulka|SDCF-tabulky]].
==== SDCF-výraz ====
SDCF-výraz má tvar α×β: ≈**A**/χ kde
* α,β,χ jsou [[lm_guha_te_bool|booleovské atributy]]
* **A** je [[lm_guha_te_matice|kategoriální atribut]]
* ≈ je [[lm_guha_te_histogram_2#SDCF-kvantifikátor|SDCF-kvantifikátor]].
SDCF-výraz je určen pro vyjádření rozdílu mezi histogramy **A**/α∧χ a **A**/β∧χ.
Pro popis tohoto rozdílu se používá [[lm_guha_te_histogram_2#SDCF-tabulka|SDCF-tabulka]] a
[[lm_guha_te_histogram_2#SDCF-kvantifikátor|SDCF-kvantifikátor]].
Histogram **A**/α∧χ na matici dat **M** je totéž jako histogram **A**/χ na podmatici **M/α**
a histogram **A**/β∧χ na \\ matici dat **M** je totéž jako histogram **A**/χ na podmatici **M/β**.
Rozdíl mezi histogramy **A**/α∧χ a **A**/β∧χ na \\ matici dat **M** můžeme tedy chápat jako rozdíl
mezi histogramem **A**/χ na podmatici **M/α** a histogramem \\ **A**/χ na podmatici **M/β**.
==== SDCF-tabulka ====
SDCF-tabulka udává všechny frekvence potřebné pro ověření pravdivosti SDCF-výrazu α×β:≈**A**/χ v matici dat **M**.
Značí se SDCF(**A**,α,β,χ,**M**).
Jedná se o dvojici K-tic celých nezáporných čísel SDCF(**A**,α,β,χ,**M**) = \\ ‹ CFα, CFβ › kde
CFα = ‹ nα,1,...,nα,K › a
CFβ = ‹ nβ,1,...,nβ,K ›.
Předpokládáme, že atribut **A** má kategorie
a1,...,aK. Potom nα,1,...,nα,K jsou frekvence kategorií
a1,...,aK v podmatici dat **M/α∧χ** a nβ,1,...,nβ,K jsou
frekvence kategorií a1,...,aK v podmatici dat **M/β∧χ**.
SDCF-tabulku prezentujeme také ve tvaru dle následujícího obrázku
{{ :sdcf_tabulka_obecna.png?300 |}}
SDCF-tabulka SDCF(**Dhodnocení**, \\ **HStat(//ČR//)**, **HStat(//Německo//)**,
**DHodnoceni** / **POsob(//2//)** ∧ **POsobonoci(//vyšší//, //nejvyšší//)**, **Hotel**) \\ pro ověření platnosti
SDCF-výrazu \\
**HStat(//ČR//)** × **HStat(//Německo//)**: [↑↓, ≥157, ≥72]
**DHodnoceni** / **POsob(//2//)** ∧ **POsobonoci(//vyšší//, //nejvyšší//)**, \\
v matici dat **Hotel** je v následujícím obrázku.
{{ :sdcf_tabulka_priklad.png?600 |}}
==== SDCF-kvantifikátor ====
Symbol ≈ v SDCF-výrazu α×β: ≈**A**/χ kde se nazývá SDCF-kvantifikátor. Definuje podmínku týkající se
dvojice K-tic celých nezáporných čísel //C//α a //C//β kde
//C//α = ‹ cα,1,...,cα,K › a
//C//β = ‹ cβ,1,...,cβ,K ›.
Podobně jako pro [[lm_guha_te_histogram#cf-kvantifikator|CF-kvantifikátor]], chápeme
SDCF-kvantifikátor ≈ jako {0,1}-hodnotovou funkci ≈(//C//α, //C//β) týkající se K-tic //C//α a //C//β.
Platí
* ≈( //C//α, //C//β) = 1 pokud je podmínka daná SDCF-kvantifikátorem splněna pro K-tice //C//α a //C//β
* ≈( //C//α, //C//β) = 0 pokud podmínka daná SDCF-kvantifikátorem pro K-tice //C//α a //C//β splněna není.
Příkladem SDCF-kvantifikátoru je výraz [↑↓, ≥157, ≥72] použitý ve výše uvedeném [[lm_guha_te_histogram_2#příklad|příkladu]].
Tomuto SDCF-kvantifikátoru odpovídá podmínka **//P//**:\\
cα,1 < cα,2 <...< cα,K-1 < cα,K ∧
cα,1+...+cα,K ≥157 ∧ \\
cβ,1 > cβ,2 > ... > cβ,K-1 > cβ,K ∧
cβ,1 +...+ cβ,K ≥72. \\
Tedy:
* [↑↓, ≥157, ≥72](//C//α, //C//β) = 1 pokud je podmínka **//P//** splněna
* [↑↓, ≥157, ≥72](//C//α, //C//β) = 0 pokud podmínka **//P//** splněna není.
SDCF-kvantifikátory implementované v GUHA proceduře SDCF-Miner jsou popsány [[lm_guha_te_sdcf_kvantifikator|zde]].
==== SDCF-výraz je pravdivý ====
Pravdivost SDCF-výrazu α×β: ≈**A**/χ v matici dat **M** je definována pomocí SDCF-tabulky \\
SDCF(**A**,α,β,χ,**M**) = ‹ CFα, CFβ takto:
* α×β: ≈**A**/χ je pravdivý v matici dat **M** pokud ≈(CFα, CFβ) = 1, formálně zapisujeme \\ Val(α×β: ≈**A**/χ, **M**) = 1
* α×β: ≈**A**/χ je nepravdivý v matici dat **M** pokud ≈(CFα, CFβ) = 0, formálně zapisujeme \\ Val(α×β: ≈**A**/χ, **M**) = 0.