Bu yazıda bitirme projesi olarak uğraştığım markov zincirinden ve bitirme projeleri anlamında kısaca bahsedeceğim.

Markov Zinciri Nedir?

Lisede kısmen; üniversitede ilgili bölümlerde (Mühendislik, yazılım veya matematik) iseniz Markov zincirini veya Stokastik süreçler kelime grubunu kesinlikle duymuşsunuzdur. Olasılık-Matematik ile ilgili olan bu kelime grubu; Andrey Markov adli Rus Matematikçi tarafından geliyor. Ancak etkilediği konular ise tam olarak bizi yani yazılım ile uğraşan insanlari ilgilendiriyor.

Markov zincirleri bize geçmişe bakmaksızın bir durum üzerinden bir başka bir duruma geçiş kurallarını olasılıksal olarak belirleyebildiğimiz bir model sunuyor. Bu sürecin en önemli özelliği hafızasız olması. Kaynak

Yaani hala anlamadim ?

Yanisi çok basit. Bir durumdan diğer duruma geçerken sadece kendi bulunduğu yere bakıyor. Yani geçmişe bakmadan istatistiksel veriler ile hareket ediyor. Markov zinciri günlük hayatımızda her yerde kullanılıyor. Özellikle yazılım üzerinde yıllardır tercih edilen bir algoritma olduğunu söylersem, abartıyor olmam.

T9 Klavye Özelliğinden örnek verelim:

Günlük hayatta mesaj yolu ile iletişim kurduğumuz A ve B kişileri olsun.

A kişisine 5 gün boyunca Merhaba A günaydın okula ne zaman geliyorsun? sorusunu sorduğumuzu düşünelim.

B kişisine 5 gün boyunca Merhaba B günaydın işler nasıl? sorusunu sorduğumuzu düşünelim.

Veri kümemi istatistiksel olarak yazılıma şu notasyonda verdiğimi düşünelim.

('buluduğum ver', 'gidebilecegim veri', 'olasılığı') ve birkaç adımı yazalım.

(‘Merhaba’,‘A’,‘%50’) - (‘Merhaba’,‘B’,‘%50’) - (‘A’,‘günaydın’,‘%100’) - (‘B’,‘günaydın’,‘%100’) - (‘günaydın’,‘okula’,‘%50’) - (‘günaydın’,‘işler’,‘%50’)

Normalde Merhaba A günaydın cümle öbeğinde sonra gelmesi gereken kelimenin %100 okula olmasini bekliyoruz. Ancak belleksizlik kavramıyla sadece o anki veriyi dikkate almamiz gerektiğini unutmamamiz gerekiyor. Yani bizim o anki verimiz sadece günaydın ve bu veriyle bir sonraki gelecek olan kelime %50 ihtimal ile okula ya da %50 ihtimal ile işler kelimesi olacak.

Yukarıdaki örnek ile markov zincirini çalıştırdıgımda aşağıdaki veri ortaya çıkıyor.

Kaynak

Bitirme projesi ve düşüncelerim

Hedefim elimdeki veriyi (Flask) Markov Zinciri kütüphanesinin anlayacağı dile getirmek ve veriyi işlemek. Bunu yaparken ise elimdeki veriyi istatisiksel olarak bir Graf yapısında sunmak. Projenin %70’i tamamlanmış durumda. Tam anlamı ile bittiğinde tekrar bu konuyu toparlayacak ve bitirmedeki verileri paylaşacak bir yazı yazmayı planlıyorum.

Ver şurdan iki API, Bitirme yapayım!

Maalesef ki okududuğum Karadeniz Teknik Üniversitesi Bilgisayar Mühendisliğindeki ögrenciler ve Hocalar (Kesinliklik bu tezimi yıkan çok kaliteli hocalarımızda var) biraz tembel. Bitirme ve tasarım projelerinde gerçekten komik projeler yapılıyor ve kabul ediliyor. Bazı derslerin ödevlerinde dahi kabul edilmeyecek seviyedeki projeler Bitirme kapsamında Mühendislik ünvanına ulaştırıyor. Aslında bende basit bir proje alarak 2 gün uğraşla bitirmeyi halledebilirdim. Ancak üniversitedeki bu imkankarın bir daha karşıma gelmeyeceği gerceğini hatırladım. Özellikle bölümüm ile alakalı bir konu seçmeye özen gösterdim. Sevdiğim bir felsefe var:

Bir işi yaparken zorlanmıyorsan; o işten birşeyler öğrenmiyorsundur. Bu yüzden daha önce üzerine durmadığım ancak duyduğum ve ilgimi çeken Markov zinciri konusuyla ilgilenmeyi karar verdim.

Bitirme projesinde Markov zinciri konusunda bana fikir katan Fatih Erikli‘nin yazılarını ve projelerini göstermezsem ayıp olacağını düşünüyorum. Bir başka etken ise 2017 yılının yazında tanıştığım Hipo’da (Zorunlu olmadığı halde) staj yapan Gönül Aycı ile akademik anlamda yaptığımız sohbetler. Sosyal medyada sizi pozitif anlamda etkileyen insanları takip ederek sizde hayatınızda güzel yönlendirmelere sahip olabilirsiniz.

(Hatalıysam lütfen yorum bırakın)