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

0
FZ
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.
Visualizing Data: Exploring and Explaining Data with the Processing Environment 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

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 birlikte 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ürler.

Emre Sevinç, 29 Ekim 2088
Bilgisayar Bilimleri Bölümü
İstanbul Bilgi Üniversitesi

Yazının özgün adresi: http://ileriseviye.org/blog/?p=1116

Görüşler

0
FZ
Kendi yazıma yorum yapayım, Ben Fry'ı vermediği için eleştirdiğim teorik çerçeveyi şu anda yani ne tür veri için ne tür görselleştirme kullanılabilir sorusunun cevabını Dan Roam'un 'The Back of the Napkin: Solving Problems and Selling Ideas with Pictures' kitabı veriyor gibi görünüyor (kitabı henüz yarıladım ve şu anda gayet olumlu izlenimlerim var) [1, 2]. Bitirince muhtemelen Türkçe LibraryThing.com sayfamda yorum yazarım.

1- http://www.amazon.com/Back-Napkin-Solving-Problems-Pictures/dp/1591841992
2- http://www.thebackofthenapkin.com/
Görüş belirtmek için giriş yapın...

İlgili Yazılar

Hibernate Üzerine Bir Sunum

malkocoglu_2

Tüm zamanların en başarılı kalıcılık (persistence) aracı Hibernate hakkında şirket bünyesinde yaptığımız bir sunumu paylaşıyoruz. Sunum, Hibernate'in en temel özelliklerinden başlayarak sorgulama, önbellekleme, veri tabanı bağlantı havuzları gibi kavramları kapsamaktadır. Hibernate hakkında ek bir haber de, JBoss gurubunun, Hibernate projesine sponsor olmaya karar vermiş olmasıdır ve Hibernate kurucu elemanları artık JBoss şirketinde çalışmakta, açık yazılım ürünlerine verdikleri servis üzerinden para kazanmaktadırlar. İşte bir diğer açık yazılım başarı hikayesi!

Not: Bu sunum da Gnu Emacs ve LateX ile hazırlanmıştır. :) Latex kodlarından derlenmiş slaylatların animasyon ile birbirinden geçiş yapabilmesi hoşunuza gidebilir.

Powerpoint?

O da ne?

Lessig, ''Code and Other Laws of Cyberspace'' kitabını okurlarıyla güncelleyecek

butch

Lawrence Lessig, ilk basımı 1999'da yapılan "Code and Other Laws of Cyberspace" kitabının yeni basımı için içeriğini güncellemek amacıyla ilginç ama kendisine yakışır bir yöntem seçti. Wiki tabanlı bir sistem aracılığıyla kitabın güncellenmesi sürecine herkes dahil olabilecek.
/.

Zemberek Nasıl Çalışır? 1. Bölüm: Sözlük ve Kök Ağacı

FZ

Zemberek bir kelimenin Türkçe olup olmadığına nasıl karar veriyor? Bu basit sorunun cevabı "verilen bir kelimeyi Türkçe kök ve eklerine ayırabilirseniz Türkçedir, ayıramıyorsanız değildir". Kısacası bir kelimenin Türkçe olup olmamasını anlamak için morfolojik analiz yapabilmelisiniz. Türkçe yazım denetimi yapabilmek için önceleri en sık kullanılan kelimelerin bir dosyaya konulup gelen kelimelerin o dosyadan kontrol edilmesi gibi ilk bakışta mantıklı görünen ama biraz inceleyince pratik olmadığı anlaşılan yöntemler de düşünülmüştü. Bu tür yöntemlerin yetersiz olan %98-99 doğrulukla çalışması için bile milyonlarca kelimeyi içermesi gerekir.

Makalenin devamı: http://zembereknlp.blogspot.com/2007/02/zemberek-nasl-alr-1szlk-ve-kk-aac.html

Biz

SHiBuMi

"Dünya bizi kurtarma ve bize iyilik yapma aşkıyla dolu insanlar tarafından kana bulandı. Tarihteki bütün savaşları içi iyilikle dolup taşan, kendini bir dava uğruna feda ettiğini düşünen kurtarıcılar çıkardı.

Hitler Almanları, Stalin işçileri, Mao köylüleri kurtarmak için dünyayı kana buladı. Milyonlarca insan kurtarıcıların şefkat dolu ellerinde can verdi. Hep Biz dediler, hiç Ben deyip kendilerini düşünmediler.

`How to Become A Hacker´ Türkçe Çevirisi

Challenger

Ülkemizde ve dünyada, hackerlar; bilgisayar sistemlerine giren, bilgi çalan, sistemleri bozmak için saldırılar düzenleyen kötü niyetli kişiler olarak bilinmekte. Hackerlık konusunda birçok yazı yazılıp çizilmekte ve hackerların ne kadar büyük bir tehlike olduğu anlatılmakta. Oysa hackerlar, sanıldığı gibi bir şeyler bozmaktan ziyade problem çözmek, yeni bir şeyler icad etmek gibi yararlı işlerle uğraşan insanlardır. Üstelik hackerlığın 1960´lı yıllara dayanan bir geçmişi ve bu süreç içerisinde gelişen bir kültürü vardır.