5 Eylül 2012 Çarşamba

Veri Madenciliği / Data Mininig

İlk yazımda anlattığım İş Zekası’nın bir alt kolu ya da bütünleyicisi olarak tanımlanabilcek veri madenciliği(data mining), eldeki verileri değerlendirmekten ibarettir aslında. Bankalarda, okullarda, hastanelerde ve bu gibi kurumlarda sürekli bir veri birikimi söz konusudur. Örneğin;  bir hastanede hastaların ne gibi rahatsızlıklara sahip oldukları  ya da bir bankada müşterilerin ne tür harcamalar yaptığı bilgisi.. Veri madenciliği teknikleri, bu sürekli olarak muhtelif yerlere kaydedilen bilginin boş boş durması yerine değerlendirilmesi amacından ortaya çıkmıştır. Bu vesileyle hastane kayıtlarındaki hastanın bilgisi, gelecekteki tedavilere ışık olabilecek nitelikli bilgiye dönüşürken;  banka kayıtlarındaki müşterinin bilgisi, kendi ilgisini çekcek ve işine yarayacak fırsatlara dönüşebilir.
Şirketler, veri madenciliği tekniklerini kullanarak veri tabanlarına kaydettikleri bilgilerin yardımıyla müşterilerinin eğilimlerini bilebilir, hangi kampanyaların ilgilerini çekeceğini tahmin edebilir  ve buna göre planlamalar yaparak kârını artırabilir. Nitekim yapıyorlar da. Bugün birçok kampanya bu kurallardan elde edilen örüntülere göre oluşturuluyor. Birçok market sahibi, müşterilerin sıklıkla beraber satın aldıkları ürünleri veri madenciliği teknikleri ile öğrenip; raf tasarımını bile buna göre yapıyor. Daha güzel ve benim de bu alanı sevmemi sağlayan bir örnek verecek olursak; tıp alanındaki faydalarından bahsedebiliriz veri madenciliğinin. Geleceğe dair bilgi çıkarımı ile tedavilerde kolaylık sağlamak ve erken teşhisi kolaylaştırmak da veri madenciliğinin bir sonucudur. Ve bu sonuç benim için ilk örneklerdekinden daha cazip açıkçası...
Bu anlattıklarım veri madenciliğinin ne olduğu üzerineydi. Gelelim teknik konulara... Veri madenciliği çalışmalarında birçok yöntem kullanılıyor. Bu yöntemlerin seçimi ise ihtiyaca göre yapılıyor. Veri madenciliği yöntemleri o kadar çok ki hepsini tek tek anlatmak çok uzun sürer. Zaten bunun için yazılmış kitaplar da bayağı kalın. J Veri madenciliği yöntemleri birçok kaynakta tanımlanmış; ancak çoğu biraz fazla “teknik”. Ben daha açık ve anlaşılır olmak açısından aşağıdaki görsel üzerindeki yöntemlerden bahsetmek istiyorum:
Veri madenciliği yöntemleri öncelikle öğreticili/denetimli ve öğreticisiz/denetimsiz yöntemler ve market sepeti analizi olarak üçe ayrılır. Daha sonraki aşamada ise öğreticili/denetimli öğrenme, en yakın komşu yöntemi, k-ortalamalar yöntemi, regresyon yöntemi, karar ağaçları, sinir ağları gibi yöntemlere sahiptir. Öğreticisiz/denetimsiz öğrenme ise hiyerarşik kümeleme ve kendi kendini organize eden haritalar gibi yöntemlere sahiptir. Bu yöntemlerden k- en yakın komşu yöntemi, karar ağacı yöntemi ve market sepet analizi yöntemi en sık kullanılanlardır. Bu yöntemlerin her birinin kendine özgü özellikleri ve uygulanma şekli ile algoritmaları vardır.
Veri madenciliği birçok dil ve çalışma ortamı ile yapılabilir. Önemli olan gerekli algoritmaları çalıştırabilmek ve doğru sonuçlar almaktır. Bunun için kullanılabilecek hazır yazılımlar da var. Gerekli yazılımı yaparak çalışmak daha bilimsel olanıdır. Biz de okulda veri madenciliği dersinde kendimiz yazılım geliştirerek sonuç elde ettik. Ancak bu şekilde yapılan bir çalışmada önce kullanılan yönteme uygun aracı yazmak sonra da  eldeki verilerle doğru sonuçlar elde etmek gerekir ki bu, bilimsel bir yol olur ve şirketlerin pek işine gelmez. J Hazır yazılım kullanarak çalışmak için de yine okulda kullandığımız “Weka” isimli programı örnek verebilirim. Bu program sayesinde her türlü yöntem ile çalışabilir ve kısa sürede sonuçlar alabilirsiniz. Ücretsiz bir programdır.
Veri Madenciliği konusu, yapay zeka ve makine öğrenmesi gibi konularla çok benzerdir. Bu çalışma alanlarının her biri birbirine destektir de aslında; çünkü ortak yöntemler ve çözümler içerirler. Ayrıca her yazılım ve bilgisayar bilimi konusu gibi, çok derin konulardır. Yazıma burada son verirken, ilerleyen günlerde veri madenciliği konusunda daha ayrıntılı bir yazı yazabilmeyi umuyorum. J

Faydalı olması dileğiyle.. 

4 Eylül 2012 Salı

İş Zekası/Business Intelligence Hakkında

Yazılım Kahvesi’nin ilk konusu,  “İş Zekası” ile karşınızdayım. İlk konumuzun seçiminde benim staj yaptığım departmanın çalışma alanı çok büyük rol oynadı. Tam bir aydır içim dışım İş zekası(BI) olmuşken, bu birikimi faydaya döndürmeliyim dedim ve başladım yazmaya.

Stajımın ilk gününden beri gerek bana verilen BI dokümanını okuyarak gerekse internette araştırma yaparak iş zekası hakkında birçok bilgi sahibi oldum. Öncesinde de iş zekasının bir alt çalışma dalı olarak değerlendirilebilecek veri madenciliği konusunda bir ders almıştım. Bu anlamda stajımı yaptığım deaprtman benim için bir şans olmuş oldu. Veri madenciliği, iş zekasının bir parçası olup; ilerleyen yazılarda veri madenciliği üzerinde duracağım.
Öncelikle iş zekasının tanımını yapmak gerek. İş zekası ya da İngilizce terminolojisiyle business Intelligence, bir şirketin geçmiş verileri kullanarak bunlardan sonuçlar çıkarmasıdır. Bu sonuçları çıkarmaktaki amaçlar verimi artırmak, geleceğe dair tahminlerde bulunmak olarak belirtilebilir. İş zekası son zamanlarda bilişim şirketleri arasında pek revaçta. Bu konuda çalışan birçok bilişim şirketi var; zira geleceğe dair tahminlerde bulunmak ve bu tahminleri kâra dönüştürmek, ilerlemek ve  rakipleri geride bırakmak için bulunmaz bir nimet. İş zekası üzerine çalışmak, şirketlere yeni kapılar açtığı gibi yazılımcılar için de iki farklı çalışma alanı yaratmış durumda. Şöyle ki iş zekası alanında çalışan kişiler yani iş zekası yöntemlerini kullanarak şirketlere çeşitli sonuçlar sunan kişiler yazılımcılardır. Bu yazılımcılar, bu sonuçları iş zekası araçlarını (tools) kullanarak elde ederler. Peki bu iş zekası araçlarını kim yapacak? Tabii ki yazılımcılar! Ancak ben hem stajımı ilk kategoride yaptığım hem de araçları yapan kişilerin seviyesine “henüz” ulaşmadığım için yazıma “çeşitli araçlar ile sonuç elde etmek”ten bahsederek devam edeceğim. J
İş zekası üzerine çalışmak demek öncelikle bir “bilgi” havuzuna ihtiyaç duymak demektir. Bu havuzda iş zekasını kullanacak şirketin çalışma alanına göre, müşteri bilgisi, proje bilgisi, çalışan bilgisi vb. bulunabilir. Bilgi havuzu gündelik bir tabir tabii. Bunun yazılımca’daki karşılığı ise veri tabanı.  İş zekası, veri tabanından bilgi çekmeyi ve bu bilgileri yorumlamayı gerektirir. Bilgileri çekmek ve yorumlamak için kullanılabilecek ortamların bazıları: WebFocus, SAS Enterprise BI Server, SAP NetWeaver BI, Oracle Enterprise BI Server, Microsoft BI tools, IBM Cognos Series 10, Business Objects Enterprise XI olarak sıralanabilir. Bu tarz araçların bayağı çok olduğunu da belirteyim.. :)
Benim staj yaptığım Yapı Kredi Bankası’nda bu araçlardan SAP BI kullanılıyordu. Ben de Yapı Kredi’deki proje mühendislerinin değerli katkılarıyla bu aracı kullanmayı öğrendim. Ancak iş zekası için bu araç tek başına yeterli değil. Kendi staj alanıma göre anlatmak gerekirse; öncelikle SAP Business Object Universe Tool’u ile bir nevi ER diyagramı tasarlanıyor. ER diyagramlarının bu araçtaki adı “universe”. Ayrıca bu diyagramların aralarındaki ilişkilere göre rapor oluşturmak için Toad for Oracle adlı araç kullanılıyor. Bu araç ile Oracle SQL kullanılarak veri tabanı kodlaması oluşturuluyor. Daha sonraki aşamada bu kodlamalar kullanılarak rapor görsel olarak oluşturuluyor. Bu görselleştirme işlemi için kullanılan araç ise SAP Launch Pad denen web üzerinden erişilen bir platform. Tüm bu zahmetlerin sonunda oluşturulan rapor, işte tam da iş zekasının tanımını veriyor. Şirketlerin ilgili departmanları, yazılımcıların/IT'cilerin tasarladıkları sistemi kullanıp; belirli kriterlere göre oluşturdukları raporlara bakarak geçmişteki işlerden sonuç çıkarıp; bu sonuçları gelecekteki işlerde kullanıyorlar. Örneğin; rapordan çıkarılan sonuçlara göre müşterilere hitap edecek şartların ne olduğunu bildikleri için buna uygun bir kampanya tasarlıyorlar. Bu tahminleri de şirketlere kâr olarak geri dönüyor. Aslında iş zekası bu noktada, geçmişteki hatalardan ders çıkarmak olarak da nitelenebilir. :)
Bugünkü yazıda iş zekası hakkında genel bilgi verdim. İş zekası ile ilgili kavramlara daha sonraki yazıda değinmeyi planlıyorum. Kim bilir belki ileride, kullandığım aracı anlatacak seviyeye bile gelirim.. J

MERHABA

Merhaba

Yazılım Kahvesi yeni oluşturulan bir blog ve şu an yapım aşamasında...

Yazılım Kahvesi'nde biz iki bilgisayar mühendisliği öğrencisi öğrendiklerimizi paylaşıyoruz. Gayet amatör bir ruhla yazılar yazmayı, öğrendiklerimizi insanlara açık ve basit bir dille anlatmayı amaçlamaktayız.

En kısa zamanda faydalı paylaşımlarla karşınızda olmak üzere...