====== 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.