Magamról

Saját fotó
Főiskolai, majd egyetemi diplomamunkáimtól kezdve világ életemben, adatok, adatbázisok, adattárházak (leginkább Oracle) környékén mozogtam. Mostanság adattárházasként, adatbányászként élem napjaimat.

2013. június 17., hétfő

Data Science: Tableau-feladatok

v3.0 2013-06-21 (Kiegészítettem a feladatokat)

Ez a vizualizálásos topik az, ami állandóan kétségekkel áraszt el engem, amivel kapcsolatban a legtöbb ambivalens, skizofrén érzés áraszt el, még mielött installálnék egy tárgybeli szoftvert vagy elkezdenék írni róla.

Skizofréniám oka, hogy míg egyfelöl műszaki végzettségem óta véremmé vált, hogy "egy jó "ütős" ábra sok oldalnyi szöveget tud helyettesíteni" (Tableau-s információ szerint egy jó ábra akár 1.000 érdemi [angol] szót is ki tud váltani), addig a vizualizációk meg riportok kombinatorikus robbanás mentén szaporodnak és túlnyomó többségük szemét/zaj vagy akként végzi, amint a mobiltelefonokkal hobbifényképeszkedők képei is a facebookon.

Egyfelől van az ember természetes és védhető igénye a vizualizálására, másfelöl ipar van arra, hogy evvel visszaélések történjenek.

Kínzó kérdések rögtön a blogposzt címe után.

(1) Ha eddig Linuxon is működőképes SqLite, Python, Apache, Pig (és csak gyarlóság miatt zárójelezve az R-t, Octave-ot) hozom fel, akkor mit keres "Data Science-feladatok" blogposzt-sorozatban egy proprietary termék, amilyen a Windows-os Tableau?

Elég indok-e, hogy létezik "Tableau Public Free", ahol, ha jól emlékszem, 1 GB-nyi adatig lehet szabadon vizualizálni. Egy újságírónak tuti nagy lehetőség ezt, mert, ha valaki akkor ő könnyedén bele tud férni az 1 GB limitbe, és soha nem látott könnyedséggel tud szép ábrákat csinálni cikkéhez. (Nem elég indok tehát: ettől még a Tableau egy proprietary termék)

Elég indok-e, hogy "funny" használni. Tényleg az. De a ggplot2-t is funny használni, ráadásul egy Data Scientist, aki GB-os állományokkal dolgozik, nap mint nap, lehet jobban szeret programozni (még ha nem is triviális), mint drag and drop-polni meg kattingatni.
By the way én soha ki nem állhattam a drag and drop-ot, mert amikor véletlenül került elő, akkor galibát okozott mindig: meg el is lehet rontani és nem mindig triviális az "undo"-funkcionalitás.
(Nem elég indok tehát: van más "funny" eszköz is, lásd ggplot2, lattice, d3.js, csak a "forróbb" mainstream-vonalról is, hogy az ígéretes hadoop-os Platforát már ne is említsem).

Valahogy tehát az az érzésem, hogy egy fenékkel nem lehet két lovat megülni, vagy durvábban szólva szűznek is maradni, meg jólérezni is magunkat. Mert azonnal jön a kérdés, hogy akkor az SPSS vagy Matlab miért nem "funny"?

(2) Miért nem Javá-ban íródott a Tableau, bevállalva a plaform-függetlenség elvesztését is. Ez manapság se nem trendi, se nem "cool" dolog. Nem lett volna Java-programozó? - Ugye csak viccelődünk?

Az én sejtésem:
- Valahogy hatékonyabbnak érezték a natív gépi kódra fordítást, és tény, hogy a Tableau száguld, mint atom, a használat során. Pedig a Java-s virtuális gépek is csodaszámban fejlődtek az elmúlt években.
- A natív Windows vizualizálásnál sokkal szebb, mint a Java.-s Windows. Ez nekem régről fixa ideám, hogy még egy Java-s Swing GUI-felület sem soha nem tud kellően szép és ugyanolyan használható lenni: meg lehet szokni, de a különbség nem tünthető el.
De most ráadásul vizualizálásról beszélünk.

(3) Mi a helyzet az árral? A Windows-os Tableau Desktop 2.000 USD-s listaárú, de biztos van akinek sikerül ebből alkudnia, még akár 1.600 USD környékére (nemcsak oktatás vagy egyéb "beetetés" révén), míg a böngészős verzió emlékeim szerint ennek fele.
Nem azért mondom, de tökéletes árszabás:
- Ezt még talán itthon is meg lehet fizetni, nem az elérhetetlen kategória.
- Nem fog elkezdeni senki bohóckodni, hogy Trial-ek használatával váltsa ki a fizetést. Vagy Amazon AWS-sel küszködni - merthogy EC2-n keresztül is lehet kérni Tableau-telepítést, igaz a guide hozzá vagy 30 lépéses, neméppen triviális mutatvány. De müxik :)
- Abszolút értékarányos ("kapunk anyagot a pénzünkért", "nem az image-t kell megfizetni"), pláne ha az SPSS Clementine 25.000 USD-jét nézzük, vagy még inkább pláne a SAS Enterprise Minerét (ami csak éves szinten is ennyi).
- Versenytárs nélküli jelenleg az ennyire könnyű és hatékony használat, ilyen vizuális orgiával párosítva, "enterprise scalability"-vel támogatva.
- Még én is - meglehet - megvenném, pláne, ha a kereskedõi jutalékot sem kéne kifizetnem... ;) :DDDDDDDDDD

(4) Ha én profivá képzem ki magamat, milyen olyan use case van, ami NEM Tableau-sales tevékenység?

A jó hír egyfelöl, hogy aki rászán egy kis időt a témára, akkor közepes képességekkel is csodákra lehet képes, azaz a profizmus nem elérhetetlen vágyálom a témában. Az egész Tableau-információs birodalom nem elérhetetlen, nem átláthatatlan. Van egy 1000 oldalas manual, ~70 db Advanced Techniques Guide, ~50 db Webinar, fórum, community.

A jó hír másfelöl, hogy az újságíró is tud self-servioce módon nagyobb eszközkészletet alárendelni a munkájához, úgy az üzleti életben is megvan a lehetőség, hogy ráfordítási idő arányosan is nézve, gazdagíthatjuk eszközkészletünket a munkabeli céljainkat támogatva. Ahogy az említett újságíró is.

És, hogy egy igazi data scientist-es use case-t is mondjak: ha az adatbányászat fejlesztési folyamat során előáll egy GB-os text-es tesztállomány, amit az üzletnek meg kéne nézni, bitre pontosan tudja, hogy mit tartalmaz, de se SQL-ezni, se Clementine-ozni nem (az ár, licence, knowhow-hiány miatt), csak Excelezni: na akkor a Tableau az lehet az ő (valós érdemi alteranatívát jelentő, költséghatékony) eszköze.

(5) Nem takarja-e a csicsa a lényeget? Nem szemét-e a sok végtermék, tud-e összeadódni az (üzleti) intelligencia, az információs/tudás betagozódni a vállalati folyamatokba?

Na ebbe a topikba koncentrálódik tulajdonképpen az összes ellenérzésem. És be kell valljam töredékére sem tudom a választ a felvetett kérdéseknek.

* Amennyire érezzük az igényt egy "ütős" ábrára, vagyis ahol a (1) sok adat vizuális értelemben beletömöríthető egy-egy (2) gondolkodást serkentő ábrába, annyira nehéz objektív egzakt alapokon közelíteni a témához.

A gond ugye az, hogy mondhatni megmérhetetlen módon, de érezzük sokkal több rossz ábra van zaj jelleggel, mint jó ábra. Így attól is elvehetjük a kedvet az ábra-böngészéstől, aki egyébként képes lenne másképp is gondolkodni, mint például szövegek balról jobbra olvasásában

Az én konklúzióm tehát, hogy kevés "ütõs" ábra van, zajos környezetben.

* Bármennyire és fontos egy ütős ábra, lássuk be az igazi érték az adatforrásban, a költségesen felépített adattárházunkban, adatpiacunkban van. Nem Tableau-val kell elkezdeni hegeszteni adatokat, még ha erre van is (korlátozott) lehetőség, még ha olykor ez csábító is.

* Elemző szoftver-e a Tableau? Itt is inkább szkeptikus vagyok, mint amikor a kdnuggets-en annó statisztikai elemző szoftverek közé vették az adatbányász eszközöket (közvélemény-kutatásnál).

Taxonómiát nem mindig tud jól felállítani az ember, legyen bármilyen intelligens, mint egyébként például a zenében sem (értelmezésemben).



Igen! Lehet elemezni a Tableau-val, lehet következtetésekre jutni általa. Nemcsak prezikben tálalni lehet vele, hanem ismeretlen adatforrás (amiből egyre több példa van, egyre nagyobb igények közepette) megértésében is tud segíteni.

Nem! Nem elemző szoftver, ha 15.000 attribútumos datasetre gondolunk. Ember nincs, aki kattingatással állna neki ilyen feladatnak.

Különben is értelmezésemben az elsőrendű prioritása mindig a jó kérdés feltevésének majd jó megválaszolásának van: nem pedig vadul kattingatni bele a világba. Koherens kérdések szülnek csak  koherens válaszokat.


Analógia: "feature selection"-nél pl.: kattingatós SPSS Statistics-szel áll le küzdeni az ember, például két oszlop korrelációjának felderítéséhez, avagy non-visual szoftveres eszközt választ-e a feladat abszolválásához?

Analógia: "Alert"-et szintén a gép tudja jobban folyamatszinten, szintén non-visual alapon (persze tervezéshez ember kell)

Analógia: "Mintázat-keresés"-t szintén a gép tudja jobban. Ahogy adatbányászakodni sem select * from relációs SQL-kkel adatbányászkodunk (maximum, ha SQL-függvényekbe, operátorokba van belekódolva az adatbányász-fukcionalitás, mint az Oracle Data Miner szerver-opció esetén is).

* Hogyan adódik hozzá a domain-tudás? Hogyan lesz idõkímélõ hatékony csoportmunka? Itt vagyok a legszkeptikusabb, a legrosszabb tapasztalataim okán.

A leggyakoribb és leghorrorisztikusabb forgatókönyv, amikor a dolgozó Visual Basic affinitással "felvértezve", Excel-alapokon szigetrendszert épít magának, "nélkülözhetetlenné" téve magát a cégen belül, párhuzamos folyamatokat generálva a céges adattárház/adatpiac mellé. A "rugalmasság" jegyében. És mellesleg mérhetetlen károkat okozva egyéb frontokon.

Na a Tableau-val és egyéb Self-Service BI-eszközökkel mindez "négyzetre tud emelődni". Mindenki inkább individuum, saját ügyféltörzset akar, saját monolitikus szigetrendszert, és persze kész budgetjéért harcolni is, amit a cégek biztosítanak is sokszor, saját érdekeik ellenében is. Az egyéni létharc sokszor felülírja a közösség építésétnek vágyát, igényét.

A "dashboard" meg "riporting" 'bűntények' ilyetén módon nagyon sok kárt tud okozni:
* Párhuzamos, DQM-problémákat is generáló (pl.: migrálhatatlan adatforrások formájában is), működési költséget igénylő hagyományos cuccok az olvasatomban, sokszor jó sok overheaddel, adott esetben "fingreszelés" feelinggel, párhuzamosan a lényeg rejtve maradásával,  látszattevékenységekkel.
* tapasztalat szerint felesleges vagy éppen ki nem kényszerített körökkel,
* nehezen pénzzé konvertálható outputokkal
* mennyiségi szemlélettel (minöségi szemlélet ellenében), kominatorikus robbanás jelleggel, zajjal erősen spékelten: túl sok adat, túl kevés információ.
* mivel van rá motiváció (egyéni és vállalati), így a riportálós visszaélésipar tud pörögni
* a riport-szaporodás kiváló táptalaja a bürokráciának, egyre nehezebb, komplexebb, költségesebb, szerteágazóbb folyamatoknak.
* sokkal hosszabb költséges utak konktrollálatlan lehetősége a várható haszon szempontjából sokkal kérdésesebb versenyelőnyökhöz.
* sokszor egy deklarált probléma megoldása (riport formájában), 10 másik problémát generál, olykor köztudott pontalanságok kíséretében ("ügyféldarabszám"). Rekurzív probléma-generálás.
* totálisan elhanyagolt változásmanagement. Egy riport addig fontos, amíg elkészül és/vagy pisztergálni lehet vele az IT-t. Majd sokszor ott rohad a szerveren napi kigenerálódási célzattal. A riport életciklusa: mintha csak szaporodni tudna az Exabyte-ok világa felé.
* A forintosítás csak a riporting folyamat elején látható/mérhető, hogy mibe fog kerülni. De a visszamérés, hogy mi hasznot, hogyan hozott, szinte sose vizsgálja senki.
* jópofa lehet a dashboard egy mobiltelefonon: színházi elõadás szünetében, valentin napi vacsora közben WC-re is rá lehet nézni a napi eladási adatokra. Pfúj.... Azonban ne tagadjuk, hogy "üzleti igény" van rá! ;)


Ami az említett négyzetre emelést ilelti.a Tableau ráadásul jó(l meg is írt) szoftver, pláne egy árban vele összemérhető hulladék Excelhez képest. Vele aztán lehet termelni, lényegbevágó módon is. Tud nagytömegű adatot, érdemben kezelni, ráadásul "Enterprise" szinvonalon.

Kérdés tehát, hogy Tableau egyik oldalról paradigmaszerű és egyébként örömteli változást hozó filozófiája képes lesz-e másik oldalról a (közel)-jövőben  a szigetrendszerek ellenében, valóban "hozzáadott értéket" produkálni, vagyis az domain-specifikus (üzleti) intelligenciát összeadhatóvá tenni?
- Valós érdemi alternatívát nyújtani, ha már valaki nem tudja/akarja az egyébként cool "felülről kompatibilis" SQL-t megtanulni.
- Hogy még a 2.000 USD se tünjön pénzkidobásnak
- Hogy jó adatforrásból táplálkozik és vállalati folyamatba tagozódik a Tableau-output, vállalati döntéshozatalt is érdemileg támogatva.

Az ambivalenciát meg skizofréniát okozó kínzó kérdések konklúziója: 
- ha a szoftver-használat motivációja/környzete (mi a hatáköre, létjogosultsága) "rendben" van, mert hogy az nem érv, hogy "használják", meg "üzleti igény van rá", hiszen köztudomásúlag "egymilliárd légy sem tévedhet"...
- akkor viszont már jelenleg szerintem nincs jobb termék a műfajban, (ennyire könnyű és hatékony kattingatós darg&drop-os használat, ilyen vizuális orgiával párosítva, "enterprise scalability"-vel támogatva)



Na és akkor kezdjünk el beszélni magáról a TABLEAU-ról a sok "marketing rizsa" után. 

(1) Hatalmas piros pont az installálási folyamatért. Nekem annyira tetszik, hogy két képet is berakok illustrációnak.

A legkultúráltabb mód a licence-feltételek tálalásának: button rá, illetve checkbox arra, hogy a felhasználó tényleg tudomásul veszi.

A custom-telepítés van, csak nem alapértelemzett opció, hiszen nem sok minden lehet szükséges pluszba (második képernyő).

Villámgyorsan felugrik a gépre 350 MB formájában a teljes szoftver.

Ami még érdekes a html-es helpet külön kell installni: mondván használja mindenki a mindig aktuálisabb, frissebb, teljesebb netes infókat.

De magát az 1000-oldalas PDF-es Tableau Desktop manualt természetesen le lehet tölteni:
http://www.tableausoftware.com/support/help
http://onlinehelp.tableausoftware.com/v8.0/pro/offline/en-us/tableau_desktop8.0.zip


Magyarán: kicsi kompakt gazdaságos, belátható ám mégis finom az egész Tableau-cucc.








(2) Hatalmas piros pont a saját fileformátumért

- TWBX=Packaged Tableau Workbook (amiből eXtractolni lehet infókat)
Ez egy síma zip, ami tartalmazhatja többek közt a
(1) TDE-formátumú adatokat,
(2) XML-formátumú "vezérlést", valamint opcionálisan
(3) segédállományokat, például képeket.

- TDE=Tableau Data Extract. Ez egy  proprietary bináris fileformátum, ami a legtömörebben tárol (COLUMNAR DATABASE koncepciónak köszönhetően), hiszen manapság háttértárról olvasni a legköltségesebb művelet (netes fel-letöltögetésekről már nem is beszélve), szemben a processzor és memóriaműveletekkel (lásd RDBMS-ekben is a tömörített táblatereket vagy egyenesen a columnar-oriented DBMS-eket). A később vesézendő Bird Strikes Access-ben 105 MB, CSV-ben 71 MB, Excel-ben 56 MB, TDE-ben 20 MB. Azért érezzük át egy pillanatra ennek kiemelt piros pontos jelentőségét.

Van hozzá kultúrált programozói API is. Mivel proprietary bináris a fileformátum, így a lényegi funkcionalitást DLL-ekben kapjuk.

Azért érezzük, hogy kezd végtelenné növelődni lehetőségeink tárháza, csak ezen a fronton:
- Web-es adatok TABLEAU-sítása
- SQL-es adatgazdagítás, pl.: SqLite révén és/vagy Text/Excel/MsAccess ODBC révén, ha végképp nincs érdemi RDBMS-hozzáférésünk.
stb.



(3) Hatalmas piros pont a "connect to data"-hoz

Imádnivaló használni. 
Széles választékú, felixibilis, teljeskörű.

Az Excel-t már itt el lehet felejteni.
A Custom SQL-el gyönyörűséges benne.

(4) Hatalmas piros pont a performanciáért.

Az én gépemen pikk-pakk, másodpercek alatt korrekten olvasott GB-os állományokat, dolgozott velük (nem úgy mint a Microsoft PowerPivotja, vagy az IBM "új" pár hónapja bejelentett Cognos-csodája).

Külön említésre méltó, hogy van benne működő "progress bar"-funkcinalitás, meg mutatja az eltelő másodperceket. A szoftverkészítők tényleg mindenre igyekeztek gondolni, mindenre igyekeztek odafigyelni, a legapróbb részletekre is. Látnivalóan a felhasználó volt a középpontban, minden szempontból.

Lehet, hogy ez csak Windows és/vagy Proprietary/Commercial-termékvonal alatt lehetséges? :DDDDDDDDDDDD

(5) Hatalmas piros pont ezért a lehetőségért, (default útvonalú) Tableau-állományért:
"c:\Program Files (x86)\Tableau\Tableau 8.0\Performance\PerformanceRecording.twb"
Azért az milyen, hogy Tableau-val tudjuk Tableau-s tevékenységünket monitorozni, majd általa javítani.

(6) Hatalmas piros pont a szépségért, könnyen használhatóságért, világos értelmes működésért. de erről többet beszélni már nem lehet most egyetlen blogposztban. Aki többre vágyik, annak ott a rendkívül szinvonalas, tartalmas, addiktív Tableau-honlap.

Ha egy hátrányt mindenképpen kellene mondani, akkor megjegyezném, hogy a platformfüggetlenség elvesztésével  a 64-bites verzió könnyed triviális lehetősége is elveszett. A Tableau bizony 32-bites szoftver jelenleg, a 32-bites rendszerekre jellemző címzési korlátokkal.

Mondjuk a Tableau és TDE képességeinek érzékeltetésére megpróbáltak egy idei konferenciára összerakni egy real-scenariót egy képzeletbeli bank "Big Data" datasetje alapján. 102 millió sor 1.8 GB-on elfért. Kell tehát küzdeni,hogy Tableau-szempontból értelmes feladattal kinőjük magát a Tableau-t. ;)

Akit meg ennyi sem hatott meg, az meg nem célközönség. :)

FELADATOK. Szokás szerint Bill Howe(University Washington)-től.

Adva van egy Bird Strikes dataset:

Eredeti, 165.000 rekordos, hízó adatbázis:
http://www.faa.gov/airports/airport_safety/wildlife/database/
http://wildlife.faa.gov/downloads/wildlife.zip (165.000 rekord)

100.000 rekordos változat:

http://www.tableausoftware.com/public/community/sample-data-sets
http://www.tableausoftware.com/public/sites/default/files/Bird%20Strikes.xlsx

Reprodukáljuk az alábbi riportokat/dashboardot belőle:

1. Meg kell határozni, hogy az adatforrásunkban hány rekord van:
A Tableau-generált "Number of records" measure (baloldali zöld), felvonszolása "Rows"-ba

2. Mutassuk meg térképes színezéssel a madárrepülések és a repülés induló állama(hol szállt fel a repülőgép) közötti korrelációt
A Tableau generál térképes megjelenítéshez longitude és latitude adatokat.
A Tableau-generált "Number of records" measure (baloldali zöld), felvonszolása a "Color"-hoz
Az Edit Colornál lehet színeket állítani, felcserélni (reverse).

3. Bontsuk meg a költségeket "Origin state" szerint, rekordszám szerinti csökkenő sorrendben
A Tableau-generált "Number of records" measure (baloldali zöld), felvonszolása a "Columns"-hoz
Origin state felvonszolása "Rows"-hoz
Cost Total $ felvonszolása a "Color"-hoz
"Barchart"-ot válasszuk jobboldalon
Ábra alján lehet hossz szerint rendezni, egyébként fenn a "Rows","Columns"-oknál

4. Meg kell határoznia Repülési Dátumok idősorát, heti bontásban.
"Flight Date" felvonszolása, "Columns"-hoz. Vigyázat van folytonos és Discrete Dátum-kezelés!
A Tableau-generált "Number of records" measure (baloldali zöld), felvonszolása a "Rows"-hoz


5. Meg kell határozni ugyanezt éves bontás-ban, "Effect: Impact flight" mező vonatkozásában, de a Null és None-okat vonjuk össze
Kell egy mezőszármaztatás, jobb gomb "Effect: Impact flight" Create Group-pal


6. Kellene egy ehhez hasonló másik "Custom Dashboard", ahol egy általunk kitalált lényeges kérdést teszünk fel, amit az ábra szépen tudhat magyarázni.
A lenti dashboard: http://www.tableausoftware.com/public/gallery/bird-strikes
http://www.tableausoftware.com/public/gallery - Érdemes itt körülnézni, ki hogyan vizualizál.



Két féle irányból lehet támadni a feladatot:
(1)  A meglévő "Bird Strikes" dataset oszlopainak értelmét megvizsgáljuk, miből/melyekből lehet a legizgalmasabb kérdés(eke)t feltenni. Ha ez nem elég, akkor származtathatunk új oszlopo(ka)t is.
(2) A "csicsa" érdekében tobzódunk a vizuális orgiában, ahol az ábrába egy-két-három-etc oszlopot vonunk be "vizuális megformázással".
Például havonkénti bontásban hogyan alakulnak/korrelálnak a károsodási számok, a madárrajok repülésével
Ehhez származtatni kell egy text-mezőt:s
CASE [Effect: Indicated Damage] WHEN 'Caused damage' THEN 1 WHEN 'No damage' THEN 0 ELSE NULL END
Ezután a sheete-ket össze lehet pakolni könnyedén egy "New Dashboard"-ra.



7. Publikáljuk oda az előbbi "Custom Dashboard"-unkat,ahol az alábbi is van
A lenti dashboard: http://www.tableausoftware.com/public/gallery/when-birds-and-planes-collide
A dashboardban a nagy kaland a jobboldali sárgás-kék trend-ábrázolás.

Server/Tableau Public menüponton keresztül megtehető a publikálás.
Kell egy free és egyszerű Community Account regisztrálása hozzá (akár fake mail-címmel).
A publikálás után lementhető a link is, hogy megoszthassuk mással munkánkat.


Eddigi TABLEAU-blogposztjaim:
2013.06.17 - Data Science: Tableau-feladatok
2013.06.22 - Tableau: Egy vizualizációs stratégia lehetséges szubjektív sarokpontjai
2013-07-05 - Tableau: Mindennapi örömök
2013.07.09 - Tableau: Eset a NEM-létező egzotikus nagygépes adatpiaccal
2013.11.16 - Tableau: Aktuális Pros/Cons egyenleg
2013.11.17 - Tableau: Text Table

Ha valakinek még nincs meg a Tableau-szoftver, miközben szeretne engedni a birtoklási csábításnak, az alábbi mail-címen egy kedves, fiatal, aranyos kolléganő igyekszik hatékony és konkrét eszközök segítségével ápolni minden Tableau-vonzatú kapcsolatot. Illetve biztos segít optimális árat találni a termékhez vezető rögös úton. :)
hello@tableausoftware.hu

Nincsenek megjegyzések:

Megjegyzés küldése