tnsnames.ora Creative Commons License 2009.07.19 0 0 5601
[****INFORMATIKA****]

Sajnos muszáj írnom még egy postot (pár nappal a legeslegutolsó határidő lejárata elött). Elnézést kérek érte mindenkitől, akinek már fárasztó a téma!

Az ok egyszerű: úgy vélem megtaláltam azt a lehetséges negyedik forgatókönyvet, amihez már nem kell semmiféle "összeesküvés-elmélet". Sőt ennél merészebbet is merek feltételezni, sejtésem van arról, hogy hogyan írták ki a Netflixes-versenyt (ami amúgy meglehet, hogy triviálitás, csak nekem magamnak kellett menetközben rájönnöm). Ha már nem adatott meg az az élmény, hogy az 1.500-as "hall of fame" listára felkerüljek egy szimpatikus test-datasetes prediktálással.

1.
Nem bírt velem a kisördög és muszájnak éreztem ellenőrizni a korábbi feltevésemet (ha már egyszer kiszámoltam a 10 mezőmet 67 millió ratingre a megadott 100 millióból).

Eredmény: valami hihetetlenül szép számomra, hogy az áprilisi 18 órányi, windows notebookos, 8 milla rekordos, 10 mezős, logisztikus regressziós tanítás után, vélhetőleg a teljes állományra, de bizonyítottan legalább erre a 67 millás => 2/3-nyi állományra ilyen szépen lehet következtetni/prediktálni. Én ezt nem tudtam, és meglehet jó lett volna tudni már a verseny kiírásának pillanatában, hogy ennyire jó minőségben lehet prediktálni. ;) (Ahogy szerintem az a másik infó is nagyon érdekes, hogy kb.: 3% - legalábbis az egyikféle, amúgy a Netflixet láthatóan érdeklő - zaj)

A végső RMSE: 0.338

A találati mátrixom (viszintesen a prediktált ratingek, függöleges a valódiak). És persze az a finom, ha az átlóban vannak a nagyobb számok. :o)))

|002.558.268|000.049.601|000.418.496|000.004.258|000.029.527|
|000.071.101|006.195.465|000.453.160|000.005.001|000.014.438|
|000.090.002|000.030.232|018.641.668|000.351.180|000.071.842|
|000.033.806|000.007.554|000.555.003|021.881.469|000.019.032|
|000.048.291|000.008.829|000.480.644|000.020.478|014.871.050|

2.
Ami nóvum az elöző témabeli hozzászólásomhoz képest, hogy azt sejtem/állítom, hogy a fenti 10 mezős végtelen egyszerű algoritmusnak a Netflix birtokában van, sőt felhasználta a test-dataset definiálásához. A 100 millás állományban van ugyanis kb. 3%-nyi k-i-s-e-l-e-c-t-á-l-h-a-t-ó, 2.8 millió, spéci, extrém, "szinguláris" :o), "zaj" rating, amit kvázi egy-az-egyben bevágtak a test datasetbe, és meghagytak mutatóba kb.:15.000-et a 100 millás publikált állományban (amiből én 10.000-et találtam meg 67 millás mező-kigenerálásom révén), illetve 300-at az 1.4 millás próbaállományban.

Ha ez igaz, akkor az alábbiak következ(het)nek sok minden egyéb között:

- A 0.338 RMSE, még alsó hangon is, minden finomítás nélkül is, nagyon jó RMSE, aminek tuningolása nem érte volna meg a versenykiírást. 67 millából 64 millát csont nélkül, mondhatni triviálisan könnyedén eltalálni meglehetősen impresszív: ez nem adatbányász-tudás kérdése, hanem a feladat sajátja, az én értelmezésemben.

- Ha a teszt-dataset nem 100%-ban tartalmazna "zaj"-t, akkor 0.338-0.86 RMSE közé kerülhetne valahová a végső RMSE. A verseny szempontjából ez "nemesebb" kiírás lett volna (ha már nem mutat rá a Netflix-versenykiíró erre a "zaj"-feature-re), viszont meglehet érteni a Netflixet: őt a "zaj" prediktálása érdekelte/érdekli. És mivel az 1 milla dollárt ő kockáztatja/állja, nagyon nem is lehet neki ezt felróni. :o)

- Marad akkor tehát a "zaj" megszelidítése, amiben lehetnek még tartalékok, de látnivalóan a 10%-nyi javítási potenciál felszínrehozása is majd három évbe került a világnak.

- Ezáltal az engem leginkább bántó "feature" is, épeszű magyarázatot nyer: mármint hogy 1.4 millás próba-állományra úgy kapok 0.3-as RMSE-t, hogy ugyanez a test-datasetre legjobb esetben is 1.1-es RMSE csak. Ha már egyszer a versenykiírásban azért adták meg a próbaállományt, hogy aki azon jól teljesít, annak már érdemes felküldési file-lal kísérleteznie.

- Önmagában érdekes kérdéseket vet fel, ha a teszt-dataset sajátmagában lényegében teljes egészében zaj (3.000 rekordot leszámítva), az alaphalmaz meg zajtisztítás nélkül is gyönyörűen konzisztens/koherens. ;) *** Milyen érdekes lenne tudni, hogy a versenyzők hány százaléka kezdte zajszűréssel az adatbányászkodását és hányan voltak akik időkímélésből, egyéb megfontolásokból hanyagolták a kérdést (mint én is). *** Azt gondolom, az lehetett a jó zajszűrés, ami olyan "normál" rekordok hatásának csökkentését jelentette, ami a kiváló 0.338-as RMSE irányába vitt volna amúgy, de itt a zaj szempontjából kifejezetten káros: kvázi "inverz" módon.

- Két módon lehet tehát közelíteni a feladathoz, ha mindezen infók befolyásolnak minket a döntéshozatalban:

- 1. Vagy a teljes "normális" állományból következtetni a "zaj"-ra. Ezt csinálták sokan (de például a Netflixes Cinematch rendszer vélhetően nem) => és az SVD, NNMF meg társai úgy vélem sokat segítettek "homogenizálni" a "normal" és "zaj" együttesét, amiben komoly tuningpotenciál lehetett.

- 2. Vagy a kb.:15.000 rekordos meghagyott zajból prediktálni az ugyanolyan típusú 2.8 millás teszt-dataset zajra. Nem kérdés számomra, hogy az utóbbi az izgalmas és értelmes, a kevesebb erölködést és számolást sejttető, ám jóval nagyobb kreativitást igénylő feladat (ami a legszebb az adatbányászatban).

- Csak hát eddig el kell jutni és lássuk be a versenykiírás nem mehetett el ilyen spéci irányba. Másfelöl viszont, ha nincs világverseny, hanem meghívásos tendert ír ki a Netflix néhány cégnek, akkor nekik ezek a "kártyák" kiteríthetők lehettek volna, és jóval célirányosabb is lehett volna a kutatás (noha persze a gyakorlatban megvalósult teljesen általános Netflix verseny-kiírásnak is megvan a maga indokolható értelme).

- A fenti infókat inkább t-u-d-j-a az adatbányász és vesse el tudatosan felhasználásukat, semmint eleve ne tudja, szvsz. Ha ezt a plusz infót tudja a világ, lehet, hogy hamarabb megvan a 10% javítás és/vagy még jobb RMSE-javítás is elérhető.

- Természetesen nem állhattam meg, hogy a nagy nehezen kinyert 10.000 zaj-rekorddal ne játsszak el egy kicsit most a hétvégén, így a végső finisben, ha már egyszer kezemben vannak a valós ratingjei (nem kell 1 napot várni két file-felküldés között). *** Egyrészt csináltam a meglévő 700 mező mellé még 35 vadiújat, gyökeresen teljesen más elv mentén. *** Másrészt keresztbe-kasul minden kipróbáltam, és csak erre a 10.000 rekord 1.45-2.02 között szórtak az RMSE-im, a 67 millás 0.338 RMSE-hez képest -> nemkicsit volt vicces szembesülni vele. ;) *** Ha lenne időm, mint ahogy már nincs (talán hálistennek), lehetne agyalni, hogy érdemes függvénnyel transzformálni és/vagy valahogy randomizálni a prediktált ratingeket, mert talán még avval is jobb eredmények érhetők el. :o))

- Az az érzésem tehát továbbra is érintetlenül megdönthetetlen bennem (eddig), hogy a valós üzleti élet és egy adatbányász-verseny két tökéletesen különböző minőség. Versenyeken olyan dolgokra is kell energiát pazarolni, ami amúgy nem lenne létszükséglet, illetve az adatbányászverseny végeredménye - a specialitások miatt - nemfeltétlen a legjobb outputot adja - d-e-f-i-n-i-t-i-v-e - nagyságrendileg lekörözve a valós üzleti életet. *** Perdöntően marhára nem mindegy, hogy hogy a 100 milla ratingből _véletlenszerűen_ választunk ki 2.8 millát, vagy publicitás nélkül _egy-az-egyben_ kihasítjuk a "zaj"-t: akárhonnan nézzük a versenyzőnek tehát ilyesféle hátsó gondolatokkal is kell küzdenie, míg az üzleti adatbányásznak "elég" a valós élet rejtelmeit kutatnia/megfejtenie. :o))

- Érdekes játék lehetne egy kooperatív adatbányász-verseny is (aminek voltak némi jelei amúgy itt a Netflix-versenynél is: leginkább voting-strategy mentén).

- Azt sem lehet elégszer hangsúlyozni, hogy adatbányászversenyek egyik legnagyobb hátránya, hogy a tesz-datasetek classlabeljei/ratingjei díjátadás után sem lesznek hozzáférhetők. Azt sem tudjuk meg, hogy a Netflix-verseny mennyire merítette ki a világ versenyzőit, mennyi előnyt és hátrányt jelentett a témát illetően. Mint ahogy azt sem fogjuk megtudni, hogy a győztes díjnyertes megoldásból a Netflix mit és hogyan fog tudni hasznosítani az üzemszerű napi életben.
Előzmény: tnsnames.ora (5268)