Riešime Expert’s challenge 2009

Moje riešenie súťaže AUS DM 2009 (http://www.tiberius.biz/ausdm09/).

Hodnotenie:

1. C&RT – slabé aj na train dátach

2. SVM – preučené na train, na test pod-priemerné

3. Simple linear regresion – dosahuje priemerné výsledky (27. miesto)

4. Súťaž priebežne vedie prístup: sprav X lineárnych regresií modelov na X radnom vzorkách dát a urob ich priemer.

17.10.2009 20:57

Ok, môžme začať.

Čo máme?

Softvér – PASW Modeler 13

Hardvér – Notebook Intel Centrino CPU, 2GB ram, 4GB free HDD

Zadanie – zatiaľ je dostupná MEDIUM challenge – dosiahnúť max. úspešnosť na SCORE SET.

Train set:  25MB CSV súbor, 20 000 riadkov, 200 výsledkov modelov, 1 cieľový atribút.

Score set: 25MB CSV súbor, 20 000 riadkov, 200 výsledkov modelov.

Cieľový atribút má 2 verzie {-1,1} alebo {1,2,3,4,5}

Zdrojové dáta – výsledky 200 modelov, ktoré mali predikovať hodnotu z intervalu <1,5>

Hodnoty dát v train sete sú vynásobnené 1000 – t.j. pôvodný intervalu <1,5> bol transformovaný na <1000,5000> aby sa predišlo problémom s importom desatinných čiarok.

Ako na to? Otvorené otázky…

1. Čo predikovať?

a) riešiť predikciu cez pravdepodobnosť(T) z <0,1>

b) ako klasifikáciu T z {1,2,3,4,5} ?

c) alebo ako Ppavdepodobnosť, ktorá bude transformovaná do tried?

Tá transformácia by mohla byť 0.0-0,2 -> 1 0, 0.2-0.4 -> 2, 0.4-0.6 -> 3, 0.6-0.8 ->4 a 0.8-1.0->5,

d) alebo ešte lepšie podľa distribúcie T.

0.0-podiel 1 v % ->1

podiel 1 v % – podiel 1,2 v % ->2

podiel 1,2 v % – podiel 1,2,3 v % ->3

podiel 1,2,3 v % – podiel 1,2,3,4 v % ->4

podiel 1,2,3,4 v % – 1 v % ->5

2. Ako transformovať zdrojové dát ?

a) Nechať 1000 až 5000,

b) alebo lineárne dať na 0-1? t.j. Xnew=(Xold-1000)*1000/5000

c) Alebo podľa distribúcie Triedy T?

3. Diskretizovať hodnoty?

a) áno – budú pekné skupiny, napr. do 8 skupín približne na 1.0-1.5, -2.0,-2.5,-3,-3.5,-4,-4.5,-5.0

b) nie – netreba, nemáme extrémy a navyše nám ide o najvyššiu presnosť

ale čo s nelineárnymi závislosťami pri Logistickej regresii, ktoré rieši práve diskretizácia (1 koeficient pre 1 numerický atribút vs. N pre 1 atribút diskretizovaný do N tried)

4. Generovať sub modely?

5. Generovať nové dáta?

6. Ako vyhodnocovať úspešnosť?

AUC vs. RMSE

Čo pôjde ľahšie v SPSS?

7. Metóda ? Strom, regresia, NN…

8. Ako pripraviť train vs. test set.

9. Porovnanie train vs. score set, sú štatisticky podobné?

10. Urobiť segmentáciu a vytvoriť zložený klasifikátor, pre každý segment iný?

- Ako segmentovať?

21:33

Poďme začať. Plán:

1. Load dát do SPSS.

2. Distribúcia T a P(T) v datasetoch

3. Skúsiť zrátať RMSE a AUC pre jeden z modelov.

21:35 … ideme na to

21:43 … atribútov je 250 + trieda + ID riadku, spolu 252, SPSS vie loadnuť iba prvých 250 t.j. strácam 2 modely, nevadí

21:50 … vadí, data to columns v Excely zabrali a zo 4x .CSV sú teraz 4x.XLS

21:53 … Load ide, základné štatistiky cez DATA AUDIT node, máme distribúciu T… nepíše hodnoty, ale početnosti 1 a 2 sú menšie, 3 a 5 stredné, 4 najväčšie, modely to +- kopírujú.

… mohlo by byť zaujímavé vytvoriť nový atribút Di = (T – Mi)^2 teda Diferencia i. modelu ako Správna hodnota – predikcia Modelu i … pre výber naj stĺpcov

22:05 Akurát to beží… Dá sa to v Modeleri cez všetky stĺpce naraz a počíta to aj sumu (R)MSE … potom sa to odmocni a vznikne RMSE (Root Mean Square Error)…

22:24 OK, RMSE vieme počítať -dá sa to ešte transponovať, usporiadať, odfiltrovať a máme najlepšie modely

Poznatok: RMSE na webe a vypočítané RMSE sa nedajú porovnať, sú počítané na inom počte záznamov

AUC ide počítať cez export do XLS a dodané macro, RMSE sa podarilo naskriptovať … 1-3 hotovo

22:37 Rozdelil som dáta na 50:50, učím C&RT (Classification & Regression Tree) model.

Najvplyvnejšie atribúty podľa CARTu – 157,181,114,120,35,20,115. Graf GAIN nestabilny… najlepsi model je 37 (RMSE podla mojho vypoctu je 124 192 894), ten nie je ani v zozname. Vysledny model ma RMSE vyse 4x vyssie.

CART je na prd.

23:25 najlepsie RMSE podla mojho vypoctu je 124 192 sa celkom zhoduje s cca 875 ktore je na webe aj na original Netflix prize… Totiz set je 200 000 riadkov z “over 1.4 million”, t.j. cca 1/7.

124.2 *7 = 869 … cca to sedi.

Skúsme, či platí, že priemer the best 10 je lepší ako the best 1. … PLATÍ. Top 10 z datasetu dáva 123 350, je the best.

OK… poďme zistiť, kde na train sete sme oproti riešiteľom… t.j. čím presne treba moje RMSE prenásobiť, aby sa dostala porovnateľná hodnota.

Small AUC the Best Expert dáva 888.32 … skúsme, koľko dáva mne. 107 592 to nema vypovednu hodnotu, kedze 15 000 * 888 / 107 je vzdy pod pod 1.4M

18.10.2009 10:35

Na noc som pustil výpočet 7 modelov – NN, SVM, LinReg, Generalized Lin Reg, CaRT, CHAID, a este cosi dalsie. Výsledok? Out of memory exception.

OK. Tak skúsme obyčajnú Lineárnu regresiu. Vygenerovať výstup, submitnúť…. výsledok 882…. 2 body nad Base Line (884), 4 body pod najlepším výsledkom (878).

http://www.tiberius.biz/ausdm09/leaderboard.php náš tím – KKUI TU Kosice

Čo ďalej?

17:24 Myšlienka:

Baseline Model je priemer prvých 10.
1. Nájdime záznamy, kde model funguje.

- Počítajme P(nefunguje), kde nefunguje znamená |predikcia – výsledok | > k; k nech je napr. 1 … alebo k nech delí počet záznamov na 50%ok, 50% bad.

2. Na zvyšných záznamoch naučme nový model.

Použime zložený klasifikátor…. Ak P(nesprávne)>0.5 then Model B else Model A

17:48 Naučil som SVM (Support Vector Machine) model … na TRAIN sample to má výborné RMSE. Púšťam skóring SCORE… 20 min? :)

Modle preučený na train sample.

123350.49536203715

Tags:

Leave a Reply