Saturday 6 August 2011

Data Visualization - Ambiant Workshop 2011

Η πιο ανανεωμένη έκδοση του post βρίσκεται στο facebook note:
http://www.facebook.com/note.php?note_id=227490770622932

Καθώς η πιο ευαίσθητη και πιο ισχυρή από τις πέντε αισθήσεις είναι η όραση είναι διαισθητικά προσιτό σε έναν άνθρωπο να εκφράζει τα πάντα μέσω εικόνας.
Το Data Visualization είναι η εικαστική αναπαράσταση κάποιων δεδομένων. Στόχος είναι να επικοινωνήσουμε όσο το δυνατόν πιο αποδοτικά και οικεία τα πορίσματα που προκύπτουν από τα δεδομένα προς τον ενδιαφερόμενο.
Ένα πετυχημένο Data Visualization είναι αναγκαίο να βρίσκεται μεταξύ λειτουργικού και όμορφου εικαστικού.
Στην παρακάτω εικόνα φαίνεται το πιο απλό παράδειγμα απεικόνισης δεδομένων που είναι η γνωστή σε όλους μας από τα μαθηματικά, γραφική παράσταση δύο αξόνων:


Παρόλο που αυτό το διάγραμμα είναι απόλυτα λειτουργικό δεν έχει καμία εικαστική αξία και ίσως αυτό να σημαίνει πως θα περάσει δυσκολότερα την πληροφορία στον αναγνώστη.

Από την άλλη πλευρά μπορεί η εικαστική παρέμβαση να είναι τόσο ισχυρή που η αλλοτρίωση των δεδομένων στην τελική εικόνα να είναι τέτοια που να έχει χαθεί όλη η πληροφορία και να έχει μείνει μόνο ένας πίνακας, μια φωτογραφία, ένα animation, όμορφο μεν αλλά που δεν μπορεί να μεταβιβάσει καμία πληροφορία. Ορίστε ένα τέτοιο παράδειγμα:



Στην παραπάνω εικόνα έχουμε στον πάτο τις προτάσεις που υπάρχουν μέσα στη βίβλο και κάθε τόξο απεικονίζει τις αναφορές που γίνονται από την μία πρόταση στην άλλη. Πέρα από το (προφανές) συμπέρασμα πως υπάρχουν πολλές αναφορές μεταξύ των προτάσεων της βίβλου, δεν μεταφέρεται κάποια άλλη πληροφορία. Αυτό είναι ελαφρώς ανούσιο εφόσον αν κάποιος ήθελε να παράγει μερικά χρωματιστά τόξα θα μπορούσε να το πετύχει και με έναν από τους δεκάδες ψευδοτυχαίους αλγορίθμους.

Αναφέρομαι στο data visualization ως μια μορφή τέχνης καθώς ο τρόπος με τον οποίο θα απεικονιστούν τα δεδομένα βασίζεται στην ανθρώπινη φαντασία. Σήμερα το data visualization το αναλαμβάνουν πληροφορικάριοι μόνο και μόνο επειδή έχουν την τεχνική γνώση να συνδέσουν την πληροφορία με την τελική εικόνα.
Πιστεύετε όμως πως εκάστοτε μηχανικός πληροφορικής που θα του ζητήθεί ή θα πάρει την πρωτοβουλία μόνος του να αναπαραστήσει τα δεδομένα με μια απεικόνιση χρησιμοποιεί εκείνη τη στιγμή τις τεχνικές του γνώσεις? Στην πραγματικότητα απλά χρησιμοποιεί τη φαντασία όπως οποιοσδήποτε άλλος άνθρωπος για το πως θα είναι το τελικό αποτέλεσμα. Δεν έχει τον απόλυτο έλεγχο στο τελικό αποτέλεσμα καθώς αυτό εξαρτάται από τι του δίνουμε ως είσοδο. Δηλαδή το εικαστικό μας έχει μια εξάρτηση από την πληροφορία. Γνωρίζουμε πως περίπου θα είναι αλλά δεν γνωρίζουμε πως ακριβώς θα είναι. Μάλιστα συνήθως φανταζόμαστε ποια θα είναι η αναπαράσταση σε μια μέση περίπτωση. Ακραίες περιπτώσεις στα δεδομένα μας όπου υπάρχει απόλυτη συμμετρία ή που όλα είναι ίσα μεταξύ τους ίσως να μας δώσει ένα μόνο σημείο ή να μας δώσει ένα επίπεδο, και να προκύψει κάτι τελείως flat και αδιάφορο, αλλά εξίσου αδιάφορα θα είναι και τα δεδομένα μας.

Όλα συνήθως αρχίζουν με μια ερώτηση: Ποια ήταν πραγματικά η δραστηριότητα του dropbox από όλους τους χρήστες για ένα ορισμένο χρονικό διάστημα ?? Φυσικά η δραστηριότητα θα χαρακτηρίζεται και από ορισμένα κριτήρια ώστε να δίνουμε συν ή πλην βαθμούς ανάλογα με τη δραστηριότητα που υπήρχε.

Αυτό που μας δίνεται από το ίδιο το dropbox είναι ένα αρχείο καταγραφών όπου γραμμή – γραμμή αναφέρονται με χρονολογική σειρά οι ενέργειες του κάθε χρήστη. Οι καταγραφές μοιάζουν κάπως έτσι:

  • In AmbiantWorkshop2011, Aris Bezas added 110720 and 2 more folders. 7/20/2011 8:50 PM
  • In AmbiantWorkshop2011, Stratos Kountouras renamed the folder ThaliaKotzampasi. 7/20/2011 1:17 PM
  • In AmbiantWorkshop2011, Manty Albani edited the file index_user_template_Greek_windows.txt. 7/20/2011 11:27 AM
  • In AmbiantWorkshop2011, Konstantinos Tiligadis deleted Test2.tmp and 2 more files. 7/20/2011 11:13 AM

Αν και εδώ είχαμε μόνο περίπου 400 γραμμές φανταστείτε πως δυνητικά θα είχαμε χιλιάδες καταγραφές. Αν θέλαμε να βρούμε κάτι πολύ συγκεκριμένο τότε σίγουρα ένα απλό search θα αρκούσε. Αν όμως θέλαμε την συνολική εικόνα των δεδομενών και τις συσχετίσεις με τους υπόλοιπους χρήστες?
Τότε θα έπρεπε να κάνουμε υπολογισμούς και να παρουσιάσουμε έναν επίσης δυσανάγνωστο πίνακα. Εδώ έχουμε χαρακτηριστικά μια περίπτωση όπου η οπτική αναπαράσταση των δεδομένων θα βοηθούσε.

Θα πάρουμε μια σχετικά απλή λύση: Ένα 3D γράφημα όπου με όροι και κοιλάδες θα φαίνεται η “αρνητική” ή “θετική” δραστηριότητα των χρηστών στην πορεία του χρόνου.

Απαραίτητο στοιχείο για την αναπαράσταση των δεδομένων είναι να έχουμε κάτι μετρήσιμο. Οι παραπάνω γραμμές που παράγονται από το dropbox θα γίνουν ένας πίνακας με δεδομένα. Εδώ θα έχουμε ένα τρισδιάστατο γράφημα με τρεις άξονες:
  1. Ο άξονας με τους χρήστες
  2. Ο άξονας του χρόνου
  3. και ο άξονας του μέτρου της δραστηριότητας εκείνη την χρονική στιγμή
Ο πίνακας των δεδομένων θα μοιάζει κάπως έτσι:


Στην πρώτη στήλη είναι η χρονική στιγμή. Η χρονική στιγμή εδώ είναι τα δευτερόλεπτα που έχουν παρέλθει από την εποχή EPOCH. Αλλά δεν χρειάζεται να μπούμε σε τεχνικές λεπτομέρειες, αρκεί να θυμάται κανείς πως ο χρόνος είναι εκφρασμένος σε δευτερόλεπτα. Στην δεύτερη στήλη έχουμε τον χρήστη, ενώ στην τρίτη και τελευταία στήλη την ενέργεια του χρήστη εκείνη την χρονική στιγμή.
Με άλλα λόγια απλοποιήσαμε την αναφορά του dropbox σε μια γραμμή με τρία(3) μετρήσιμα στοιχεία.

Τεχνικές λεπτομέρειες
Για τη δημιουργία του 3D γραφήματος μπορούμε να χρησιμοποιήσουμε τα εργαλεία mathematica και matlab ή οποιοδήποτε άλλο πρόγραμμα μπορεί να παράγει τρισδιάστατα γραφήματα. Στην προκειμένη περίπτωση χρησιμοποιήσαμε το Octave, μια open-source λύση που αποτελεί το δωρεάν παιδί της matlab. Έχει πλήρη υποστήριξη του matlab script απλά απουσιάζουν ορισμένες προχωρημένες δυνατότητες του matlab που ίσως χρειαστούν σε εξειδικευμένες περιπτώσεις.

Στον άξονα με τους χρήστες, θα μπορούσαμε να τους κατανήμουμε αυθαίρετα σε σχέση με τα δεδομένα, πχ. με αλφαβητικό τρόπο. Εντούτοις για να έχει πιο smooth μορφή το τελικό αποτέλεσμα θα κατανείμουμε τους χρήστες σύμφωνα το σύνολο των δραστηριοτήτων που έχουν αυτοί ανεξάρτητα από το ποια δραστηριότητα μιλάμε.

Τώρα όσον αφορά τις δραστηριότητες, κάναμε μια απλή παρατήρηση στις γραμμές του dropbox και διαπιστώσαμε πως έχουμε τις εξής εννέα ενέργειες:
  1. added
  2. deleted
  3. edited
  4. invited
  5. joined
  6. left
  7. moved
  8. renamed
  9. restored

Εδώ εμφανίζεται και το δυναμικό της όλης υπόθεσης από την μεριά του δημιουργού του data visualization. Δίνοντας διαφορετική βαρύτητα, διαφορετικά βάρη σε κάθε ενέργεια θα προκύψουν διαφορετικά 3D γραφήματα που θα ανταποκρίνεται σε διαφορετικό πόρισμα το καθένα.

Επιπλέον για να το κάνουμε πιο θεαματικό το 3D γράφημα αυτό θα εξελίσσεται στο χρόνο, πάνω στον άξονα του χρόνου. Επιπλέον θα περιστρέψουμε την κάμερα κάτα 90 μοίρες πάνω στο ίδιο animation.

Αν θεωρήσουμε πως όλες οι ενέργειες είναι ισάξιες, δηλαδή added=1, deleted=1, edited=1 κτλ. τοτε προκύπτει το παρακάτω animation:
http://www.multiupload.com/V74CE8WDT4
Ενώ αν ορίσουμε διαφορετικά βάρη σε κάθε ενέργεια πχ. με το παρακάτω μοτίβο:
  • added: +1 γιατί μας αρέσει που προσθέτει
  • deleted: -2 γιατί δεν μας αρέσει καθόλου που αφαιρείς
  • edited: 0 διότι η επεξεργασία ήδη υπάρχοντων αρχείων μας αφήνει αδιάφορους
  • invited: +2 γιατί θέλουμε να μεγαλώσει η κοινότητα των χρηστών
  • joined: +10 γιατί χαιρόμαστε που είσαι και εσύ μέλος της παρέας
  • left: -10 γιατί μας άφησες
  • moved: -1 γιατί θα μας βάλεις να ψάχνουμε αρχεία
  • renamed: -1 γιατί θα ψάχνουμε το παλιό όνομα του αρχείου
  • restored: +2 διότι ευχαριστούμε που το ανέκτησες
Όπως βλέπουμε στο παρακάτω animation ο άρης μπέζας δεν είναι πλέον ο πιο δημοφιλής χρήστης όλες τις χρονικές στιγμές αλλά υπάρχουν στιγμές που έχει φτάσει στο μείον:
http://www.multiupload.com/T22QZ90CY4

Προσέξτε πως το Octave δεν έχει τη δυνατότητα με εύκολο τρόπο να παράγει animation αλλά δίνει την δυνατότητα να εξάγουμε κάθε καρέ ως .png αρχείο εικόνας. Χάρις τους encoders του linux μπορούμε να δημιουργήσουμε αρχείο βίντεο από τα καρέ ορίζοντας το ρυθμό των καρέ. Στη δική μας περίπτωση χρησιμοποιήσαμε το mencoder με την εξής εντολή:
mencoder "mf://*.png" -mf fps=16 -o allframes.avi -ovc lavc -lavcopts vcodec=mjpeg:vbitrate=2000
Όπως βλέπουμε ορίσαμε τo frame rate σε 16 ώστε να προκύπτει ένα animation 25 δευτερολέπτων.

Το παραπάνω παράδειγμα δείχνει με απτό και άμεσο τρόπο την δραστηριότητα των χρηστών στο dropbox κατά τη διάρκεια του σεμιναρίου Ambiant Workshop 2011. Αυτό το παράδειγμα δυστυχώς δεν είναι άμεσα συνδεδεμένο με το dropbox, διότι αν συνέβαινε αυτό θα είχαμε ένα ζωντανό animation που θα άλλαζε ανάλογα την δραστηριότητα των χρηστών που το απαρτίζουν.

Ο κώδικας και τα δεδομένα του project βρίσκονται στο zip αρχείο:
http://www.multiupload.com/WE01AV4GBS

Πρόσθετες Αναφορές
Η πληροφορία δεν χρειάζεται να είναι ατελειώτα κατεβατά, γιγάντιοι πίνακες δεδομένων ή χαοτικές βάσεις δεδομένων μέσα στις οποίες ψάχνουμε τα δεδομένα που θέλουμε να βρούμε. Η πληροφορία μπορεί να είναι όμορφη. Και φυσικά υπάρχει ιστοσελίδα που ονομάζεται ακριβώς έτσι: http://www.informationisbeautiful.net/

Ας δούμε και ορισμένες υλοποιήσεις data visualization που έχουν παρουσιαστεί στην εν λόγω ιστοσελίδα ώστε να έχουμε μια καλύτερη κατανόηση του τι μπορούμε να κάνουμε με τα δεδομένα για να βγάλουμε ωραίες απεικονίσεις και animation.

Ένα κλασσικό visualization είναι να προβάλλουμε πληροφορίες πάνω σε χάρτη για να δείξουμε τη χωρική κατανομή κάποιων δεδομένων. Για παράδειγμα οι ακόλουθες φωτογραφίες μπορούν να περνάνε η μία στην άλλη με ένα απλό transition. Τα παρακάτω δεδομένα αναπαριστούν τις περιοχές όπου το εκάστοτε ναρκωτικό έχει τη μεγαλύτερη εμφάνιση σε σχέση με τον παγκόσμιο μέσο όρο.







Αυτός ο χάρτης θα μπορούσε να αλλάζει δυναμικά με την πάροδο του χρόνου εάν υπήρχε σωρός χρονολογικών δεδομένων.

Καμία φορά μερικά κουτάκια και λίγο χρώμα αρκούν:
 
Στην παραπάνω εικόνα φαίνονται πόσα λεφτά έβγαλε η wikipedia με τα διάφορα promo που είχε στο internet. Τελικά η ευγνωμοσύνη απέδωσε αρκετά λιγότερα από την ενοχή!

Αν ρωτούσατε να μάθετε για όλες τις φυλές του κόσμου ποιο χρώμα έχουν στο μυαλό τους για τις διάφορες έννοιες και συναισθήματα θα καταλήγατε με μεγάλους πίνακες. Αν όμως κατασκευάζατε ένα visualization σε έναν κύκλο θα μπορούσαν όλα αυτά να αναπαρασταθούν πολύ πιο λιτά όπως φαίνεται στην παρακάτω εικόνα:

Φυσικά η παραπάνω εικόνα δεν μπορεί να ανταποκρίνεται σε animation.

Το μεγάλο ατού των data visualization είναι η αναπαράσταση των σχέσεων μεταξύ των στοιχείων που υπάρχουν στο γράφημα. Για παράδειγμα μια ωραία ερώτηση θα ήταν για τα διάφορα ροφήματα ποιο προσφέρει την περισσότερη ή λιγότερη καφείνη και ποιο φέρει περισσότερες ή λιγότερες θερμίδες. Ούτε αυτό μπορεί να γίνει animation αλλά μας δίνει ένα καλό παράδειγμα πόσο διαισθητικά περνάει η πληροφορία και πόσο γρήγορα μπορούμε να βγάλουμε μια καλή σχετική εκτίμηση για το αγαπημένο μας ρόφημα.


 Αντιθέτως η παρακάτω εικόνα μπορεί να είναι ιδιαίτερη δυναμική αν μετακινηθεί στο χώρο (στις διάφορες τοποθεσίες) ή στο χρόνο καθόσο αφορά την δραστηριότητα των χρηστών στο twitter.

  Αν πάμε σε κάτι πιο δυνατό θα ήταν να αναπαριστήσουμε τις μηνύσεις που έχουν γίνει μεταξύ μεγάλων εταιρειών. Και εδώ σε πρώτη φάση μπορούμε να φανταστούμε πίνακες με τα ονόματα των εταιρειών που εμπλέκονται στη μήνυση καθώς και ημερομηνίες κτλ. Μια απόλυτη βαρετή διαδικασία. Αλλα για ρίξτε μια ματιά στην ακόλουθη εικόνα:


Έχοντας ταυτόχρονα πληροφορία για τα έσοδα (με το μέγεθος) και για την πορεία των εσόδων (με το χρώμα) έχουμε μια πολύ πιο ωραία διαισθητικά αναπαράσταση της μάχης των μεγάλων εταιρείων. Φυσικά και θα μπορούσαμε να φτιάξουμε ένα animation για να δείξουμε πως εξελίσσονται τα παραπάνω βελάκια (μηνύσεις) στην πορεία του χρόνου.

Το τελευταίο data visualization είναι ένα flash animation που μπορείτε να το βρείτε στην ιστοσελίδα:
http://projects.flowingdata.com/walmart/

Αυτό το data visualization animation είναι η πραγματική ιστορία ανάπτυξης μιας αμερικάνικης εταιρείας από το 1962 μέχρι το 2010. Χωρίς πολλά εφέ άλλα ούτε και ήχο, σε κάνει να νιώθεις την επιταχυνόμενη εξέλιξη της εταιρείας και της επιβίωσής της μέχρι και σήμερα.

Εν κατακλείδι φαντασία να υπάρχει και όλες οι ιδέες είναι καλές. Φανταστείτε αν είχαμε μια αποθήκη με όπλα και θέλαμε να δούμε πόσα όπλα υπάρχουν από το κάθε είδος θα μπορούσαμε να είχαμε μια φιγούρα, έναν 3D στρατιώτη ο οποίος θα έφερε πάνω του όλα τα είδη όπλων που έχει η αποθήκη. Θα μπορούσαμε να έχουμε το πλήθος των όπλων να αντιστοιχεί σε μια χρωματική απόχρωση που να κυμαίνεται από το χάλκινο έως το χρυσό.
Αλήθεια αν το σκεφτούμε πιο καλά δεν υπάρχει δεδομένο που να μην μπορεί να αναπαρασταθεί εικαστικά αν βάλουμε τη φαντασία μας να δουλέψει. Αν είχαμε τα ποτά ενός bar και μπορούσαμε να μετρήσουμε σε πραγματικό χρόνο πόσα λίτρα αλκοολ υπάρχουν αλλά και καταναλώνονται τότε θα είχαμε ένα μπουκάλι που αυξομειώνεται το ύψος του. Αν επίσης μπορούσαμε να μετρήσουμε το μέσο όρο βαθμού αλκοολ από όλα τα ποτά του μπαρ θα είχαμε το μπουκάλι να λεπταίνει ή να παχαίνει ανάλογα τον βαθμό αλκοολ.

Ένα επιπλέον κίνητρο για όσους δεν πείστηκαν με τα παραπάνω: Οι διευθυντές συχνά ζητάνε να έχουν μια εικόνα της κατάστασης. Αν και οι παλιότεροι θα σας ζητήσουν απλά να τους δώσετε ένα excel αρχείο, οι νεότεροι κυριολεκτούν στην λέξη εικόνα. Με πιο απλά λόγια οι manager καυλώνουν στην οπτική ανάπαρασταση μιας κατάστασης ή κάποιων δεδομένων που την περιγράφουν και πλέον είναι ο ευκολότερος τρόπος να πουλήσεις τη δουλειά (:

Επιμέλεια: Γιώργος Πληγορόπουλος
Share This
Subscribe Here

0 comments:

Post a Comment

 

Applied Ideas Copyright © 2010
George Pligor - Stergios