RSS

Visualizing Data: Bir Kitap Eleştirisi ve Görselleştirme Örneği

29 Oct

Visualizing Data: Exploring and Explaining Data with the Processing Environment

Visualizing Data: Exploring and Explaining Data with the Processing Environment

Bu yazıda son zamanlarda gittikçe önem kazanmaya başlayan veri görselleştirme konusuna kısa bir giriş yaptıktan sonra Processing programlama ortamının geliştiricisi Ben Fry‘ın bu sene çıkardığı ‘Visualizing Data: Exploring and Explaining Data with the Processing Environment‘ kitabının tanıtımı ve eleştirisini gerçekleştireceğim.

Başka bir deyişle, görselleştirme konusuna ve önemine kısaca değindikten sonra kitabın bu konuda neler söylediği aktaracak ve kitaptan aldığım ilham ile iş dünyasına dair basit bir görselleştirme uygulaması örneği vereceğim: Bilgi Üniversitesi’nin eMBA programına gerçekleşen başvuruların yıllara ve coğrafyaya göre dağılımının animasyonu.

Görselleştirme: Neden Bu Kadar Önemli?

Herhangi bir düşünceyi, veriyi, bilgiyi karşımızdaki bir ya da birçok insana anlatmanın etkili yollarından biri de şekiller, grafikler, animasyonlar ve benzeri görsel öğeler kullanmaktır. İnsan zihni, beyindeki aşırı özelleşmiş görme sisteminin paralel bilgi işleme gücünü devreye soktuğu için görsel bilgi aktarımı, doğrusal yani çizgisel olarak aktarılabilen ‘yazılı’ veya ‘sadece sözel’ bilgi aktarımına kıyasla çok daha kısa sürede, çok daha kısıtlı bir alanın çok daha verimli kullanılmasını sağladığı gibi kişinin söz konusu bilgiyi çok daha kalıcı olarak hafızasına yerleştirmesini de sağlar.

Bilginin kitaplara dökülmeye başladığı ilk günden beri, tıp, mühendislik, coğrafya, vb. alanlardaki kitaplarda şemalar, grafikler, haritalar, vb. şekillerde karşımıza çıkan klasikleşmiş görselleştirme örnekleri yukarıda vurguladığımız hususların uzun zamandır göz önünde bulundurulduğuna bir işarettir.

Günümüzde ise veri görselleştirme (‘data visualization’) artık farklı boyutları bünyesinde barındırmaya ve başka bir kulvardan ilerlemeye başlamıştır. Yüzyıllar bir yana, 20-30 yıl öncesine kıyasla dahi elimizdeki veri miktarının ivmesi gittikçe artmakta, kurduğumuz bilimsel, finansal, vb. modellerdeki ilişkiler karmaşıklaşmakta; bir nevi veri okyanusunda yüzen kişilerin farklı veri tabanlarından akan verileri birbirleri ile ilişkilendirip sonra da elde ettikleri öngörüleri ve perspektifleri başkaları ile kolayca paylaşabilecek grafikleri, animasyonları hazırlayabilmeleri gittikçe bir uzmanlık haline gelmektedir.

Acaba bu uzmanlık alanına girmek isteyen, yani veriyi kolay anlaşılması için açık seçik ve çarpıcı şekilde grafiklere, animasyonlara dökmek isteyen insanların aynı zamanda bilgisayar uzmanı olması şart mıdır?

Görselleştirme: Hangi Araçlar ve Neden Processing?

Bugün sahip olduğumuz yazılımlara baktığımızda görüyoruz ki çok çeşitli görselleştirmeler için hepimizin bir bilgisayar programcısı, uzmanı olması şart değil. Programlamaya dair hiç eğitim almamış insanlar PowerPoint, EXCEL, vb. araçlarla pek çok grafik ve animasyon üretmekte, sayılarla haşır neşir olan ama programlama uzmanı olmayan istatistikçiler de SPPS, R, vb. yazılımlarla gösterişli grafikleri üretebilmektedirler.

Ancak hazır sunum araçlarının, istatistik yazılımlarının ve benzeri türde programların getirdiği şablonlara dayalı grafik üretimi maalesef dikensiz gül bahçesi değildir. Her şeyden önce eldeki veriyi en iyi temsil edecek grafik şablonunu seçmek her zaman başarılı şekilde verilebilen bir karar değildir ve sunumlar yanlış şekilde saçma sapan kullanılmış pasta grafikler yahut gereksiz üç boyutlu çubuk grafiklerle doludur. Bu yetmezmiş gibi ya elinizdeki veriye uygun hiçbir şablon yoksa? Ya üç boyuttan fazlasını barındıran bir veri setiniz varsa? Yahut yepyeni bir görselleştirme yöntemi aklınıza geldiyse? Neden kendinizi kısıtlayasınız? Yepyeni grafik ve animasyon türleri yaratmak işinize gelmez miydi? Peki ama bunun için bilgisayar programlama uzmanı olmanız şart mı?

Processing‘in yaratıcısı Ben Fry, yıllar önce bu soruya ‘hayır!’ cevabını verdi ve Processing isimli görsel veri geliştirme ortamını insanlarla paylaşmaya başladı. Processing programlama dili ve ortamı şu anda dünyada pek çok üniversitenin görsel iletişim tasarım bölümlerinde, programlama işinden çok anlamayan ve haklı olarak anlamak da istemeyen tasarımcıların, görselleştirme araştırmacılarının kullandığı basit ama güçlü bir araç haline geldi.

Java programlama dilini üstüne inşa edilmiş Processing, kendisini kullanan tasarımcıyı Java’nın pek çok detayından ve hamallığından kurtardığı gibi geliştirme ortamı ile sonuçları hızlıca test etme ve çıkan ürünü çeşitli şekillerde paketleyip kolayca Internet üzerinden paylaşabilme imkanı sunmaktadır. Pek çok grafik ve animasyon işini çok az kod yazarak ifade etmeye imkan tanımasının yanısıra uzman Java programcılarının da kendi programlarında kullanabilecekleri bir kütüphane olarak da sunulduğu için sadece tasarımcılara değil uzman programcılara da yardımcı olabilecek durumdadır. Beklendiği gibi sistem pek çok örnekle ve fonksiyon belgelendirmesi ile gelmektedir ancak görselleştirme gibi soyut ve geniş bir alan söz konusu olduğunda aracın kendisi ve kullanım kılavuzu tek başına ne kadar yeterli olabilir?

Visualizing Data: Verilerinizi Processing ile Keşfetme ve Açıklama Kılavuzu

Sorunun cevabı yine Ben Fry tarafından yazılmış ve 2008 yılının Ocak ayında çıkmış ‘Visualizing Data: Exploring and Explaining Data with the Processing Environment’ kitabında yer almaktadır. Bu eser, Processing ile ilgilensin ilgilenmesin tüm görselleştirme araştırmacılarının, pratik olarak bir veriyi görsel şekilde sunmak üzere tasarım yapanların ve programcıların faydalanabileceği değerli bir kaynaktır.

Ben Fry, kitapta önce genel olarak herhangi bir görselleştirme projesinde takip edilmesi gereken adımları anlatmakta ve ardından çeşitli verilerin ve veri tabanlarının Processing ile nasıl görsel bir ortamda sunulabileceklerine dair somut örnekler vermektedir.

Kitaptaki somut uygulamalardan birkaç örnek vermek gerekirse: haritalarla farklı veri tabanlarını birleştirme, zaman serileri, bağlantıları ve korelasyonları alışık olmadığımız şekillerde gösterme, karmaşık veri kümelerini ‘scatterplot’ ile açıklama, ağaç yapıları ve özyineleme ile ağaç haritaları (‘treemaps’) kullanarak bilgisayarınızdaki verilere kuşbakışı göz atmak, çizgeler (graflar) ve ağları kullanarak görsel veri madenciliği, vs.

Kitap bu somut örneklerden ve faydalı ipuçlarından sonra hemen her türlü görselleştirme uygulamasında ihtiyaç duyulacak veri tabanı bağlantıları, veri çözümleme (‘parsing’), düzenli ifadeler ve benzeri konuların
Processing ile nasıl gerçekleştirilebileceği ve Processing’in herhangi bir Java programlama ortamında bir kütüphane gibi nasıl kullanılabileceğine dair kısa kılavuzlar sunmaktadır.

Fry, kitabında pek çok konuya değinmekle ve somut uygulama örnekleri vermekle birlikte kitabın isminin biraz iddialı olduğu kabul edilebilir çünkü eserde veri görselleştirmeye dair ciddi bir çerçeve ve teorik bakış açısı sunup sonra bunu pratik problem çözümlerine uygulama yaklaşımından ziyade “bakın şunu da yapabilirsiniz, böyle bir teknikle şu tür veriyi Processing animasyonu olarak sunarsınız, güzel olur” tarzı yaklaşım hakim görünmektedir. MIT Media Laboratuvarı ortamında Estetik ve Hesaplama dalında doktora çalışması yapmış ve Carnegie Mellon School of Design’da ders vermis Ben Fry’dan böyle bir şeyi beklemek fazla olmazdı diye düşünüyorum. Kitaba güç katabilecek bir başka güzellik de belki Processing’in tıpkı diğer grafik araçlar gibi nasıl yanlış kullanılabileceğine dair birkaç örnek olabilirdi ancak tabii bunu düzgün
yapabilmek için de az önce bahsettiğim teorik çerçevenin oturtulmuş olması gerekirdi.

Bir Görselleştirme Örneği: eMBA Öğrenci Başvurularının Yıllara ve İllere Göre Dağılımının Animasyonu

Bu örnekte temelde yukarıda eleştirdiğim kitabın ‘Mapping’ başlıklı üçüncü bölümündeki bilgilerden faydalandım. Processing ortamının kurulumunun gayet rahat gerçekleştiğini belirtmeliyim. Bu tür şeyleri kodlamak açısından C, C# ve Java aşinalığım pek çok açıdan rahat etmemi sağladı ancak Processing’e hafif bir giriş yapmış bir tasarımcının dahi kolayca anlayabileceği bir örnek olduğuna inanıyorum.

İstanbul Bilgi Üniversitesi tarafından 8 yıldır sürdürülen ve Türkiye’deki ilk ‘Internet üzerinden işletme yüksek lisansı eğitimi’ programı olan eMBA sisteminin veritabanındaki yıllık başvuru verilerini kullandım. Amacım çok basit bir arayüz ile Türkiye’nin hangi illerinde eMBA başvuru yığılması olduğunu göstermek ve yıllar içinde ilerledikçe hangi illerde nasıl bir değişim olduğunu kolayca gösterebilmekti.

eMBA Başvurularının Yıllara ve İllere Göre Dağılımı - Processing ile Bir Görselleştirme Örneği

eMBA Başvurularının Yıllara ve İllere Göre Dağılımı - Processing ile Bir Görselleştirme Örneği

Amacıma hizmet edebilecek bir Türkiye haritası grafiği bulduktan ve eMBA veritabanındaki başvuru verilerini çektikten sonra bunları Processing içinde harmanlamak ve biraz test etmek birkaç saatlik vaktimi aldı. Processing’e artı bir puanı ise bu çalışmamı paketleyip paylaşmaya çalıştığımda verdim. Uygulamamı hem kendi başına çalışabilir bir Java uygulaması hem de bir web sayfasında görüntülenebilecek Java applet tabanlı şekilde, HTML sayfaları ve ilgili linkleri de (kaynak kod, kullanılan diğer malzemeler, vs.) içerir halde paketleyip bana sunması için Processing menüsünden ilgili Export seçeneğini seçmem ve çıkan dizini web siteme yollamam yeterli olmuştu.

Burada bahsettiğim örneği http://ileriseviye.org/stuff/ProcessingAppletDemo/ adresinde inceleyebilir, üzerine tıkladıktan sonra N ve P tuşları ile yıllar içinde ilerleyebilir ve Processing kaynak kodunu inceleyebilirsiniz.

Görselleştirmenin Ötesi ve Sonuç

Bu kısa makalede görselleştirme kavramına kısaca değinip Processing görselleştirme ortamını geliştiren Ben Fry’ın yazdığı ‘Visualizing Data’ kitabını eleştirmeye çalıştım ve kitaptan aldığım ilham ile geliştirdiğim basit bir görselleştirme uygulaması örneği sundum. Fry’ın bu kitabı ile birlikte Toby Segaran‘ın ‘Programming Collective Intelligence: Building Smart Web 2.0 Applications‘ kitabı paralel olarak okunursa çok daha faydalı olacağı kanaatindeyim çünkü modern veri madenciliği ve makina öğrenme yöntemleri ile güçlü görselleştirme teknikleri ve araçları bir araya gelince daha önce akıl edilmemiş çok farklı bakış açıları sunmanın mümkün olacağını düşünüyorum. Ayrıca her ne kadar Processing güçlü bir platforma dayanıyor olsa da Java yerine dinamik dillere dayanan görselleştirme ortamlarının hızlı prototip üretimi konusunda tasarımcıya ve / veya programcıya daha çok esneklik sunabileceğini düşünüyorum, bunlara bir örnek olarak Python tabanlı NodeBox gösterilebilir. Ve tabii son bir öneri olarak görselleştirme ile ilgilenen tasarımcıların değil ama belki programcıların faydalanabileceği bir kitaplık olan UbiGraph‘ın da ismini anmadan geçemiyorum yazıyı bitirirken çünkü her ne kadar başka bir yazının konusu olabilecek kadar detaylı bir uygulama olsa da görselleştirme bağlamında nelerin yapılabileceğine dair güzel bir örnek.

Tıpkı bahsi geçen kitapların bana ilham vermiş olduğu gibi bu yazının da bazı okurlara bazı güzel işler için ilham vermesini temenni ederim.

Not: Verdiğim örnekteki eMBA uygulaması için bana gerekli Türkiye haritasını sağlayan Boran Puhaloğlu’na teşekkür ederim.

Advertisements
 
7 Comments

Posted by on October 29, 2008 in General, Programlama

 

7 responses to “Visualizing Data: Bir Kitap Eleştirisi ve Görselleştirme Örneği

  1. çağdaş

    October 30, 2008 at 14:41

    yazı için teşekkürler. ilgilenenler john resig’in çalışmasına da bakabilir.
    http://ejohn.org/blog/processingjs/

    -cagdas

     
  2. Metin Vatansever

    November 2, 2008 at 21:36

    Görsel veri madenciliği üzerine bir yüksek lisans tez çalışması yaptım. Çalışmamda veri madenciliği yöntemlerinin bazı dez avantajlarının tespiti ve de gerekli iyileştirmelerin görsel yöntemlerle nasıl yapılabileceğini gördüm. Görsel veri madenciliğinin grafik denilip geçilemeyecek kadar önemli olduğunu da bu şekilde deneyimledim. Sonuç olarak görsellik analiz aşamasında kullanıcıya doğru algoritmaların seçiminde, algoritma sonuçlarının geçerliliğinin testinde ve gerekli düzenlemelerin yapılmasında son derece yararlı olabilmektedir.
    Umarım SAS ve SPSS gibi popüler istatistik programları görsel yöntemlere yeteri kadar önem verir. Çünkü çeşitli görsel teknikler bulunmakta ve herbirisi belli durumlarda diğerine tercih edilmektedir.

     
  3. Emre Sevinc

    November 2, 2008 at 21:44

    Yorum ve bilgiler için çok teşekkürler.

    Tezinizin elektronik kopyasına erişebiliyor muyuz acaba? Adres nedir?

    İyi günler.

     
  4. Metin Vatansever

    November 3, 2008 at 18:01

    İyi günler.

    Tezimi 2008 yılında, Fen Bilimleri Enstitüsü YTÜ İstatistik Anabilim Dalında Yaptım. Tezimin adı Görsel Veri Madenciliği Tekniklerinin Kümeleme Analizlerinde Kullanımı ve Uygulanması’ dır. YÖK ün tez sayfaları arasına konup konmadığını bilemiyorum.

     
  5. Metin Vatansever

    November 3, 2008 at 18:01

    İyi günler.

    Tezimi 2008 yılında, Fen Bilimleri Enstitüsü YTÜ İstatistik Anabilim Dalında Yaptım. Tezimin adı Görsel Veri Madenciliği Tekniklerinin Kümeleme Analizlerinde Kullanımı ve Uygulanması’ dır. YÖK ün tez sayfaları arasına konup konmadığını bilemiyorum.

     
  6. Ali Utku Selen

    November 23, 2008 at 01:28

     
  7. Cuneyt

    December 18, 2008 at 23:35

    data visulation konusunda ileri seviye coder var mi ulkemizde

     

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: