Ticket #648 (new wish)

Opened 4 years ago

Last modified 4 years ago

Izboljsati implementacijo orngStat.compute_CD() (critical difference)

Reported by: gw.orange@… Owned by: somebody
Milestone: Future Component: orng_modules
Severity: minor Keywords:
Cc: Blocking:
Blocked By:

Description

Funkcija orngStat.compute_CD() je implementirana bolj slabo (s hardcodeanimi q vrednostmi za teste) in se sesuje v kolikor zelis primerjati med seboj vec kot 10 metod.

Pravilna resitev bi bila, da izracuna potrebno q vrednost za kar pa mi na internetu ne uspe najti algoritma ali literature s formulo. V kolikor je izracun dolgotrajen proces pa bi bilo boljse imeti se vedno hardcodeane vrednosti za nizje stevilo primerjanih metod, za visje pa sproti poracuna.

Attachments

computeCD_approximate.patch Download (3.3 KB) - added by gw.orange@… 4 years ago.
Izboljsane tabele in dodan grd priblizek za visje vrednosti.
computeCD_tables.patch Download (106.3 KB) - added by gw.orange@… 4 years ago.
Bolj natancne in vecje tabele za vse znova poracunane.
computeCD_good.patch Download (12.8 KB) - added by gw.orange@… 4 years ago.
Popravljena in pomoje najboljsa resitev s po 100 hardcodeanimi vrednostmi in aprokcimacijo za visje.

Change History

Changed 4 years ago by gw.orange@…

Izboljsane tabele in dodan grd priblizek za visje vrednosti.

comment:1 Changed 4 years ago by gw.orange@…

Aja, vrednosti s katerimi sem razsiril tabelo za Nemenyi test sem pobral iz  http://nikolaos.kourentzes.com/files/Nemenyi_critval.pdf in jih je sedaj za do 50. Seveda bi bilo smiselno se najmanj razsiriti Bonferroni-Dunn tabele do 50. Najboljso resitev pa sem tak ze opisal v opisu ticketa...

comment:2 Changed 4 years ago by anonymous

Za Nemenyi test izgleda, da se vrednosti poracuna kot vrednosti iz Studentized range statistic za neskoncno stevilo prostorskih stopenj deljeno s sqrt(2) (vir: Demsar (2006) in malo raziskovanja, ker se originalnega clanka Nemenyi (1963) nekako ne najde na internetu).

Open source implementacija tega se najde v R-u v  http://stat.ethz.ch/R-manual/R-devel/library/stats/html/Tukey.html. Vrednosti za Bonferroni-Dunn test pa se baje lahko izracuna s funkcijo za Nemenyijeve s tem, da se alpha vrednosti deli s stevilom (k-1) (oz. ustrezno spreminja interval zaupanja).

Torej pretvorit R funkcijo v Python ali le poracunati ter hardcodeati za dovolj velike vrednosti (npr. stevilo metod = 200 ali 1000)?

Changed 4 years ago by gw.orange@…

Bolj natancne in vecje tabele za vse znova poracunane.

comment:3 Changed 4 years ago by gw.orange@…

Sicer je malo velik patch, a ker mi ni bilo za implementirati numericnega racunanja za to potrebnih integralov ter dolocanja vrednosti z bisekcijo (implementacija v R), sem kar poracunal prvih 1000 vrednosti za enih par pogosto uporabljenih vrednosti alpha in posiljam patch za to.

V Bonnferoni-Dunn tabelah tako v clanku Demsar, Statistical comparisons of classifiers over multiple data sets, 2006, kot v knjigi Kononenko, Machine learning and data mining, 2007, je tipkarska napaka in sicer bi namesto vrednosti 2.724 moralo pisati 2.734369.

comment:4 Changed 4 years ago by gw.orange@…

Po razmisleku sem odkril, da je 1000 vrednosti malo pretirano, zato posiljam s 100. Prav tako prejsni patchi vsebujejo en grozen bug, tako da predlagam, da se uporabi tega zadnjega!

Najlazja splosna resitev za taksne in podobne statisticne potrebe pa bi bila integracija R-a v Orange, tako da v kolikor nima lastne funkcije ali ne dovolj natancne preklopi na R knjiznico, ce je na voljo ali pa javi warning.

Changed 4 years ago by gw.orange@…

Popravljena in pomoje najboljsa resitev s po 100 hardcodeanimi vrednostmi in aprokcimacijo za visje.

Note: See TracTickets for help on using tickets.