Knime Giriş

Bir işi yarım bırakmayı sevmiyorum

İş yerinde, Mart-Nisan ayları arasında İç Piyasa Fon Kullandırım projesine dahil oldum. Projedeki amacım, değişkenlerin belge kontrol süresi üzerindeki etkisini ölçmekti; yani hangi değişken, belge kontrol süresi üzerinde ne kadar etkiliydi, anlamak istiyorduk. Tabi tasarım model aslında belliydi, benden istenen ise sadece veriler ile bunu desteklemekti. Bunun için de gerekli olan, veri seti ve genel iş akışıydı. (Genel iş akışının altını çiziyorum çünkü doğru bir model kurduysanız işin alt detayını zaten çıkan çıktılardan sonra araştırmanız gerekir 😉)  Onun için çok fazla gerekli olmayan iş bilgisiyle de kafamı karıştırmak istemedim.  Gel zaman, git zaman bunu çeşitli departmanlara danışarak regresyon ile yapabileceğimize karar verdik. Ben de oturdum, çoklu değişkenli regresyon yöntemiyle SPSS de bunu ispatlamak için çalışmalara başladım. Akşamları her gün 1-2 saatimi youtube’da SPSS videolarına ve ders kaynaklarına ayırmaya başladım. 2 ay boyunca veri setimize ne tür taklalar attırırsak attıralım R square’de %10 geçemedik 😀 Tabi 2 ay emek verip, ulaştığımız sonuç: Regresyon ile bu verilerin analiz edilemeyeceği gerçeğiydi. Evet, tüm yenilginin faturasını kendime kestim çünkü numeric değişkenlerden oluşmayan data seti ile regresyon analizinin sonuç üretmesi zaten beklenemezdi (Lojistik regresyon hariç). Bundan sonrası için alternatif yöntemler pek de düşünülmeden, başarısızlığın nedenine veri eksikliği yazılıp, projenin analiz kısmı kapatılmıştı. Lakin benim tarafımda henüz kapanmamıştı 😊 Eğer elinizde string/flag/kategorik gibi değişkenleriniz ağırlıklı ise R square’in %10 da kalması zaten çok normaldi. Hatta bu bile bir başarıydı 😉  Tabii bunu temmuz ayında Y. Lisans’ın Big Data dersinde anladım. Bu tarz dataların classification algoritmalar ile çözülmesi gerekiyordu.  

Knime Giriş

Okunuşu Naym’dır. Alman lisanslı olduğundan Nayn (Nein) diye espri yapmaya çalışanlar olabiliyor, siz boşverin onları, tebessüm edin, geçin. 😊

Knime programı, veri madenciliği programları arasında çok popüler olmasa da geleceği oldukça parlak bence. Programın kullanımının kolay ve ücretsiz olması, onu öne çıkaran en önemli özelliklerden birisi bence…

Örnek üzerinden modelimizi kurar isek:

Modelimizdeki ilk Node’mız XLS File Reader yardımıyla verileri sisteme okutmak. Zaten gerekli seçimleri yapıp, execute ettiğimizde, sistem sizin gösterdiğiniz tüm verileri alacaktır. Burada karşılaşılan genel problem, satır başlıklarını sisteme alırken sorun yaşanabilmektedir. Configure kısmında “Tables contains column names in row Number 1” seçeneğinin işaretli olduğundan emin olmanız gerekir.

Aşağıdaki şekilde Column filter node kullanarak 46 değişkenden, belirlediğimiz 30 değişkene düşürdük. Zaten data type baktığınızda da dataların büyük bir bölümünün string olduğunu görürüz.

Kullanacağımız Random Forest algoritmasının daha iyi sonuç vermesi için, Numeric Binner ile medyanın altında kalanlar için İyi, üstünde kalanlar için de Kötü olarak kategorize edip toplamda 2 tür class oluşturduk.

Verileri, partitioning node yardımıyla %65 train için %35 test için ayırdık. Ama sonrası için veri setindeki dengesiz dağılımları önlemek için smote özelliğini kullanma gereği duyduk.  Aslında açılımına bakarak da ne yapmak istediğimizi çok rahat anlayabilirsiniz. “Synthetic Minority Oversampling Technique” ile dengesiz dağılımın önüne geçmek için sentetik datalar ürettik. Bu şekilde az olan petrol ve benzeri  azınlık gruplar dengelenip, model için daha doğru öğrenme sağladık. Bazı algoritmalar, ZeroR değerine göre performans odaklı davranıp, hiç öğrenme yapmadan da %95’lere varan yüksek sonuçlar üretebiliyor. Dolayısıyla bu gibi durumların önüne geçmek için Knime’ın Smote özelliğini kullandık.

Modelimizde kullandığımız Random Forest algoritması ile %76 bir accuracy elde ettik. Aslında veri setimizde gerekli dönüşüm/manipülasyon yapsaydık %80’lere çıkabileceğimize de eminim.

Confusion matrix bakarsak; Satırlar: Belge kontrol süresi / Sütünler: Prediction edilen sonuçlardır. Aşağıdaki matrix okuyacak olursak; 1545 “İyi” iken biz de “İyi” olarak tahmin etmişiz lakin; 498 “İyi” iken biz “Kötü” olarak tahmin etmişiz.

ROC eğrisinin 0,5’den büyük olması beklenir, yani eğrinin y=x doğrusunun üstünde olması istenir ki bizim kurduğumuz modelde de zaten 0,81 değeri ile gayet başarılıdır.

Peki nedir Random Forest algoritması?

Bu algoritmayı, decision tree algoritmasının altında gruplandırabiliriz. Karar ağacı öğrenmesinde, bir ağaç yapısı oluşturularak ağacın yaprakları seviyesinde sınıf etiketleri ve bu yapraklara giden ve başlangıçtan çıkan kollar ile özellikler üzerinde tek bir ağaç yapısı kurulur. Fakat Random forest algoritmasında ise birden fazla ağaç ilişkisi kurulur. Algoritmanın hesaplanmasında, information gain ve entropy değerleri üzerinden nitelikler oluşturulur. Yani bir değişkenin oluşturacağı bağıntı sayısı ne kadar fazla ise information gain o kadar yüksek, entropy(belirsizlik) değeri de o kadar düşüktür. Information gain yüksek olan değişkenden dallanma başlar. Buna göre de karar ağacı oluşturulur. Fakat ben, Knime da simple tree yapısına bakmak yerine split değerine bakıyorum çünkü bir değişken ne kadar çok split edilmiş ise information gain de o kadar yüksektir yorumunu yapıyorum.

Sonuç olarak: Aşağıdaki şekilde de gösterildiği üzere: %76 accuracy ile “Mal Cinsi Üst Kategorisi” 29 split değerine göre “Belge kontrol süresini” en çok etkileyen değişkenimizdir. En başta da belirttiğim üzere, Mal Cinsinin, belge kontrol süresini en çok etkileyen değişken olmasını bekliyorduk, öyle de oldu 🙂 

(Özetle: Yarım kalan proje Ağustos ayında tamamlanmıştır 😊)

Kendime Not:
Bazen, sorunların üstesinden gelmek için zamana ihtiyaç duyarsınız. Ta ki yeni şeyler görüp, öğrenip, hatalarınızdan yeni dersler çıkarana kadar…
Bilirsiniz ki ancak o zaman kaldığınız yerden devam edebilirsiniz ve ileriye baktığınızda hayatınızda aşamayacağınız hiçbir problemin olmadığını görürsünüz. 
Siz yeter ki umudunuzu kaybetmeyin 😉

Gelecek Big Data – Analysis

Veri nedir?

Somut bir benzetmeyle veri demek satır satır kodlanan kitabın her bir sayfasıdır. Verilerin depolandığı yer, yani warehouselar da büyük kütüphaneler olarak düşünebiliriz.

Peki Neden Önemlidir…

Turkcell IT müdürünün bu konuda basit ve güzel bir örneği var… Phafa Sendromu… Bu hastalık genetik bir hastalık, semptomları kronik farenjit ile benzer özellik göstermektedir. Bademciklerin  2 ay da bir düzenli aralıklarla şiştiği ve 7 yaşından sonra daR1210C_COHEN seyrekleştiği kronik bir hastalık.  Doktora gittiğinizde, izlenen yol klasik olarak antibiyotik ve ateş düşürücü… Fakat tanıda en önemli şey aslında hastanın geçmişi. Doğru bir özgeçmiş, en kısa sürede doğru teşhis konmasını kolaylaştırıyor. Tedavisi o kadar anlattıktan sonra elbette antibiyotik değil çok az bir kortizon kullanılarak geçiyor.  Bu hastalığı 1992 de ABD li bir doktor hastaların geçmişini düzenli bir şekilde elle not tutarak anlıyor ve bu sendromu teşhis ediyor. Bu gün bu teknoloji çoğu hastanede mevcut ama sadece mevcut yani bize anlamlı bir bilgi sunmuyor… Eminim ki ileride bu konuda sağlam veriler oluştuktan sonra yapay zekâlı sistemler bizlere hastalığımızın %99 başarı oranıyla söyleyebilecekler.

Evet, fark ettiyseniz istihdam konusunda teknoloji sadece mavi yaka için değil beyaz yakalı beyaz önlüklü kişiler içinde tehdit olacak gibi. 😉

Firmalar için Veriler Yüzde Kaç anlamlı?

Hangimiz kütüphanede işimize yarar verilerin yüzde kaçına ulaşıp yüzde kaçını anlayabiliyoruz ?

yourstory_BigData

Kütüphane örneğini gerçek hayata indirgersek, firmalar da verilerin %80 depolayabiliyor, bu verilerin %70 işleniyor %10 doğrulanıyor ve rapor haline getirilebiliyor ama sadece ve sadece %0,5 anlamlı bir bilgiye dönüşüyor.  Kısacası aklımızda kalıyor ….

Tarih Yalan Söylemez…

Tarih kitaplarında hep Cengiz hanın yaktığı İskenderiye kütüphanesinin insanlığı 200-300 yıl geçmişe götürdüğüne değinilir; o nedenle ki firmalar için verilerin güvenliği ve korunması da bir o kadar önemlidir. Geçenlerde dünyaca ünlü bir çöpçatanlık sitesinin tüm bilgileri hackerlar tarafından ele geçirildi. İçlerinde 8000 yakın kişinin mail uzantısı gov, mil, vs. işte tam da bu sebepli 3 milyar dolarlık hacme sahip boşanma davalarında artış olacağı tahmin ediliyor. Psikologlarda  bu rakam tahmin ettiğimizden de fazla…. (Yani istihdam yarattığı da doğrudur 🙂 )

Case – Yemeksepeti

Müşterimizi ne kadar tanıyoruz. Bu konuda en iyi sektör şüphesiz bankalar. Sonuçta o kişiye/şirkete kredi veriyor. Peki, onlar hakkında o kadar çok şey biliyoruz ama neden bunu kullanmıyoruz. Yemeksepeti bu konuda güzel bir örnektir. Altı üstü yemek siparişi ne olabilirl80398-yemek-sepeti-logo-75952 diyebilirsiniz. Günde 110 bin sipariş alıyor 270 bin kişiyi doyuruyor. Kimin neyi sevdiğini ve verilen siparişlerin nereden geldiğini tüm koordinatlarıyla beraber biliyor. Dolayısıyla bir sushi dükkânının nerede açılabileceğini potansiyel müşteri kitlesine göre söyleyebiliyor. Eskiden Yahudi tüccarlar adam tutup kiralayacağı dükkânın olduğu caddede sabahtan akşama kadar oturur kelle hesabı yaparlarmış kaç kişi geçti bunların kaçı rakip dükkandan alış veriş yaptı diye. Yemeksepeti tam da size bu anlamlı bilgileri yeni girişimcilere satıyor. Ellerindeki her türlü veriyi kullanıyorlar, örneğin diziler ile siparişler arasında bir ilişki olduğunu görmüşler kurtlar vadesinin olduğu akşam pide & çorba siparişlerindeki düzgün artışlar ya da Survivor da kazanan takım, ödül olarak pizza kazanmışsa, pizza siparişinde o gün %21 artış olduğunu, bir sonraki haftanın ödülü burger iken de siparişlerde o akşam %19 artış olduğunu tespit etmişler. Yemeksepeti bunu verilere bakıp söyleyebiliyor.

Evet…. Tekrar sorsam: Kim bu Yemeksepeti?: Sizi anneniz ya da eşiniz kadar tanıyan küçük sürprizler yapan güçlü veri havuzuna sahip basit bir yazılım sadece…

Yemeksepeti ne yapmalı

Bence müşterisini iyi tanıyor. Dolaysıyla ilerisi için değişim ihtiyaçlarını doğru tespit edeceğinden şüphem yok. Sürdürebilirlik için dinamik yapısını bozmayacaktır. Hatta sosyal projelere imza atarak kurumsallaşacak ve hayatımızın bütününe girip her akşam yemeğinde karşımıza çıkacak bir model olacaktır.

Tüm dünya değişiyor bunun sosyolojik etkileri tartışılır ama artık kadınlar sadece ev hanımı değiller ev hanımlığı da sadece yemek yapmak değil ama kadın ve erkeğin çalıştığı bir ev de yemekler yemek sepetinden söylenir gibi… ( Not Reklam değildir. 🙂 )

Benim Şuan verilerden beklentim!

Doğru tahminleme, doğru fiyatlandırma konuları bu yüzyılın önemli konuları arasında yerini koruyacak gibi. Lojistik ve stok maliyetlerinin yüksek olması, günümüz şartlarında 6 aya kadar uzayabilen sevkiyat sürelerinin fazla uzun olması, doğru tahminlemenin ne kadar önemli olduğunu gösteriyor. Eğer ki ciro da ve net karlılıkta doğrudan bir verimlilik istiyorsak bunu doğru tahminleme modelini kuraraktan başarabiliriz.

Fakat maalesef ülkemizde bu konuda yetişmiş eleman bulmak çok zor…

Mühendisliğin hiç bir zaman sonu gelmez, mühendislik bilimlerinin yetersiz kaldığı yerde yine yeni bir mühendislik bilimi doğar. Ümit ederim ki bu konudaki gelişmelerde yeteriz kalınmaz ve üniversiteler zamanında gerekli adımları atarlar. Nasıl ki Makine Mühendisliğinden Sanayi mühendisliğine ( Endüstri Mühendisliği…)Elektronik mühendisliğinden bilgisayar mühendisliğine evrilmişse. Çeşitli ilgili disiplinleri içerecek bir Veri mühendisliği neden olmasın.

Kısacası;

Dünya sanayi devrimiyle beraber Statik (stabil) 0-1 mantığıyla çalışan sistemler geliştirdi. Fakat günümüzde artık dinamik sistemlere yani kendi kendine öğrenen (Yapay zeka/Makine Öğrenmesi) yazılımlara doğru evriliyoruz.  Uzun soluklu bir çağ bizi bekliyor…. Bu anlattıklarım sadece başlangıç

Bugün 5 Aralık Dünya Mühendisler Günü…..
Gelecek, bugün de olduğu gibi Mühendislerin Eseri olacak…
Dinç kalın, dinamik kalın…