19 Haziran 2011 Pazar

BİLGİNİN YOLCULUĞU

Veri madenciliği bir disiplin olarak nispeten yenidir fakat veri madenciliği görevlerinin tarihi oldukça eskilere dayanır. VERİ (data) à BİLGİ (information) à ANLAM (knowledge), ilk insandan bu yana bilinen ve kullanılan bir süreçtir. Önce olgulardan ve gerçeklerden veriler elde edilir, onlar tasnif edilerek gerekli ve gereksiz olanları ayırt edilir, her birine bir etiket verilerek bilgi haline getirilir ve ardından bu bilgilerden karar vermeye yardımcı sonuçlar çıkarılarak süreç tamamlanır. Yaşanan olaylar, olaylardan çıkarılan dersler ve bunu yorumlayan ozanlar, bilge dedeler aslında birer veri madenciliği aktörüdür. Ozanların, bilge dedelerin dillerindeki öğütler, aslında veri madenciliğine ait en önemli tarihi belgeler niteliğindedir. Bir sayısal alan olan veri madenciliği aynı zamanda sosyal problemler için de kullanılabilmiş ve toplumun bilgi birikiminin gelişmesine katkıda bulunmuştur.

Bir toplum için toplanan veriler veya doneler toplumun kültürünü nasıl oluşturmaktaysa toplumun nasıl hafızasını oluşturmakta ise bir kurum için toplanan ve işlenen veriler de o kurumun zekası olmaktadır. Kurumsal zeka denilen olay veri à bilgi à anlam üçlüsünün kuruma yansımasından başka bir şey değildir.

“Kelebek etkisi” olayını bilmeyen yoktur, bir bölgede sürü halinde aynı anda hareket eden kelebekler bir başka yerde fırtına meydana getirmektedir. Fiziksel bir olay başka bir yerde başka bir halde hissedilmekte ve dolayısıyla fiziksel olaylar arasında bir ilişki olduğu ortaya çıkmaktadır. Örnekleri çoğaltmak mümkündür, fiziksel olaylarda olduğu gibi sosyal olaylarda da etkileşim vardır. İlginç olan konu ise bu etkileşimlerin birçoğunun hala gizli olmasıdır.

Örneğin, evinde karınca besleyen bir bilim meraklısı depremleri önceden tespit ettiğini söylemektedir. Veri kaynağı karıncaların hareketleridir, veriyi ölçen ve işleyen karınca sahibi adamdır. Ardından karıncalardan edindiği bu bilgileri bir araya getirerek deprem ile ilgili bir tahminde bulunmaktadır. Bilinçli veya bilinçsiz olarak veriden anlama ulaşmış ve daha önemlisi belki tam tekniğine uygun olmasa bile veri madenciliği yapmıştır.

Dünyamızda hala gizli bulunan ve açığa çıkmayı bekleyen binlerce hatta milyonlarca bilgi ve kural bulunmaktadır. Bunların açığa çıkarılması ise veri madenciliği süreçleri ile mümkün olacaktır. Bu kitabı yazmaktaki amacımız ortaya çıkmayı bekleyen gizli bilgilerin bir an önce ortaya çıkmasına yardımcı olmak ve ayrıca veri okuryazarlığını artırmaktadır. Ham veriyi görerek kişilerin bu verilerle ne tip sonuçlar bulabileceğini anlaması bizim için yeterlidir. Çünkü veri madenciliği için en önemli başlangıç orasıdır. 

9 Haziran 2011 Perşembe

Veri Madenciliği Nedir?

Sene 91, üniversite sınavına girmişiz, sınav istediğim gibi geçmemiş ama sonuçlar o kadar da kötü değil. Yaptığım 18 tercihin elbette ilk 10 tanesinden ümidim yok ama son ikiye de kalmam herhalde diye hesap yapıyorum. Benimle ilgili o güne kadar ve o günden sonra bir rüya görmeyen, gördüyse de söylemeyen bir akrabam bana bir gün dedi ki “Hidayet, rüyamda sen taşla toprakla uğraşıyordun, herhalde taşlı, topraklı bir bölüm kazanacaksın”. En son eyvah dediğimi hatırlıyorum J şaka bir yana, kendi kendime inşallah bu rüya da yanlış gösteren rüyalardan biri olur diyorum.


Fakat ne gezer, bizim akrabanın güzelim rüyası doğru çıktı. Bana Jeoloji Mühendisliğinin yolları gözüktü. Kendime geldiğimde İzmir yolu yarım olmuştu bile. Bir yandan küçücük bir kasabadan Türkiye’nin en büyük üçüncü şehrine gitmenin zorluğu diğer yandan beklentilerimin altında bir bölümü kabul edemeyişim. Bütün bunların üstüne benim beğenmediğim bölümün birbirinden zor dersleri. Aman Allah’ım, her gün basıp geçtiğim, daha önce görsem yüzüne bile bakmayacağım nice taş, kaya, toprak hepsi de mi önemli olur muş. Jeoloji mühendisliğine giriş dersinden aldığım 13 gibi hem düşük hem de uğursuz bir not ile başladım yolda yolakta gördüğüm bütün taşları incelemeye. Her sabah okula giderken duvarlardaki taşlara baka baka okula gidiyorum. Görenlerin deli demesi umurumda değil. Ablamlara gidiyorum doğruca evlerinin arkasında taş toprak olan alana, ne mi yapıyorum, ne olacak çocuk gibi bir o taşı bir bu taşı alıyor, inceliyor ve taşı tanımaya çalışıyorum. Taşları inceleme sadece bu olsa iyi. Laboratuarlara gittiğimizde zaman oluyor taş kil kökenli mi diye taşa dilimizle dokunuyoruz (yalamak tabirini kullanmayacağımJ), zaman oluyor taşın ne kadar pürüzsüz olduğunu hissetmeye çalışıyoruz v.s. Bu çalışmanın sonunu merak ediyorsunuz değil mi? Birincisi taşları o kadar sevmeye başladım ki hala güzel bir taş görünce alıp evime götüresim gelir, ikincisi, ilkinden 13 aldığım sınavın ikincisinden 93 aldım, üçüncüsü ise taşların gizemli dünyası sayesinde her tür madene ve madenciliğe merakım arttı. Veri madenciliği dahil olmak üzere…

Biliyorum uzun bir giriş oldu fakat veri madenciliği anlatan sıkıcı kitaplardaki gibi başlamak istemedim ben. Farklı olmasını istedim. Belki de veri madenciliği yapmak için sizlerin de sebepleri olması gerektiğini düşündüğüm için böyle bir girişe gerek duydum.

Her yazımızda olduğu gibi bilinen tanımlar yerine biz kendi tanımlarımızı yapacağız bu yazıda da. Veri madenciliğine de kendi ruhumuzdan bir tanım koyarak başlayacağız. Veri Madenciliği; hiçbir şeyin sebepsiz meydana gelmediği şu evrende; sonuçlardan yola çıkarak sebepleri, sebepler arasında yer alıpta insanların göremediği ilişkileri ve sebepler sonucu ortaya çıkabilecek çıktıları tespit etmeye çalışan biraz insana biraz da bilgisayarlara dayalı tekniğe verilen isimdir.

Veri Madenciliği Nedir sorusunu ne zaman bize sorsalar ve ne zaman anlatsak maalesef herkes onu kendi açısından anlamaya çalışıyor ve maalesef hepsi de hata yapıyor. İstatistikle ilişkisi tabiî ki var ama o istatistik değil, veritabanları ile de ilişkisi var ama tek başına veritabanı da değil, makine öğrenmesi tekniklerini kullanıyor ama kardeşim makine öğrenmesi ile tamamen farklı. Bir şeyin veri madenciliği olabilmesi için en azından Veritabanlarından Bilgi Keşfi süreçlerini içermesi lazım. Pazar sepeti analizini anlattığımız derslerde öğrenciler hemen tamam diyor, anladım. Patates ile soğan birlikte satılıyor bu bir veri madenciliği. Patates ile soğanın birlikte satıldığını bilmek için veri madenciliğine gerek yok ki, onu bilmeyen mi var. Önemli olan patates ile ton balığı birlikte satılıyor mu bunu bulabilmek. Yani, insanlar tarafından ilk bakışta görülemeyen ilişkileri bulan işlerdir veri madenciliği. Bakıyorsunuz, 30-40 örnek değişkenler arasında ilinti buluyor birisi ve adına veri madenciliği diyor. Be güzel kardeşim kasmana ne gerek var, o işlemi sen istatistiksel teknikler ile de rahatça yapabilirsin.

Bir veri madenciliği dersimin ilk saatinde öğrencilerime şunu söylemiştim. Arkadaşlar, bu dersin en önemli çıktısı sizi “veri okur yazarı” yapmak. Nasıl bilgisayar okur yazarlığı bilgisayarları kullanma konusunda belli bir seviyeyi işaret ediyorsa veri okur yazarlığı da verinin karakteristiklerine bakarak o veriden ne tür sonuçlar çıkabileceğini baştan kestirebilme yeteneğidir. Örneğin, ikisi de tahminsel metot olmasına rağmen hangi veri ile sınıflandırma hangisi ile regresyon yapılır. Veya hangi veri için yapay sinir ağları uygundur hangisi için destek vektör makineleri uygundur. Giriş değişkenleri neler olmalı, çıkı değişkenleri neler olmalı. Veya sadece giriş değişkenleri ile yapabileceğimiz veri madenciliği uygulamaları olabilir mi, bütün bunları bir mantık bütünlüğü içerisinde görebilmek gerekiyor. İşte bütünü görmeye ben özet olarak veri okur yazarlığı diyorum.

Veri madenciliği önemli mi? Yani biz bunca yıldır acaba boşuna mı çalıştık veya boş bir sevda peşinden mi gidiyoruz?

Hani derler ya bir daha dünyaya gelsem yine bu işi yapardım diye. Valla ben de yeniden aynı fırsatlar verilse yeniden veri madenciliği çalışırdım. Kim ne derse desin veri madenciliği geleceğin en önemli 5 alanından birisi olacak. Bu kehanet değil. İşi bilen ağabeyler öyle söylüyor. Geleceğin en önemli 5 alanından biri olmasa da ben seviyorum bu alanı fakat belki öyle şeylere değer verenler vardır diye söylüyorum.

Ben bu konuda ne mi yaptım. Valla doktoramı bu konuda yaptım, epeyce makale yaptım. Epeyce ders verdim. Epece kurs verdim. Konuyla ilgili çok sayıda hakemlik ve danışmanlık yaptım v.s. İnşallah bundan sonra da daha fazlasını yapacağız, çünkü alanla ilgili öğrenciler yetiştiriyorum.

Konuya merakı olan arkadaşlarla görüşmek ve çalışmak isteriz. Belki de en iyi veri madencisi bu yazıyı okuyan kişilerden birisi olacak.

2 Haziran 2011 Perşembe

Öznitelikleri Seçsek de mi Veri Madenciliği Yapsak Yoksa Seçmeden mi Yapsak?

Şu insanoğlu bir tuhaf, gün geçmiyor ki yeni bir şey çıkarmasın. Neymiş efendim bilgisayarda veri tutmak yetmezmiş dosyalama sistemleri geliştirilmeliymiş, neymiş efendim dosyalama sistemleri yetmezmiş veritabanı kullanmak lazımmış. Oh işte, veritabanı kullandık ve veri bolluğu bu sefer başımıza dert oldu. Topladık topladık ve sonunda topladıklarımız işe yarasın bari diye Veritabanlarından Bilgi Keşfi diye bir şey çıkardık.

Şaka bir yana, efendim bu verileri gerçekten değerlendirmek lazım. Ama nasıl? SQL bilmek yetmiyor kardeşim, daha zekice, hatta daha akıllıca işlere ihtiyaç var. Artık insan zekâsına yardımcı yapay zekâlara, artık öğrenen makinelere ihtiyaç var. İstatistik yetmiyor üstadım Veri Madenciliğine ihtiyaç var artık. Doğal dili bile anlayacak bilgisayarlara ihtiyaç var artık. Günümüz teknolojisi bunu istiyor artık.

2001 yılında heyecanlı bir doktora öğrencisi olarak, değerli hocam İbrahim Soğukpınar ile tez konusu ararken, hocam bana “Hidayet, Data Mining diye bir konu varmış, çalışmak ister misin” deyince, içinde Data lafı geçtiği için “Hocam ismi hoşuma gitti ben bu konuda çalışırım” diyerek veri madenciliği alanına bir giriş yaptım. Çalıştık, çabaladık, yayın yaptık, proje yaptık, kurs verdik, ders verdik, lab. Kurduk derken işin içine iyiden iyiye girdik. Hatta sınırlarımızı metin madenciliğine kadar da ilerlettik. İşte tam da bu noktada, veri madenciliğinin ve metin madenciliğinin önemli konularından biri oldukça ilgimi çekti. Öznitelik seçimi. Nedir bu konu? Neye yarar? Sıkmadan ve sıkılmadan kısaca anlatmak isterim efendim.

Öznitelik seçimi, veri madenciliğinin önemli bir problemi olan boyut fazlalılığı problemini ortadan kaldırmak için geliştirilmiş yöntemler bütününe verilen isim. Amacı, bir makine öğrenme sisteminde öğrenmeyi olumlu yönde etkileyen nitelikleri seçip, olumsuz yönde sisteme zarar veren nitelikleri de ortadan kaldırmak.

Örneğin, bir adama kredi kartı vereceksiniz, adamın finansal bilgilerine bakıyorsunuz, medeni haline bakıyorsunuz, tarihsel verilerine bakıyorsunuz bir de adres bilgilerine bakıyorsunuz. Bu bilgilerin hepsi ile işlem yapmak, özellikle de gerçek zamanlı işlem yapılan sistemler için performansı kötü şekilde etkilediği için adres bilgisi gibi çok ta kredi kartı vermekle ilgisi olmayan nitelikleri eliyorsunuz. Hem daha doğru sonuç alıyorsunuz, hem de daha yüksek hızla işlem yapıyorsunuz. Tam bankaların istediği gibi değil mi?

Efendim, temel olarak öznitelik seçim yöntemleri ikiye ayrılıyor. Bunlardan birincisi istatistik tabanlı diğeri ise sınıflandırmaya dayalı yöntemler. İstatistiksel yöntemler en uygun öznitelik kümesini istatistiksel dağılımlara dayalı olarak elde ediyor. Sınıflandırmaya dayalı yöntemler ile hangi öznitelikler daha iyi sınıflandırma başarısı veriyorsa onları seçip diğerlerini geride bırakma şeklinde yapılıyor.

Öznitelik seçim yöntemlerinde genel uygulama ya tek bir nitelikle sınıflandırma işlemine başlayıp adım adım yeni nitelikler ekleyerek en iyi sonucu bulmak ya da bütün niteliklerle sınıflandırma işlemine başlayıp teker teker nitelikleri kaldırarak sınıflandırma sonucu elde etme şeklinde ilerliyor. Bu yöntemlere artırımlı yada azaltımlı yöntemler adı veriliyor.

Bu arada, öznitelik seçiminde iki önemli yöntem Temel Bileşen Analizi ve Doğrusal Ayrışım Analizi. Her iki yöntem de sıklıkla kullanılan yöntemler. Temel bileşen analizi, nitelik dönüşümü yoluyla daha çok nitelikten daha az niteliğe dönüşümü sağlarken doğrusal ayrışım analizi, sınıfları birbirinden ayırt etme yeteneği yüksek olan niteliklerin seçilmesi yoluyla öznitelik seçimini yerine getirmekte.

Bir son teknik ise birliktelik kuralları, birliktelik kurallarında kullanılan destek ve güven eşikleri kullanılarak daha sık ve daha önemli nitelikler seçilebilmekte ve böylece öznitelik seçimi yapılabilmektedir.

Sözün özü, özellikle yüksek hacimli madencilik işlemlerinde öznitelik seçimi çoğu zaman yapılması elzem olan bir işlem. Dolayısıyla siz siz olun veri madenciliği yapmadan önce öznitelik seçimi durağına bir uğrayın. 

Saygılarımla,

Hidayet Takcı