Ana içeriğe geç Tamamlayıcı içeriğe geç

Yapısal çerçevenin uygulanması: Müşteri kaybı örneği

Bu örnekte, bir makine öğrenimi sorusunun adım adım nasıl tanımlandığı anlatılacaktır. İyi tanımlanmış bir soru oluşturmak için, iş bilgilerinin, olay tetikleyicisi, hedef, tahmin noktası ve özelliklerden oluşan çerçeveyle nasıl birleştirileceğini öğreneceksiniz.

Başlangıç noktası "Müşteriyi kaybedecek miyiz?" sorusuyla açıklanabilecek iş senaryosudur. Yapısal çerçeveyi kullanarak bu soruyu, makine öğrenimi algoritması tarafından tahmin edilebilecek daha belirgin bir hale getireceğiz.

Olay tetikleyicisi

Olay tetikleyicisi, yeni tahmin oluşturulmasını tetikleyen bir eylem veya olaydır. Senaryomuzdaki olay tetikleyicisini "müşterinin abonelik kaydı oluşturması" olarak tanımlıyoruz. Bunun verilerimizdeki temsili, yeni bir müşteri oluşturulmasıdır. Müşterinin, aboneliğini iptal edip etmeyeceğini müşteri düzeyinde tahmin etmek istiyoruz. Bu nedenle her satırın tek bir müşteriyi temsil etmesi gerekiyor.

İşle ilgili sahip olduğumuz bilgilere dayanarak ve verilere bakarak müşteri kaybının en yaygın şekilde yeni müşterilerde görüldüğünü biliyoruz. Bu nedenle özellikle yeni müşterilere odaklanmaya karar veriyoruz. Olay tetikleyicisi, yeni müşteri kaydı olduğundan her müşterinin, abone oldukları günden itibaren özel bir zaman çizelgesi olduğunu düşünebiliriz.

Olay tetikleyicisi, yeni bir müşterinin abone olduğu tarihtir. Yatay çizgi, aboneliğin üzerinden kaç gün geçtiğini temsil eder.

Yeni müşterinin zaman çizelgesi.

Hedef

Hedef, tahmin etmeye çalıştığımız sonuçtur. Müşteri kaybını tahmin etmeye çalıştığımızdan genel hedefimizin "Müşteriyi kaybedecek miyiz?" sorusunun yanıtı olduğunu biliyoruz. Ancak kaliteli bir makine öğrenimi modeli oluşturmak için daha durumu daha fazla netleştirmemiz gerekiyor. Öncelikle "müşteri kaybı"nın, müşterinin aboneliğini iptal etmek amacıyla bizi araması anlamına geldiğini belirleriz.

Hedef sonuç, müşterinin aboneliğini iptal etmek için bizi aradığında ortaya çıkıyor.

Hedefi içeren müşteri zaman çizelgesi.

Daha sonra iptal aramasının yapılacağı zaman dilimini (ufuk) belirleriz. Aboneliğini iptal eden birden çok müşteriyi incelediğimizde zaman çizelgelerinin birbiriyle aynı olmadığını görüyoruz. Bazı müşteriler aboneliği 45 gün sonra, bazıları ise 110 sonra iptal ediyor.

Abonelik başlangıcından müşterinin abonelik iptali için aradığı tarihe kadar geçen gün sayısı. Her çizgi farklı bir müşteriyi temsil eder.

Müşterilerin aboneliklerini kaç gün sonra iptal ettiğini gösteren zaman çizelgeleri.

90 günlük ücretsiz deneme programı sunuyoruz ve birçok müşterinin bu deneme süresi içinde aboneliği iptal ettiğini biliyoruz. Bu iş bağlamında aklımıza ilk gelen fikir, 90 günlük dönemi ufuk olarak kullanmak. Aboneliğini iptal etmesini beklediğimiz müşterileri tahmin ederek bu müşterilere erkenden ulaşmayı ve hizmette kalmaları için teşvik edici bazı teklifler (indirim veya ek abonelik özellikleri) sunmayı planlıyoruz.

Müşterilerin, kaydolduktan sonra kaç gün içinde aboneliği iptal ettiğini gösteren histogram, işle ilgili bu sezgimizi doğruluyor. Şekilde, son üç yılda kaybettiğimiz tüm müşterilere ait verileri görebiliyoruz.

Abonelik iptali aramalarının, abone olduktan sonra geçen gün sayısına göre dağılımı. Çoğu iptal, müşteri aboneliğinden yaklaşık 90 gün sonra gerçekleşiyor.

Müşteri aboneliği iptal edene kadar geçen gün sayısının gösterildiği histogram.

90 günlük bir ufuk belirlemek, iyi bir başlangıç noktası gibi görünüyor. Ancak histogramımızda bu ufku çizdiğimizde, 90 günlük deneme süresinden birkaç gün sonra kaybettiğimiz çok sayıda müşteri olduğunu fark ediyoruz. Bunun nedeni, kredi kartından ücret tahsil edildiğini görmeleri veya birkaç gün sonra, ödeme yönteminin reddedildiğine dair bir bildirim almaları olabilir ve ancak o zaman abonelik iptali için arama yapmaları olabilir.

Abone olunduktan 90 gün sonraki ufuk

90 günlük ufkun işaretlendiği histogram.

Bu müşterileri modelimize "kaybedilen müşteri" olarak eklemek istediğimizden hedef ufkumuzu 110 gün olarak belirlemenin daha mantıklı olacağına karar veriyoruz. 110 günlük süreyi kullandığımızda, kaybedilen çoğu müşterinin ücretsiz deneme programıyla ilişkili olduğunu belirliyoruz.

Abone olunduktan 110 gün sonraki ufuk

110 günlük ufkun işaretlendiği histogram.

Artık hedefimizi tanımladığımıza göre verilerin nerede depolandığını ve veri kümesindeki hedef sütunu oluşturmak için nasıl temizleneceğini tespit edebiliriz. Bu örnekte şu işlemleri yapıyoruz:

  1. Salesforce'tan müşteri durumu verilerini çekin.

  2. Durum, müşterinin oluşturulduğu tarih ve müşteri iptal tarihini ayıklayın:

    Örnek veriler içeren tablo.

  3. Ayıklanan verileri temizleyin ve hedef sütuna dönüştürün:

    Örnek veriler içeren tablo.

Olay tetikleyicimizi (yeni müşteri kaydı) ve hedefimizi (abone olduktan sonra 110 içinde abonelik iptali için arama yapan müşteri) tanımladık. Bunlar, şekildeki zaman çizelgesinde gösteriliyor.

Olay tetikleyicisi, müşterinin kaydolduğu tarih (1); hedef sonuç, müşterinin abonelik iptali için arama yaptığı tarih (2); hedef ufku ise abone olduktan sonraki 110 gündür (3).

Olay tetikleyicisi, hedef ve hedef ufkunun gösterildiği zaman çizelgesi.

Tahmin noktası

Tahmin noktası, özelliklere yönelik verileri toplamayı durdurduğunuz ve her satır için hedefi tahmin ettiğiniz belirlenmiş bir tarihtir. Tahmin noktası, olay tetikleyicisi (abonelik kaydının oluşturulduğu gün) ile hedef ufku (kayıttan sonraki 110 gün) arasındaki herhangi bir yerde olabilir. Başlangıç noktası seçme aşamasında, gerçekleştirmek istediğimiz eylemi göz önünde bulundurabiliriz.

Kullandığımız örnekte, bir müşteriyi kaybedeceğimize dair tahminde bulunulduğunda müşteri desteği ekibinin, müşteriyi elde tutmayı sağlayan tekliflerle söz konusu müşteriye 30 içinde erişmesini isteyebiliriz. Bu, hedef ufkundan en az 30 gün önce, yani 80. güne kadar, tahminde bulunmamız gerektiği anlamına geliyor.

Tahmin noktası (2), olay tetikleyicisi (1) ile hedef ufku (3) arasındaki 80. gün olarak belirlenir.

Tahmin noktasının gösterildiği zaman çizelgesi.

Tahmin noktamız olarak 80. günü seçmek, yeni kaydolan müşteriler hakkında veri toplamamız için 80 gün süre tanır. Olay tetikleyicisi ile tahmin noktası arasındaki bu zaman dilimine veri toplama aralığı denir. Veri toplama aralığında toplanan veriler, özellikleri oluşturmak için kullanılır.

Veri toplama aralığı, olay tetikleyicisi ile tahmin noktası arasında kalan süredir.

Olay tetikleyicisi ile tahmin noktası arasında kalan veri toplama aralığının gösterildiği zaman çizelgesi.

80. günü tahmin noktası olarak kullandığımızda, tahmin noktası ile hedef ufku arasında kalan 30 günlük bir eylem aralığı elde ediyoruz. Müşteri desteğinden bu 30 günlük sürede müşterilere ulaşmaları istenir.

Eylem aralığı, tahmin noktası ve hedef ufku arasındaki süredir.

Tahmin noktası ile ufuk arasında kalan veri toplama aralığının gösterildiği zaman çizelgesi.

Tahminlerle ilgili eylemler gerçekleştirmek gerekli olan minimum eylem aralığını belirlemeye ek olarak, müşteri kaybına kadar geçen gün sayısının gösterildiği histograma da göz atmamız gerekir. 80. gündeki tahmin noktası uygulandığında şu durumla karşılaşırız:

Veri toplama aralığı ve eylem aralığı ile iptal aramalarının dağılımı.

Tahmin noktasının ve ufkun işaretlendiği histogram.

Bu histograma baktığımızda 80. günde yer alan tahmin noktasının, iş değerini maksimum seviyeye çıkaramadığını fark ediyoruz. 80 günlük veri modelin doğruluğunu artırmaya yardımcı olacaktır ancak bunun eyleme geçme maliyeti yüksektir:

  • Öncelikle birçok müşteriyi 80. güne gelmeden zaten kaybettiğimizden bu müşteriler veri toplama aralığında, biz tahmin bile yapmadan önce, aboneliğini iptal ediyor. Tahmin yapmadan önce sonucu biliyor olacağımız için bu durumda söz konusu müşterileri eğitim veri kümesine eklemek istemeyiz.

  • İkinci olarak da çok sayıda müşteriyi 80 ile 90. gün arasında kaybettiğimizden müşteri destek ekibinin, bu müşterilere ulaşmak için 30 günlük bir süresi olmuyor.

Tahmin noktasından önce aboneliklerini iptal eden müşteriler, bu eğitim dahil edilmeyecek eklenmeyecek.

Tahmin noktasından önce kaybedilen müşterilerin oranının gösterildiği histogram.

Tahmin noktasını 60 güne taşımak, doğruluk ve eyleme geçebilirlik arasında daha iyi bir denge kurulmasını sağlar. Modelimizdeki özellikleri kullanmak üzere veri toplamak için hâlâ 60 günümüz var ancak yeterince erken tahminde bulunduğumuzdan müşteri destek ekibi, aboneliğini iptal edeceğini tahmin ettiğimiz müşterilerin çoğuna ulaşmak için 30 gün süresi var. Veri toplama aralığını kısalttığımızda model doğruluğunun azalmasını bekleyebiliriz. Buna karşın çok daha fazla sayıda eyleme geçilebilir tahmin elde etmiş oluruz.

Tahmin noktasını 60. güne taşıdığımızda veri toplama aralığı kısalır ancak daha uzun bir eylem aralığına sahip oluruz. Eğitim verilerinde bazı müşteriler hariç tutulur.

Daha erken tarihli tahmin noktasını ve daha uzun süreli eylem aralığını barındıran histogram.

Özellikler

Olay tetikleyicisi, hedef ve tahmin noktası belirlendikten sonra veri kümemizin son parçasını, özellikleri ekleyebiliriz. Özellikler, makine öğrenimi algoritmalarının genel örüntüleri öğrendiği eğitim veri kümesindeki her veri satırına ait bilinen nitelikler veya gözlemlerdir. Ardından algoritmalar, uygulama veri kümesinde yeni bir veri satırıyla karşılaştıklarında tahmin yapabilmek için bu özellikleri kullanırlar.

Özellikleri, sonuca etki eden unsurların neler olduğuna dair, iş bilgisine dayalı hipotezler olarak düşünebilirsiniz. Örneğimizde yer alan bazı özellikler, müşteri konumu, müşteri kaynağı, kaydolunan ay, giriş yapma sayısı veya aktif kullanıcı sayısı olabilir.

İki özellik kategorisi vardır:

  • Sabit özellikler, en basit özelliklerdir. Zaman içinde değişmez. Bu örnekte, kayıt sırasındaki müşteri konumu, müşteri kaynağı ve kaydolunan ay gibi öğelerin tümü sabit özelliklerdir. Müşteri kayıt yaptığı andan itibaren (olay tetiklendiğinde) bilinirler ve tahmin noktamız nerede olursa olsun bu bilgiler elimizde olur ve değişmez.

  • Aralığa bağımlı özellikler biraz daha karmaşıktır. Bunlar, olay tetikleyicisi ile tahmin noktası arasında toplanan bilgilere dayalı özelliklerdir. Yalnızca bu süre içinde bilinebilecek verileri kullanmanız önemlidir. Aksi takdirde modelde veri sızıntısı oluşabilir. (Daha fazla bilgi için bkz. Veri sızıntısı.)

Basit bir model, yalnızca 0. günde bilinebilecek bilgileri (yalnızca sabit özellikleri) kullanabilir. Bu, şekilde gösterildiği gibi 0. günde bir tahmin noktası sunar.

Tahmin noktası 0. günde olduğunda veri toplamak için 0 günümüz olduğundan yalnızca 0. günde bilinen sabit özellikleri kullanabiliriz. Eylem aralığı ise 110 günün tamamı olur.

Tahmin noktasının 0. gün olarak gösterildiği histogram.

Sonuç veri kümesi şuna benzer:

Yalnızca sabit özellikleri içeren eğitim verileri

Örnek veriler içeren tablo.

Buna karşın, tahmin noktası 60. gün olan örneğimizde olduğu gibi müşteri abone olduktan sonra toplanan verileri kullanmak isteyebiliriz.

60. gündeki tahmin noktasında verileri toplamak için 60 günümüz, eyleme geçmek için 50 günümüz olur.

Tahmin noktasının 60. gün olarak gösterildiği histogram.

Şimdi, modelimize aralığa bağımlı özellikler eklemek için müşteri kaydolduktan sonra 60 gün boyunca toplanan bilgileri kullanabiliriz. İlk 60 Gündeki Oturum Açma Sayısı ve 60. Gündeki Aktif Kullanıcılar gibi aralığa bağımlı özellikler dahil edildiğinde, bu modele ait veri kümemiz, aşağıdaki tablo gibi görünebilir.

Aralığa bağımlı özellikleri içeren örnek veriler

Örnek veriler içeren tablo.

Bunun bir örnek olduğunu ve özelliklerin, veri toplama aralığının tamamını yansıttığını unutmayın. Daha küçük de olabilirler. Örneğin, özellikler, tahmin noktasından sonraya ait bilgileri içermediği sürece ilk 10 gündeki oturum açma sayısını veya 30 ile 60. gün arasındaki oturum açma sayısını ölçebiliriz.

Tarih bilgisine ek olarak veri sızıntısını önlemek amacıyla veri toplama aralığında kalındığının onaylanması için ek işlem gerektirdiğinden aralığa bağımlı özellikleri toplamak daha karmaşık olabilir. Aynı zamanda bunlar, tahmin tarihine çok daha yakın zamanda toplanan bilgileri yansıtabileceğinden en güçlü özellikler de olabilir.

Sonuç olarak elde edilen makine öğrenimi sorusu

"Müşteriyi kaybedecek miyiz?" gibi basit bir soruyla başladık. Ardından tek tek müşteri düzeyinde tahminler yapmak istediğimiz için olay tetikleyicimizi "Yeni müşteri kaydı" olarak tanımladık.

Belirli bir sonuca sahip hedefimizi, "Müşteri, aboneliğini iptal etmek için aradı (Evet veya Hayır)" biçiminde tanımladık ve çoğu deneme müşterimizin aboneliği iptal etme süresi olduğundan ufku da 110 gün olarak belirledik.

Son 3 yıl içinde, kaydolan müşterilerin aboneliği iptal etmek üzere kaç gün sonra bizi aradığına dair histogramı incelediğimizde tahmin noktasının kayıttan sonraki 60. gün olmasına karar verdik. Bu, tahmin yapmadan önce 60 gün boyunca bilgi toplamamıza imkan sağlıyor ve müşteri desteği ekibine, kaybı azaltmak için tahminlerimizle ilgili eyleme geçmesine yetecek kadar süre tanıyor.

Son olarak ise özellikleri oluşturmak için, müşterilerle ilgili 60. günden önceye ait verileri topladık.

Sonuç olarak elde ettiğimiz makine öğrenimi sorusu: "İlk 60 günlük etkinliğin ardından bir müşteri, aboneliğini iptal etmek için 110. güne kadar bizi arayacak mı?"

Otomatik makine öğrenimi için kullanılmaya hazır olan veri kümesi aşağıdaki tablodaki gibi görünür. Konum, Müşteri Kaynağı, Katıldığı Ay ve Abonelik Tutarı sabit özellikler; İlk 60 Gündeki Oturum Açma Sayısı ve 60. Günde Aktif Olan Kullanıcılar ise aralığa bağımlı özelliklerdir. Hedef sütun ise 110. Güne Kadar Aboneliği İptal Etti başlıklı sütundur.

Sabit özellikleri içeren örnek veriler (1), aralığa bağımlı özellikler (2) ve hedef (3)

Örnek veriler içeren tablo.

Bu sayfa size yardımcı oldu mu?

Bu sayfa veya içeriği ile ilgili bir sorun; bir yazım hatası, eksik bir adım veya teknik bir hata bulursanız, bize bildirin, düzeltelim!