20 Temmuz 2017 Perşembe

Machine Learning - 0 - Giriş

Merhaba,

20.07.17 itibariyle Machine Learning ve Artificial Intelligence ile ilgili çeşitli araştırmalar yapıyor olacağım. Türkçe yayın sayısının azlığından ötürü özellikle konu ile ilgilenen ortaokul ve lise öğrencilerine yararının dokunabileceği düşüncesi ile öğrendiğim bilgilerin kendi nöronlarımdaki yansımasını bu blogda paylaşacağım. Blog boyunca bazı terimleri İngilizce kullanmaya devam edeceğim çünkü araştırmalarına devam etmek isteyen kişiler için bu terimlerin İngilizce olarak bilinmesinin gerekli olduğu düşüncesindeyim.

Machine Learning nedir? Klasik programlamadan farkı nedir?

Klasik programlamadan başlayalım. Klasik programlamada elimizdeki input(girdi)'ler bir program vasıtasıyla bir output(çıktı)'a çevrilir.

Örnek olarak Travelling Salesman Problem'ini (Gezgin Satıcı Problemi) verebilirim. Yandaki şekilde school noktasında bulunduğunuzu düşünelim ve sizden diğer tüm noktalara uğrayıp tekrar okul'a dönmenizi isteyelim. Bu durumda minimum kaç metre yürümeniz gerektiğini size soralım. Bu problemde resimde görülen her bir noktanın lokasyonu programımız için birer girdidir. Programımız bize minumum mesafenin 66 metre olduğu sonucunu çıkartacaktır. Bu da bizim çıktımızdır. Problemi çözerken program içerisinde kullandığımız methodlar ise algoritma olarak adlandırılır. Dolayısıyla klasik programlama yandaki gibi özetlenebilir.

Peki machine learning nedir? Machine learning'de durum biraz daha karmaşıktır. İlk başta programımıza girdi ve çıktıları veririz. Programdan girdileri kullanarak verdiğimiz çıktılara ulaşması için bir path(yol) oluşturmasını bekleriz. Programımız verileri işleyerek ona verdiğimiz sonuçlara ulaşmayı öğrenir. İşte bu kısma train(eğitme) deriz. Daha sonra programa sadece girdilerden oluşan bir data veririz ve çıktıları predict(tahmin) etmesini isteriz.

Örneğin elimizde geçmiş seneye ait 100 tane telefon kullanıcısının çeşitli bilgileri(tarifesi, toplam konuşma süresi, telefonunun kaç kere kesildiği, başka operatörleri arayıp aramadığının bilgisi vb.) olduğunu düşünelim. Sene sonunda bu müşterilerimizin hangilerinin hattını iptal edeceğini ve hangilerinin hattını kullanmaya devam edeceğini tahmin etmeye çalışalım. Burada ilk başta 50 tane müşterimizin verilerini ve hatlarını iptal edip etmedikleri bilgisini modelimize veriyoruz. Modelimiz müşteri verilerine çeşitli ağırlıklar vererek müşterilerin hattını bırakıp bırakmadığını test ediyor(Train kısmı). Modelimiz için ilk başta toplam konuşma süresi verisi ve başka bir operatörü arayıp aramama verisi aynı öneme sahipti ama modelimiz zamanla elindeki sonuçları kullandığında farketti ki başka bir operatörü arama verisi çok daha büyük bir öneme sahip. Dolayısıyla modelimiz her veriye belirli bir ağırlık ve önem verdi. Sonrasında da elindeki veriler ve sonuçlar ile yüzde 95 oranında hattı kullanmaya devam edip etmeyeceğini bilir hale geldi. Bu noktada train kısmı sonuçlanmış oldu ve test kısmına geçebiliriz.

Şimdi yine geçtiğimiz seneye ait kullanmadığımız 50 adet veriyi modelimize sokacağız ve modelimiz bir tahminde bulunacak. Modelimizin bulunduğu tahminler ile elimizdeki sonuçları kıyasladığımızda modelimizin yüzde 80 oranında doğru tahmin ettiğini görebiliriz. Peki bu yaptığımız şeyler ne işimize yarar? Bu sene şirket olarak bir kampanya yapacağımızı düşünelim. Kampanyamızda bu senenin müşteri verilerini kullanarak büyük indirimleri ayrılma ihtimali daha yüksek olan müşterilere verebiliriz. Hiç ayrılma ihtimali olmayan müşterimize ise boşuna kampanya vermeyiz. Aşağıda machine learning sürecinin özetini görebilirsiniz.



Hiç yorum yok:

Yorum Gönder