MAKİNE ÖĞRENMESİ (III)

İŞ GENEREKSİNİMLERİ VE MODEL TASARIMI

İŞ GEREKSİNİMLERİ

Bu bölümde, şimdi iş gereksinimlerini nasıl toplayacağımızı ve daha önce incelediğimiz makine öğrenmesi projelerinin kapsamını nasıl oluşturacağımızı öğreneceğiz.

İhtiyaç toplama sürecine başlarken tartışılacak üç ana konu vardır. İlk olarak, mevcut durumunu tanımlamalıyız. Örneğin, şirket yeni pazarlara açılmayı planlıyor olabilir. Ardından, fırsat boyutunu ve bunun makine öğrenmesi ile ne kadar gelişmesini beklediğimizi değerlendirmeliyiz. Örneğin, hangi pazarların veya alanların şirketimizin ürünleri için en yüksek tahmini talebe sahip olduğunu belirlemek isteyebiliriz. Son olarak, hangi ticari eylemleri gerçekleştirebileceğimize karar vermemiz gerekir. Örneğin, daha yüksek talep öngörülen pazarlara öncelik verilmesi ve bu pazarlara daha fazla yatırım yapmak gibi.

Birkaç örnek üzerinden geçelim: İlk olarak dolandırıcılık tahminini ihtiyacını ele alabiliriz. Şirkette hileli işlemlerin oranı artmaya başladıysa, bu ihtiyaç ortaya çıkabilir. Buradaki fırsat, hileli işlemlerden kaynaklanan maliyet artışını önlemek ve müşteri güvenini kaybetmemek olabilir. İş eylemi ise, hileli işlem tespit sistemini iyileştirmek ve riskli olduğu tahmin edilen işlemlerin manuel olarak incelenmesini sağlamak olabilir.

Başka bir örnek olarak müşteri kaybı tahminine bakabiliriz. Mevcut durumu, müşterilerin daha fazla ayrılmaya başlamasıdır. Fırsat, dalgalanmayı azaltmak ve bir dizi müşteriyi kurtarmak, böylece gelir üzerindeki etkiyi azaltmaktır. Son olarak, şirketin alabileceği adımlar, kayba neden olan etkenleri belirlemek ve onlarla ilgili aksiyonlar almak olabilir. Örneğin, web sitesi hatalarının, reklam seviyelerinin veya müşteri hizmetleri sorunlarının kaybı güçlü bir şekilde etkilediğini tespit edersek, şirket, belirlenen sorunları çözmek için zaman ve kaynak ayırmalıdır. Bu aynı zamanda, nedensel modelin kullanımına bir örnektir. Ayrıca şirket, tahmin modelini kullanarak ayrılma riski altında olduğu tespit edilen müşterileri hedefleyen elde tutma kampanyaları başlatabilir.

Mevcut durumunu değerlendirmek söz konusu olduğunda, bazı "en iyi uygulama yöntemleri"nden bahsedilebilir. Her zaman doğru soruyu sormakla başlamalıyız. Burada çıkarım ve tahmin farkına geri dönüyoruz. Her zaman çıkarımsal sorularla başlamalıyız. Örneğin, "Müşteri kaybı neden artmaya başladı?", "Hangi bilgiler olası bir dolandırıcılık olayının belirtisi sayılabilir?","En değerli müşterilerimiz daha az değerli olanlara kıyasla ne tip farklı davranışlara sahiptir?". Daha sonra tartışma, çıkarım sorusu üzerine inşa edilecek olan tahmin sorularını tanımlamak üzerine yoğunlaşmalıdır. Örneğin, "Kaybetme riski taşıyan müşterileri belirleyebilir miyiz?", "Potansiyel olarak riskli işlemleri işaretleyebilir miyiz?", "Hangi müşterilerin değerli hale gelebileceğini önceden tahmin edebilir miyiz?" vb.

Fayda/maliyet analizi projelerdeki en önemli konulardan biridir. Fayda sağlayacak fırsatları değerlendirmek çok önemlidir. İlk olarak, fırsatları temsil eden metrikleri ne kadar etkileyebileceğimizi bilmek ve bu metriklerin hedef değerlerini tahmin etmemiz gerekir. Ardından, bu hedeflere ulaşmanın maliyetlerini hesaplamalı ve bu maliyetleri fırsat/fayda boyutu ile karşılaştırmalıyız. Bu karşılaştırma sonucunda, "bu projeyi sürdürmek hala mantıklı mı" sorusuna cevap verebiliriz. Veri bilimi açısından bu soruya en iyi cevap model tahminleriyle deneyler gerçekleştirerek bulunabilir.

Son olarak, alınacak aksiyonları ele alalım. İlk olarak, kayıp veya dolandırıcılık yüzdesi gibi tahmin etmeye çalıştığımız metriklerin geçmiş düzeylerine veya yeni yüksek değerli müşterilerin sayısına bakmalıyız. Ardından, tahmin sonucu çıkan müşterileri hedefleyerek birçok kez denemeler yapabilir ve aldığımız aksiyonların (kampanyalar veya diğer stratejiler) hedeflenen grup üzerinde bir etki gösterip göstermediğini ölçebiliriz. Olumlu bir görürsek, artış veya azaltma düzeyini değerlendirir ve aksiyonun tüm pazarlara ve tüm müşterilere uygulandığını düşündüğümüzdeki fırsat boyutunu hesaplarız. Fayda/maliyet analizini bu şekilde gerçekleştirerek, anlamlı sonuçlar alıp almadığımıza bakarız. Eğer, anlamlı sonuçlar alamazsak, mevcut durum değerlendirmesine geri döner, daha fazla veri toplar ve süreci tekrar çalışabiliriz.

MODEL EĞİTİMİ

İş gereksinimleri sonucunda bir aksiyon almaya karar verdiğimiz durumda, model eğitim sürecini başlatabiliriz. Bu kısımda, bir modelin nasıl eğitildiğini gösteren görsel bir örnek üzerinden geçeceğiz. Gözetimli öğrenme modellerine odaklanacağız.

image.png

Yukarıdaki gibi örnek bir veri setiyle başlayalım. Bu veri setinde bir hedef değişken ve bu hedef değişkeni etkilediğini düşündüğümüz N adet özellik yer almaktadır. Bu veri setinin, tüm müşterilerimiz, bu müşterilere ait tüm işlemler gibi bir veri seti olduğunu varsayabiliriz.

Verileri Eğitim Aşaması İçin Bölümlere Ayırma

image.png

İlk işlem, model eğitiminde kullanmak amacıyla verinin tamamından çıkardığımız bir bölümünün rastgele olarak örneklenmesidir. Bu kısma "öğrenme veri seti" denir. Model eğitimi, girdi özelliklerini ve hedef değişkeni kullanarak, gelecekteki verilerle hedef değişkeni tahmin edebilmek için gerekli olan algoritmayı oluşturacak şekilde modelin eğitilmesidir.

Daha sonra, veri setinin eğitim sırasında kullanılmayan kısmını, model performans ölçümü için ayırırız. Bu veri setine "test veri seti" denir. Bunu yapmanın temel amacı, eğitilmiş olan modelimizin, yeni verilerdeki değerleri tahmin etmek için kullanılabilecek kalıpları öğrenmesini sağlamaktır. Bunu, model eğitim sürecinde kullanılmayan bu verilerle model performansımızı doğrulayarak yaparız. Bu şekilde, daha gerçekçi bir performans ölçütü elde ederiz.

Şimdi, veri setinin bir kısmının model performansını ölçmek için kullanılmasının önemini bir örnek durumla açıklayalım:

image.png

Yukarıdaki grafikte, bir şirkete ait pazarlama harcamaları ve bu harcama seviyesindeki satışları gösteren bir veri setinden çizilmiş olan serpilme grafiğini görüyoruz.

image.png

Yukarıdaki grafikte de, bu veri setine uygulanmış olan bir doğrusal modelin tahmin değerlerinden oluşturduğumuz bir grafiği görüyoruz. Veri setinin grafiğinden iki değişken arasındaki ilişkinin doğrusal olmadığı açıkça görülmektedir. Bu durumda modelin veriye "az uyum sağlamış model" olduğunu söyleyebiliriz. Oluşturduğumuz modelin varsayımları olması gerektiğinden daha basit düzenlenmiştir.

image.png

Yukarıdaki grafikte de modelin karmaşıklığı ile ilgili diğer bir uç örneği görüyoruz. Bu model, eğitim veri setindeki her bir veri noktasını tamamen ezberlemiştir. Veri seti içindeki tüm yapılar ezberlendiği için bu modellere "aşırı uyum sağlamış model" denir.

Bu model eğitim setindeki tüm yapıları ezberleyip, kendini bir ölçüde mevcut eğitim veri seti ile sınırladığı için, yeni veriler için yapılabilecek tahminlerde iyi performans göstermeyebilir.

image.png

Doğru uyum sağlamış model yukarıdaki grafikte kırmızı ile belirtilen şekline olabilir. Bu modelde model eğitim verisine tam uyum sağlamamakla birlikte, yeni verilerden elde edilen hedef değişken tahminlerinde daha önce belirttiğimiz "az uyum sağlamış" ve "aşırı uyum sağlamış" modellerden daha iyi performans gösterecektir.

Model eğitimi "öğrenme veri seti" ile başlar. Makine öğrenmesi modelleri, hedef değişken ve toparladığımız gözlemlerdeki özellikler arasındaki yapıyı öğrenmek için, istatistiksel ve diğer algoritmaları kullanır.

Daha sonra model performansını ölçmek için yeni veriler kullanılır. Burada "yeni veriler" kavramını kullanıyoruz. Bu modelin daha önce eğitilirken bu verileri görmediği anlamına gelir. Bu, oluşturduğumuz modelin gerçek hayatta daha önce görülmemiş verilere uygulanacağı gerçeği düşünüldüğünde mantıklı bir yaklaşımdır. Şirket içinde oluşturulmuş modelleri sorgularken, makine öğrenmesi ekibinin model performansını değerlendirme sürecini bu şekilde (yeni veri kullanarak) yapıp yapmadığının mutlaka sorgulanması gerekir. Ayrıca model performansıyla ilgili sunumlarda gösterilen rakamların (doğruluk skoru gibi) mutlaka model eğitiminde kullanılmamış yeni verilerin modele uygulanması sonucunda elde edildiğinden de emin olunmalıdır.

MODEL PERFORMANS ÖLÇÜMÜ

Bu kısımda, makine öğrenmesi tahminlerinin kalitesini değerlendirmek için kullandığımız performans değerlendirme metriklerini öğreneceğiz.

Pek çok performans değerlendirme metriği bulunmaktadır. Fakat biz "gözetimli makine öğrenmesi"nde kullanılan metriklere yoğunlaşacağız. Doğruluk (accuracy) metrikleri, sınıflandırma modellerinde, modelin sınıfları ne kadar doğru şekilde tahmin ettiğini ölçen metriklerdir. Hata metrikleri de bir regresyon modelinde tahmin edilen değerlerin gerçek değerlerden ne kadar uzak olduğunu ölçer.

Sınıflandırma:

Sınıflandırma modellerinde tahmin kategorik bir değişken için yapılır.

Sınıflandırmanın ne kadar doğru yapıldığının ölçülmesinin birden çok yöntemi vardır. Ancak çoğunlukla üç metrik üzerinde durulur: doğruluk (accuracy), kesinlik (precision), ve hatırlama (recall).

Hileli işlem tahmini yapan bir model üzerinden gidelim. Bu model bir sınıflandırma modelidir ve gözlemleri "hileli" (negatif) ya da "hileli değil" (pozitif) olarak sınıflandırmaya yarar.

Hata matrisi (confusion matrix) olarak bildiğimiz ve modelin performansını bir matris üzerinde gösteren matrisin bu modelin tahmin performansı için oluşturulduğunu varsayalım. Sonuç aşağıdaki gibi olacaktır:

image.png

Bu hata matrisine göre:

  • Gerçekten hileli olmayan 99 işlemin 97'i model tarafından doğru tahmin edilmiştir.
  • Gerçekten hileli olmayan 99 işlemin 2'si model tarafından yanlış tahmin edilmiştir.
  • Hileli olarak tahmin edilen 2 işlemin 2'si gerçekte hileli değildir.
  • Hileli değil olarak tahmin edilen 98 işlemin 1'i gerçekte hilelidir.

Hata matrisinden yaptığımız bu değerlendirmeleri aşağıdaki metriklere dönüştürebiliriz:

Doğruluk : Modelin doğru yaptığı tahminlerin toplam gözlem sayısına oranı = (0+97)/100 = 0.97 ya da %97

Kesinlik : Doğru tahmin edilen pozitiflerin, tahmin edilen tüm pozitiflere oranı = 97 / (1+97) = 0.989 ya da %98.9

Hatırlama : Doğru tahmin edilen pozitiflerin, tüm gerçek pozitiflere oranı = 97 / (2+97) = 0.979 ya da %97.9

Regresyon:

Regresyon modellerinde tahmin sürekli değişkenler için yapılır. Bu modeller için anahtar performans metriği, yapılan tahminlerin gerçek gözlemlenen değerlerden ne kadar farklı olduğunu ölçen "hata" metriğidir.

image.png

Yukarıdaki grafikte bir doğrusal modelin (kırmızı çizgi) tahmin grafiğini görüyoruz. Bu model ilk bakışta görsel olarak hata performansı açısından kötü görünmüyor. Tahmin hatalarını aşağaki grafikte gösterildiği gibi belirleyebiliriz:

image.png

Her bir veri noktasından, bu veri noktası için yapılan ve model doğrusu üzerinde bulunan tahmin noktasına çektiğimiz dikey doğrunun uzunluğu bize modelin tahmin "hata"sını verir. Bu ölçüleri toplayıp ortalamasını alırsak bize modelin ortalama hatasını verir. Eğer hata çok yüksek ise, modeli doğrusal bir modelden bir eğri ile temsil edilen başka bir modele dönüştürebiliriz:

image.png

Yukarıda grafiğini gördüğümüz bu model, pazarlama harcamalarının satış üzerine etkisinin azalan oranda olduğunu varsaymaktadır.

image.png

Yukarıdaki grafikteki gibi eğrisel modeldeki hataları incelediğimizde de doğrusal modele göre hata miktarının nispeten daha az olduğunu gözlemlemek mümkündür.

MAKİNE ÖĞRENMESİ RİSKLERİ

Bu kısımda makine öğrenmesi ile ilgili riskleri ve bunları nasıl belirleyeceğimizi öğreneceğiz.

Zayıf Performans

İlk risk zayıf performans riskidir. Eğer modeller zayıf performans metriklerine sahipse, bu, zayıf performans riski ile karşı karşıya olduğumuz anlamına gelir. Böyle bir model ile mevcut problemler ile ilgili aksiyonlar almak ve bunlarla başa çıkmak, modelin tahminleri doğru gerçekleştirememesi nedeniyle, çok da mümkün olmayacaktır. Tekrar belirtmek gerekirse, emin olmamız gereken konu, performans metriklerinin "öğrenme veri seti" ile değil "test veri seti" ile oluşturulmuş olması gerekliliğidir.

Detaylandırmak gerekirse, sınıflandırma modellerinde, modelin yanlış pozitif tahmin (gerçekte negatif olduğu halde model tarafından pozitif sınıflandırma olarak tahmin edilen) sayısının fazla olması, düşük kesinlik durumuna neden olur. Örneğin, %20 kesinlik derecesine sahip bir müşteri iptal modeli, gerçekte iptal edecek olan müşterilerin sadece %20'sinin iptal durumunu doğru olarak tahmin edecektir. Bu durumda bu modelin tahminleriyle gerçekleştirilen aksiyonların maliyetinin iyi değerlendirilmesi gerekir.

Regresyon modellerinde de modelin tahmin ettiği değerlerin gerçek değerlerden çok farklı olması, yani "yüksek hata" riski vardır. Örneğin, müşteri tatmin endeksini 5'lik ölçekte 3 olarak tahmin eden bir modelde gerçek endeks 5 ise, modelin hata yüzdesi %40 [(5-3) / 5] olacaktır.

Her bir hata seviyesinde şirketin hata toleransının ne kadar olabileceğini belirlemek önemlidir.

Aksiyon Modelleri ve A/B Testi

Şimdiye kadar pek çok metrikle ilgilendik. Bu metriklerden doğru olanının modelin kullanım amacına göre doğru bir şekilde seçilmesi gereklidir. Ancak bu metrikler madalyonun sadece bir yüzünü oluşturur. Model ne kadar iyi olursa olsun, sonucunda aksiyon alınabilecek bir model olamayabilir. Bu modellerin, gerçek dünyada yapacağımız deneylerle test edilmesi gerekir.

Peki modeli nasıl test edebiliriz? Model oluşturulduktan ve model performansı istenen seviyeye ulaştıktan sonra, bir deney ve ardından A/B testi yapmanın zamanı gelmiştir. Burada, müşteri kayıp önleme örneğini kullanacağız. Modeli, hangi müşterilerin ayrılmasının muhtemel olduğunu tahmin etmek için kullandığımızı düşünelim. Ardından, risk altında olduğu düşünülen bu müşterileri A/B testi gerçekleştirmek amacıyla rastgele 2 gruba ayırırız. Bir grup, müşteri tutundurma kampanyasına dahil edilecek, diğer grup için bu kampanya geçerli olmayacaktır. Kampanya uygulanmayan bu gruba "kontrol grubu", kampanya uygulanan gruba da "test grubu" denir. Deney (test) gerçekleştikten sonra, bu iki grup arasındaki aralarındaki kayıp seviyelerini karşılaştırırız. Hedeflenen test grubunun, kontrol grubuna göre kampanyadan sonra daha düşük kayıp seviyelerine sahip olup olmadığına bakarız. Bu deneyi birkaç kez çalıştırmak da isteyebiliriz.

Testler olumlu sonuç vermezse, yapabileceğimiz birçok şey vardır:

  • Daha fazla veri elde etmek: Model için hangi verilerin kullanıldığını ve tahminleri iyileştirmek için başka hangi verilerin kullanılması gerektiğini gözden geçirmek için makine öğrenimi ekipleriyle yakın çalışılması önemlidir. İş kollarında çalışan kişiler, neyin tahminleyici bir etken olup neyin olmadığına dair çok fazla deneyime ve yargı gücüne sahiptir ve bu bilgilerden yararlanılmalıdır.
  • Bir sonucun hangi itici güçlerden etkilendiğini anlamak için çıkarımsal (nedensel) modeller oluşturmak önemlidir.
  • Niteliksel veri toplamak için müşteri anketleri yapılabilir. Böylece sayıların yakalayamadığı bazı verileri sözel olarak toparlamak mümkün olacaktır.
  • Problemin kapsamı değiştirilebilir. Örneğin, bir problem daha küçük parçalara bölünerek araştırma daha detaylı düzeyde gerçekleştirilebilir. Ya da tam tersi, fazla detay araştırılarak özünde kayıp yaşanan bir problem daha geniş bir ölçekte değerlendirilebilir.