Perl - cvičení 14

  1. Ve vstupním souboru je několik vektorů stejných dimenzí. Každý z těchto vektorů patří do jednoho shluku, jehož číslo je zadáno jako poslení hodnota vektoru. Hodnoty vektoru (čísla) jsou odděleny čárkou, mezerou nebo podobným oddělovačem. Najděte geometrické středy všech shluků a N objektů ležících nejblíže těmto středům.
  2. V souboru en_TSD_50000-3-RULES.txt jsou pravidla zobecňující způsob rozhodování při zařazení zákaznických recenzí do tříd pozitivní (třída 1) a negativní (třída 2) na základě výskytu slov nebo sousloví. Soubor je výstupem programu c5 pro generování rozhodovacích stromů a pravidel. Každé pravidlo má následující podobu:
    RuleX: (N/M, lift L)
    atribut1 OP hodnota
    atribut2 OP hodnota
    ...
    atributP OP hodnota
    -> class C [A]
    
    N je počet případů, které pravidlo postihuje, M je nepovinná hodnota a určuje, pro kolik z N příkladů bylo pravidlo použito chybně. Atribut je název vlastnosti (zde slovo nebo sousloví), OP je některý z relačních operátorů <= nebo > a hodnota je číslo, se kterou je porovnávána hodnota daného atributu (typicky 0). C je třídou, do které bude recenze zařazena při splnění podmínek daného pravidla. Pokud se v pravidle vyskytuje výraz atributI OP hodnota vícekrát, musí pro zařazení recenze do dané třídy platit všechny tyto podmínky současně. A je přesnost pravidla (vypočítáno z hodnot N a M podle vztahu (N-M+1)/(M+2)). L je hodnota vypočítaná jako podíl přesnosti a relativní četnosti předpovídané třídy v celém souboru dat.
    Vytvořte program, který bude schopen říct, které atributy jsou relevantní pro pozitivní (atributI > 0 v pravidlech pro třídu pozitivní nebo atributI <= 0 pro třídu negativní) a které pro negativní (atributI <= 0 v pravidlech pro třídu pozitivní nebo atributI > 0 pro třídu negativní) recenze. Je možné, že se jeden atribut vyskytne ve více pravidlech. Pro seřazení atributů podle jejich důležitosti využijte hodnotu L (lift) daného pravidla.