Weight by Gini Index

Teoretická časť

Vypracovali: Jana Janetková, Eva Turňová

Giniho index [1]

Operátor Weight by Gini Index patrí do skupiny operátorov Attribute weighting. Tento operátor počíta význam (váhu) atribútu na základe Giniho indexu rozdelenia do tried, ak by zadaný príklad bol zaradený na základe tejto vlastnosti. Tento index sa niekedy označuje aj ako Giniho index znečistenia.

Prvým krokom pre určenie váhy atribútu je výpočet Giniho indexu pre celú vzorku údajov S podľa vzťahu (1), pričom pi je pravdepodobnosť, že záznam patrí do triedy ci  a m je počet tried.

Gini(S)=1- \sum_{i=1}^{m}p^2_{i} (1)

Ďalším krokom je výpočet Giniho indexu pre jednotlivé atribúty, pričom je potrebné najprv určiť Giniho index pre konkrétnu hodnotu atribútu pomocou vzťahu podľa vzťahu (2), pričom pi je pravdepodobnosť zaradenia do triedy na základe hodnoty ai. Takto určíme Giniho index pre všetky hodnoty daného atribútu.

Gini(A=a_1)=1- \sum_{i=1}^{m}p^2_{i} (2)

Pre atribút potom určíme Giniho index ako (3), kde pomer ai/S určuje pravdepodobnosť, že atribút nadobúda hodnotu ai a Gini(A=ai) Giniho index pre túto hodnotu.

Gini_A(S)=\sum_{i=1}^k\frac{a_i}{S}*Gini(A=a_i) (3)

Ak máme vypočítané hodnoty Giniho indexu pre všetky atribúty, váhu atribútu vypočítame na základe vzťahu (4).

\Delta Gini(A)=Gini(S)-Gini_A(S) (4)

Čím vyššia je hodnota vypočítaná pomocou vzťahu (4), resp. čím nižšia je hodnota vypočítaná podľa vzťahu (3), tým väčší ma význam daný atribút z hľadiska klasifikácie.

Popis operátora v Rapidminer-i [2]

Cesta k operátoru: Modeling->Attribute Weighting ->Weight by Gini Index

Vstupy

  • example set - vzorka údajov, na základe ktorých sa budú počítať váhy. Je potrebné aby v tejto vzorke mala jedna premenná nastavenú rolu Label

Výstupy

  • example set - vzorka údajov, na základe ktorých boli vypočítvané váhy
  • weights - váhy atribútov zadanej vzorky

Parametre operátora

  • normalize weights - normalizácia váh ("prepočet" váh tak, aby boli krajné hodnoty 0 a 1), prednastavená hodnota parametra je true.
  • sort weight - usporiadenie váh vzostupne (ascending) alebo zostupne (descending), prípadne bez usporiadania

Ilustračný príklad

Vzorka údajov

Máme zadanú nasledovnú vzorku údajov:

ID Počasie Teplota [°C]

 Vlhkosť [%]

Vietor

Trieda

1 Slnečno 24

70

Áno

Hrá sa

2 Slnečno 27

90

Nie

Nehrá sa

3 Slnečno 29

85

Nie

Nehrá sa

4 Slnečno 22

95

Nie

Nehrá sa

5 Slnečno 21

70

Nie

Hrá sa

6 Zamračené 22

90

Áno

Hrá sa

7 Zamračené 28 78 Nie Hrá sa
8 Zamračené 18 65 Áno Hrá sa
9 Zamračené 27 75 Nie Hrá sa
10 Dážď 22 80 Áno Nehrá sa
11 Dážď 18 70 Áno Nehrá sa
12 Dážď 24 80 Nie Hrá sa
13 Dážď 20 80 Nie Hrá sa
14 Dážď 21 96 Nie Hrá sa

Predspracovanie dát

Najskôr je potrebné diskretizovať numerické atribúty Teplota a Vlhkosť. Atribút Teplota sme rozdelili na 3 intervaly: nízka (do 22), stredná (23-26), vysoká (nad 27). Atribút Vlhkosť sme rozdelili na 2 intervaly: nízka (do 80), vysoká (nad 81).

ID Počasie Teplota [°C]

 Vlhkosť [%]

Vietor

Trieda

1 Slnečno stredná

nízka

Áno

Hrá sa

2 Slnečno vysoká vysoká

Nie

Nehrá sa

3 Slnečno vysoká vysoká

Nie

Nehrá sa

4 Slnečno nízka

vysoká

Nie

Nehrá sa

5 Slnečno nízka

nízka

Nie

Hrá sa

6 Zamračené nízka

vysoká

Áno

Hrá sa

7 Zamračené vysoká nízka Nie Hrá sa
8 Zamračené nízka nízka Áno Hrá sa
9 Zamračené vysoká nízka Nie Hrá sa
10 Dážď nízka nízka Áno Nehrá sa
11 Dážď nízka nízka Áno Nehrá sa
12 Dážď stredná nízka Nie Hrá sa
13 Dážď nízka

nízka

Nie Hrá sa
14 Dážď nízka vysoká Nie Hrá sa

 Výpočet váh

Giniho index pre atribút Počasie

Gini(Počasie=Slnečno)=1-\left[\left(\frac{2}{5}\right)^2-\left(\frac{3}{5}\right)^2\right]=0,48

Gini(Počasie=Zamračené)=1-\left[\left(\frac{4}{4}\right)^2-\left(\frac{0}{4}\right)^2\right]=0

Gini(Počasie=Dážď)=1-\left[\left(\frac{3}{5}\right)^2-\left(\frac{2}{5}\right)^2\right]=0,48

Gini_{Počasie}(S)=\frac{5}{14}*0,48+\frac{4}{14}*0+\frac{5}{14}*0,48=0,343

Giniho index pre atribút Teplota

Gini(Teplota=nízka)=1-\left[\left(\frac{5}{8}\right)^2-\left(\frac{3}{8}\right)^2\right]=0,469

Gini(Teplota=stredná)=1-\left[\left(\frac{2}{2}\right)^2-\left(\frac{0}{2}\right)^2\right]=0

Gini(Teplota=vysoká)=1-\left[\left(\frac{2}{4}\right)^2-\left(\frac{2}{4}\right)^2\right]=0,5

Gini_{Teplota}(S)=\frac{8}{14}*0,469+\frac{2}{14}*0+\frac{4}{14}*0,5=0,412

Giniho index pre atribút Vlhkosť

Gini(Vlhkosť=nízka)=1-\left[\left(\frac{7}{9}\right)^2-\left(\frac{2}{9}\right)^2\right]=0,346

Gini(Vlhkosť=vysoká)=1-\left[\left(\frac{2}{5}\right)^2-\left(\frac{3}{5}\right)^2\right]=0,48

Gini_{Vlhkosť}(S)=\frac{9}{14}*0,346+\frac{5}{14}*0,48=0,394

Giniho index pre atribút Vietor

 Gini(Vietor=áno)=1-\left[\left(\frac{3}{5}\right)^2-\left(\frac{2}{5}\right)^2\right]=0,48

Gini(Vietor=nie)=1-\left[\left(\frac{2}{5}\right)^2-\left(\frac{3}{5}\right)^2\right]=0,444

Gini_{Vietor}(S)=\frac{5}{14}*0,48+\frac{9}{14}*0,444=0,457

Na výpočet váh potrebujeme ešte Giniho index pre celú vzorku údajov

Gini(S)=1-\left[\left(\frac{9}{14}\right)^2-\left(\frac{5}{14}\right)^2\right]=0,459

Váhy pre jednotlivé atribúty

w(počasie)=\Delta Gini(počasie)=Gini(S)-Gini_{počasie}(S)=0,459-0,343=0,116

w(teplota)=\Delta Gini(teplota)=Gini(S)-Gini_{teplota}(S)=0,459-0,412=0,047

w(vlhkosť)=\Delta Gini(vlhkosť)=Gini(S)-Gini_{vlhkosť}(S)=0,459-0,394=0,065

w(vietor)=\Delta Gini(vietor)=Gini(S)-Gini_{vietor}(S)=0,459-0,457=0,002

Proces namodelovaný v Rapidmineri

Načítali sme si dáta z Excelu.

Pre atribút označujúci triedu sme nastavili rolu Label.

Diskretizovali sme atribút teplota.

Diskretizovali sme atribút vlhkosť.

Určili sme váhy atribútov pomocou Giniho indexu.

Výsledky získané pomocou rapidminera:

Normalizované váhy:

Najväčší význam z hľadiska vplyvu na zaradenie vzorky do triedy má podľa Giniho indexu atribút Počasie, najmenší význam má atribút Teplota.

Rozdiel medzi vypočítanými výsledkami a výsledkami získanými z Rapidminera je spôsobený zaokrúľovaním počas výpočtu.

Praktická aplikácia

Máme dáta, ktoré obsahujú informácie o vínach (popis dát uvedený nižšie) a  ohodnotenie ich kvality na stupnici od 0 do 10. Pre každý druh vína (červené a biele) sú dáta uvedené v osobitnom súbore. Našou úlohou je pomocou Giniho indexu určiť, ktoré ukazovatele najviac prispievajú k určeniu kvality daného vína a či ide u oboch druhov o rovnaké ukazovatele. Zároveň sme počas procesu sledovali, ako sa menia váhy jednotlivých atribútov pri predspracovaní dát. Váhy sme v jednotlivých krokoch vždy normalizovali na rozsah 0 - 1 a zoradili zostupne.

Popis dát [3]

Dáta sú uložené v csv súboroch. Súbor s údajmi očervenom víne obsahuje 1 599 vzoriek a súbor s údajmi o bielom víne obsahuje 4 898 vzoriek. V súboroch nie sú žiadne chýbajúceho hodnoty.

Pre jednotlivé vzorky sí zaznamenané atribúty:

  1. fixed acidity - neprchavé kyseliny
  2. volatile acidity - prchavé kyseliny
  3. citric acid - kyselina citrónová
  4. residual sugar - zvyškový cukor
  5. chlorides - chloridy
  6. free sulfur dioxide - voľný oxid siričitý
  7. total sulfur dioxide - viazaný oxid siričitý
  8. density - hustota
  9. pH
  10. sulphates - sírany
  11. alcohol - alkohol
  12. quality - kvalita na stupnici od 0 (najhoršie) do 10 (najlepšie)

Proces

1.Načítali sme si vzorku dát z csv súboru pomocou operátora Read CSV. Pri načítaní sme atribút quality nastavili ako polynominálnu premennú a jej rolu sme nastavili na Label. Po načítaní dát sme určili vypočítali váhy jednotlivých atribútov.

Výsledky pre červené víno:                               Výsledky pre biele víno:

Z výsledkov vidíme, že kvalitu červeného vína najviac ovplyvňuje obsah alkoholu, sírany a prchavé kyseliny. U bieleho vína je to obsah alkoholu, hustota a chloridy.

2. Odstránenie duplicitných údajov (Remove Duplicates): Pri vzorke červených vín sa počet vzoriek zredukoval z 1 599 na 1 359, pri bielych vínach z 4 898 na 3961.

Výsledky pre červené víno:                               Výsledky pre biele víno:

Oproti výsledkom v predchádzajúcom kroku sa poradie zmenilo len mierne. Vymenilo sa poradie významnosti atribútov citric acids a chlorides u vzorky červených vín a atribútov residual sugar a citric u vzorky bielych vín). Najvýznamnejšími atribútmi však naďalej ostávajú alkohol, sírany a prchavé kyseliny u červeného vína a alkohol, hustota a chloridy u bieleho vína.

3. Aby nám výsledok neovplyvňovali príliš kvalitné a príliš nekvailtné vína, odstránili sme vzorky, ktorých kvalita bola 0-3, resp. 8-10. Odstránenie sme vykonali pomocou operátora Filter Examples, kde sme nastavili parameter condition class na hodnotu attribute_value_filter a zadali sme podmienku quality=0|1|2|3|8|9|10, pričom sme zároveň zaškrtli možnosť invert selection. Takto sme odstránili údaje o vínach, ktoré boli príliš nekvalitné (hodnotenie 0 až 3) a vína, ktoré boli veľmi kvalitné (hodnotenie 8 až 10). Počet vzoriek v súbore obsahujúcom dáta o červenom víne je po odstránení 1 332, v súbore dát o bielom víne 3 805.

Výsledky pre červené víno:                              Výsledky pre biele víno:

Po tejto úprave sa poradie významosti atribútov nezmenilo ani u vzorky červených ani u vzorky bielych vín. Zmenili sa však hodnoty jednotlivých váh.

Výsledky

Výsledné grafy znázorňujú význam jednotlivých atribútov pre vzorku dát obsahujúcu údaje o červených (horný obrázok) a bielych (dolný obrázok) vínach.

Môžeme konštatovať, že u oboch vzoriek zohráva najväčšiu úlohu pri posudzovaní kvality obsah alkoholu. U bieleho vína na kvalitu vplýva aj hustota (normalizvoaná váha 0.728). Ostatné normalizované váhy dosahovali hodnoty nižšie ako 0.5. V prípade nonormalizovaných váh sú hodnoty váh veľmi nízke, čo je spôsobené nediskretizovanými hodnotami jednotlivých atribútov. Pre správnu diskretizáciu by však bolo potrebné poznať aký obsah ktorej látky je v jednotlivých vínach považovaný za nízky a aký za vysoký.

Súbory

Zdroje

[1] HAN, J. - KAMBER, M.: Data Mining: Conpcets and Techniques [online]. University of Illinois [cit. 2011-12-7]. Dostupné na internete: http://www.cs.uiuc.edu/class/fa05/cs412/chaps/6.pdf

[2] Weight by Gini index [online]. RapidMiner wiki [cit. 2011-12-27]. Dostupné na internete: http://rapid-i.com/wiki/index.php?title=Weight_by_Gini_Index

[3] Wine Quality Data Set [online]. University of California, Irvine - Machine Learning Repository [cit. 2011-12-28]. Dostupné na internete: http://archive.ics.uci.edu/ml/datasets/Wine+Quality