VERİ BİLİMİ (IV)

ANALİZ, DENEY VE TAHMİNLEME

A/B TESTİ

Deneyler kararları yönlendirmeye ve sonuç çıkarmaya yardımcı olur. Genel olarak, bir soru ve bir hipotez ile başlar, daha sonra veri toplama, ardından istatistiksel bir test ve yorumlanması ile devam eder.

Örneğin, en iyi blog yazısı başlığını seçmek istediğimizi varsayalım. Sorumuz şudur: blog başlığı A mi yoksa blog başlığı B mi daha fazla tıklanma ile sonuçlanır? Her iki bloğun da aynı sayıda tıklamaya yol açacağı "sıfır hipotezimiz" olacaktır. Veri toplamak için, izleyicilerimizi rastgele iki gruba ayırırız, her biri farklı bir başlık görür. İstediğimiz örneklem büyüklüğüne ulaşılana kadar deneyi çalıştırırız.

Ardından, başlıkların tıklama oranı arasındaki farkın önemli olup olmadığını görmek için istatistiksel bir test kullanıyoruz. Son olarak, sonuçları yorumlarız.

Bu sürece genellikle Champion/Challenger testi olarak adlandırılan A/B testi denir ve iki seçenek arasında seçim yapmak için kullanılır.

Örneklem büyüklüğü, kullanılan veri noktalarının sayısıdır. İstatistiksel olarak anlamlı bir sonuç, sonucunuzun yapılan istatistiksel varsayımlar göz önüne alındığında muhtemelen şansa bağlı olmadığı anlamına gelir. Bunu hesaplamak için pek çok istatistiksel yöntem bulunmaktadır.

Bir A/B testinde dört adım vardır: izlemek için bir metrik seçmek, örneklem büyüklüğünü hesaplamak, deneyi çalıştırmak ve istatistiksel anlamlılığı kontrol etmek.

  1. İzlemek için bir metrik seçilmesi: tıklama oranı

Metriğimiz, başlığı görüntüledikten sonra bir bağlantıyı tıklayan kişilerin yüzdesi olan tıklama oranıdır.

  1. Örneklem boyutununun hesaplanması

Daha sonra, sonuçların rastgele/şansa bağlı olmadığından emin olmak için yeterince büyük bir örneklem büyüklüğüne ulaşana kadar deneyi çalıştıracağız. Örneklem boyutu, herhangi bir değişikliği ölçmeye yardımcı olan bir "temel metriğe" bağlıdır.

Örneklem büyüklüğü, hedeflediğimiz hassasiyete bağlıdır. Bir testin hassasiyeti bize bir metriğin ne kadar küçük bir değerinin algılanabileceği konusunda bilgi verir. Daha büyük örnek boyutları, daha küçük değişiklikleri tespit etmemizi sağlar. Her zaman yüksek bir hassasiyet istediğimizi düşünebiliriz. Ancak, aslında sorumuzca anlamlı derecede bir miktar için hassasiyet ayarını optimize etmek isteriz. Örneğin, birinci ve ikinci başlıklar sırasıyla izleyicilerin %5'i ve %5.01'i tarafından tıklanıyorsa, ektra %0.1 bizim için çok büyük bir fark yaratmaz. Ancak, eğer bu soru 100m yarış sürelerini karşılaştırıyorsa, .01 fark önemli bir olacaktır.

Hesaplanan örneklem boyutuna ulaşana kadar deneyimizi yürütürüz. Deneyi bu boyuta ulaşmadan önce veya sonra durdurmak önyargılı (biased) sonuçlara yol açabilir.

Hedef boyuta ulaştığımızda, metriklerimizi (burada iki blog başlığının tıklanma oranları) kontrol ederiz. Başlıklar arasında bazı farklılıklar görüyorsak, bu farkların anlamlı olup olmadığını istatistiksel anlamlılık testi yaparak kontrol ederiz. Eğer anlamlıysa, bu farkın rastgele bir tesadüften değil, gerçek bir tercih farkından kaynaklandığından emin olabiliriz. Fark anlamlı değilse, testimizi daha uzun süre çalıştırmak yardımcı olmaz, çünkü deney uzadıkça daha küçük bir fark tespit edilir ve daha küçük farklılıklar da daha anlamsız bir sonuç çıkarır. Farklı iki başlığa tıklama oranlarında hala bir fark olabilir, ancak bu fark karar vermemiz için önemli kabul edeceğimiz bir fark değildir.

ZAMAN SERİSİ TAHMİNLEMELERİ

Veri bilimcileri ve makine öğrenimi bilimcileri, modeller oluşturmak için çok zaman harcarlar. Modeller, istatistiklerle gerçek dünya sürecini temsil etmeye çalışır. En geniş anlamda modeller, değişkenler arasındaki ilişkileri denklemler ile tanımlar. Bu tanımlar, istatistiksel varsayımlara ve tarihsel verilere dayanır.

Tahmin modelleme, tahmin için kullanılan bir modelleme alt kategorisidir. Bir süreci modelleyerek, yeni girdiler girebilir ve bunların hangi sonucu (tahminleri) çıkardığını görebiliriz. Örneğin, işsizlik oranının gelecek ay ne olacağına dair bir tahmin almak için, işsizlik oranı modeline gelecekteki bir tarihi girebiliriz. Tahmin modelleri, insanlar tarafından yorumlanamayan bir derin öğrenme algoritması ya da X ve y değişkenli doğrusal bir denklem kadar basit olabilir.

image.png

Zaman serisi, zamana göre sıralanmış bir dizi veri noktasıdır. Yıllar boyunca günlük hisse senedi fiyatları, altn fiyatları, aylık işsizlik oranları, ameliyat sırasında bir hastanın kalp hızı, belirli bir süre boyunca düzenli olarak kaydedilen CO2 seviyeleri, gelgit yüksekliği gibi ölçümler, zaman serisi şeklinde kaydedilebilir.

Zaman serisi verileri, genellikle x ekseninde zaman olacak şekilde bir çizgi grafiği olarak görselleştirilebilir.

Çoğu zaman, zaman serilerini çizerken belirli desenler yakalayabiliriz.

image.png

Örneğin yukarıdaki grafikte yaz aylarında üretimin arttığını kış aylarında düştüğünü görüyoruz. Buna mevsimsellik denir. Mevsimsellik, aylar ve haftalar gibi zamanla ilgili tekrarlanan kalıpların olduğu durumu ifade eder.

Gelecekteki metrikleri tahmin etmek için tahmin modellemesinde zaman serisi verileri, kullanılır. Örneğin, önümüzdeki ay gerçekleşecek yağışları veya trafik durumunu, birkaç saat içinde borsanın hangi seviyede olacağını, nüfusun 20 yıl içinde ne olacağını tahmin etmek için bu yöntemi uygularız. Geçmiş yıllardan veya on yıllardan gelen zaman serileri verilerini kullanarak tahmin modelleri oluşturabiliriz. Bu süreç, istatistiksel ve makine öğrenmesi yöntemlerinin bir kombinasyonunu kullanır.

image.png

Yukarıdaki grafikte mevsimsel özellik gösteren bir zaman serisi için tahmini mavi ile gölgelendirilmiş kısımda görebiliriz.

GÖZETİMLİ MAKİNE ÖĞRENMESİ

Daha önce öğrendiğimiz gibi, makine öğrenmesi, mevcut verilere dayalı tahminler yapmak için bir oluşturulmuş bir dizi yöntemdir. Bu nedenle iş akışının son adımına aittir.

Gözetimli makine öğrenimi, mevcut verilerin belirli bir yapıya sahip olduğu makine öğrenmesinin bir alt kümesidir: etiketleri ve özellikleri vardır. Bu yeni terimleri bir vaka çalışması ile tanımlayalım.

Bir abonelik işletmemiz olduğunu ve belirli bir müşterinin abone olup olmayacağını veya aboneliğini iptal edip etmeyeceğini tahmin etmek istediğimizi varsayalım. İlk olarak, modelimizi oluşturmak için bazı eğitim verilerine ihtiyacımız vardır. Bu, geçmiş müşteri verileri olacaktır. Bu müşterilerin bazıları aboneliklerini sürdürecek, diğerleri ise aboneliklerini iptal ettirecektir. Sonunda her müşteri için etiket tanımlamak mümkündür: iptal veya aktif abone. Sonuçta, yeni müşteriler için tahmin etmek istediğimiz etiketler de (bağımlı değişkenler) yine bunlardır.

Bu tahmini yapmak için bazı özelliklere (bağımsız değişkenlere) ihtiyacımız olacak. Özellikler, etiketimizi etkileyebilecek olan ve her müşteride farklı olan bilgi parçalarıdır. Örneğin, yaş, cinsiyet, son satın alma tarihi veya hanehalkı geliri özellikler "iptal" sonucunu etkileyebilecektir. Makine öğrenmesinin önemli bir avantajı, birçok özelliği aynı anda analiz edebilmemizdir. Yeni veriler hakkında tahminler yapmak amacıyla bir model oluşturmak için bu etiketleri ve özellikleri kullanırız.

Diyelim ki, yakında aboneliğini iptal ettirecek ya da ettirmeyecek bir müşterimiz var. Bu müşteri hakkında yaş veya son satın alma tarihi gibi özellik verilerini toplayabiliriz. Bu verileri eğitimli modelimize aktarabiliriz ve sonra, eğitimli modelimizin bize bir tahmin vermesini sağlayabiliriz. Buna göre müşterinin tiptal etme tehlikesi yoksa, bir ay daha bu müşteriden gelecek gelirlere güvenebiliriz. Eğer iptal tehlikesiyle karşı karşıya kalırlarsak, bu tehlikeye karşı müşteriyi elde tutma girişimlerine başlayabiliriz.

Makine öğrenmesi verilere dayalı bir tahmin yapar. Denetimli makine öğreniminde, bu verilerin iki özelliği vardır: özellikler ve etiketler. Etiketler, müşterinin aboneliğini iptal/abonelik durumu gibi tahmin etmek istediğimiz şeydir. Özellikler, etiketi tahmin etmenize yardımcı olabilecek yaş, meslek, son satınalma tarihi gibi verilerdir. Bu özelliklere ve etiketlere sahip olduğumuzda, modeli eğitiriz ve yeni bu modeli veriler hakkında tahminler yapmak için kullanırız.

Bir model eğittikten sonra bu modelin ne kadar iyi çalıştığını bilmek önemlidir. Bu nedenle, tüm geçmiş verilerimizi eğitime ayırmamak her zaman iyi bir yöntemdir. Eğitimde kullanılmayan ve ayırdığımız veriler bir test seti olarak adlandırılır ve modelin "iyiliğini" değerlendirmek için kullanılabilir. Örneğimizde, modelden bir müşteri kümesinin iptal edip etmeyeceğini tahmin etmesini ve daha sonra tahminimizin doğruluğunu ölçmesini isteyebiliriz.

Örneğin, modelimizi 1000 müşteriden oluşan test setimizle test ettiğimizi varsayalım ve burada sadece 30 müşteri gerçekten iptal etmiş olsun. Bu test verilerini yeni eğitilmiş modelimize koyup tahmin istediğimizde, 21 müşterinin iptal edeceğini tahmin ederse, model (21/30) %70 doğruluk oranına sahiptir diyebiliriz.

GÖZETİMSİZ MAKİNE ÖĞRENMESİ

Bir önceki kısımda, etiketli verilere dayalı tahminler yapmak için denetimli öğrenmeyi nasıl kullanacağımızı öğrendik. Bu derste, kümeleme adı verilen bir gözetimsiz makine öğrenmesi yöntemini inceleyeceğiz.

Kümeleme, verileri "kümeler" olarak adlandırılan "kategorilere" bölen bir dizi makine öğrenme algoritmasıdır. Kümeleme, dağınık veri kümelerindeki kalıpları görmemize yardımcı olabilir. Makine öğrenmesiyle uğraşan veri bilimciler, müşterileri bölümlere, görüntüleri kategorilere, davranışları tipik ve anormal olarak sınıflara bölmek için kümeleme (clustering) yöntemini kullanır.

Kümeleme, daha önce de belirttiğimiz gibi makine öğrenimi içinde bulunan ve denetimsiz öğrenme olarak adlandırılan daha geniş bir kategorinin parçasıdır. Denetimsiz öğrenme, eğitim verilerinin yapısı açısından denetimli öğrenmeden farklıdır. Denetimli öğrenme özellikleri ve etiketleri olan verileri kullanırken, denetimsiz öğrenme yalnızca özellikleri olan verileri kullanır. Bu, denetimsiz öğrenmeyi ve kümelemeyi özellikle çekici kılar. Çünkü, veri kümemiz hakkında fazla bir şey bilmediğimizde bile kullanabileceğimiz bir yöntemdir.

Diyelim ki bir botanikçisiniz ve daha önce keşfedilmemiş bir adada saha çalışması yapıyorsunuz. Özellikle, daha önce hiç görmediğiniz bazı çiçekler hakkında birkaç gözleminiz var. Birkaç yeni çiçek türü keşfettiğinize inanıyorsunuz, ancak kaç tür keşfettiğinizden ve her çiçeğin nasıl sınıflandırılacağından emin değilsiniz. Bu noktada kümeleme yöntemi bize yardımcı olabilir.

İlk adım özellikleri bulmaktır. Neyse ki, veri toplama konusunda titiz davrandınız ve 100'den fazla çiçekle ilgili ölçümler aldınız. Ölçümlerimizi modelimiz için özellikler olarak kullanabiliriz. Bu durum gerçekten, denetimsiz öğrenme problemine bir örnektir. Çünkü özelliklerimiz var, ancak her çiçeğin hangi türe ait olduğundan ve hatta kaç tane yeni tür olduğundan emin değiliz.

Bazı kümeleme algoritmaları, kaç tane küme oluşturmak istediğimizi tanımlamamıza ihtiyaç duyar. Kümelerin sayısı, algoritmanın verilerimizi nasıl segmentlere ayıracağını büyük ölçüde etkiler. Kümeleme bize tam olarak kaç kümeye sahip olduğumuzu söylemez, ancak bilinçli bir karar vermemize yardımcı olabilir. Verilerimiz hakkında güçlü bir hipoteze sahip olmak, kümeleme algoritmasından daha iyi sonuçlar elde etmemize yardımcı olur. Örneğin, bir botanikçi olarak deneyiminizden, bir özelliğin genellikle bir tür içinde geniş bir varyansa sahip olduğunu ve çok fazla ağırlık verilmemesi gerektiğini biliyor olabilirsiniz. Daha iyi bir kümeleme algoritması tasarlamak için bu bilgileri kullanabiliriz.