Ürün/SKU Segmentasyonu 7

Trendify Analytics
TrendifyAnalytics
Published in
5 min readFeb 8, 2022

--

TRENDIFY SEGMENTASYON ÇÖZÜMLERİ

13. Trendify segmentasyon — ÜrünTanıtımı

Bu yazıda Trendify Segmentasyon Algoritması ile örnek tekstil perakendesindeki ürünlerin verileri kullanılarak, ürün segmentasyonu işlemi gerçekleştirildi. İlk adımda veri hazırlığı, eksik verilerin doldurulması, outlier değerlerin tespiti, verinin scale edilmesi ve boyut indirgeme (PCA) işlemlerinin uygulanması gerçekleştirilmiştir. İkinci etapta kümeleme modellerinin oluşturulması için hiper parametre optimizasyonu ve eğitim süreci gerçekleştirilmiştir. Son etapta ise elde edilen ürün gruplarında otomatik olarak profilleme yapılmıştır.

Demo dataset bilgileri önceki yazıda anlatılmıştır: https://trendify.com.tr/article/product-sku-segmentation-6 Section: Interpreting Cluster Profiling Results with Sample Data

Ek olarak github hesabından data erişimi için: https://github.com/Trendify-Analytics/Demo-Data .

Şekil1: Veri Türlerini Dönüştürme

İlk adımda veri türlerinin düzenlemesi gerçekleştirildi. Veride ki tarih formatında ki değerler datetime formatına çevirildi. Daha sonra verinin içerisinde string formatında bulunan ama numerik değer olan tüm kolonlar float tipine çevirildi. Bu sayede veride ki string değerler kümeleme modeline girebilir hale getirildi. Bu işlemden sonra arasında veri içerisinde para birimi olabilecek değerler yani TL, dolar, euro gibi para birimlerinin simgesi var ise bu değerler otomatik olarak float değerlere çevirildi. Burada ki amaç yine para birimi gibi string değer içeren bir kolonu modele katkı sağlar hale getirebilmektir.

Veri hazırlık aşamasında ikinci adımda tekrar eden satırların düşürülmesi sağlandı. Kümeleme problemlerinde her veri kümelerin ağırlık merkezini etkilediği için buradaki düşürme işlemine ID sütunu da dahil edildi. Bu sayede ID sütunu da dahil edildiğinde tekrar eden tüm sütunlar düşürülmüş olur. Bu veride tekrar eden satır bulunmadığı için bu adımda herhangi bir veri silme işlemi gerçekleşmedi. Bu adımdan sonra tamamen aynı değere sahip kolonlar kontrol edilir. Bu koşullarda bir kolon varsa o da düşürülür.

Tekrar eden satırların silinmesi adımından sonra Encoding Datetime gerçekleştiriliyor. Bu adımda ise tüm datetime formatına sahip değerler circular veya lineer dönüşümler uygulanarak ay, gün ve yıl değerleri sayısal değerlere çevirildi. Burada ki amaç tarihleri modele faydalı hale getirebilmek çünkü tarih formatı direkt olarak kümeleme modeline giremez. Bu yüzden tarih formatlarını sayısal formatları dönüştürülüyor.

Şekil2: Aykırı değerleri ayıklama

Sonraki adım ise outlier değerleri tespit edip bu değerleri veriden çıkarmaktır. Trendify data preparation modülü outlier tespiti için farklı standart sapmalarda iteratif olarak outlier araştırması yapar. Verinin boyutuna göre uygun outlierlara karar verir. Bu sayede uygun sayıda aykırı gözlem veriden çıkarılmış olur. Karar verilen outlier grupları ise ayrı bir Segmentasyon grubu olarak etiketlenecektir.

Şekil3: Veri ölçeklendirme

Scaling aşamasında veriyi aynı ölçüye getirebilmek için Standart Scaling veya Normal Scaling işlemi yapılır. Hangi scaling yönteminin yapılacağına modelin ihtiyacına göre karar verilir. Scaling işleminin amacı kolonlarda ki farklı değerleri belli bir aralığa yani –1, 1 veya 0, 1 gibi bir aralığa getirilir.

Şekil4: Boş değerleri doldurmak

Eksik değerlerin doldurulması aşamasında genellikle değişkene özel olarak mean, median veya mod gibi değerler tercih edilmektedir. Ayrıca KNN-Imputer gibi model bazlı doldurma yöntemleri de tercih edilebilmektedir. Burada Trendify data preparation modülü segmentasyon algoritmalarına özgü bir doldurma yöntemi izlemektedir. Burada ki amaç eksik olan değerleri ayrı şekilde göstererek kümeleme algoritmalarının eksik veriyi anlamasını sağlamaktır.

Aşağıda ki grafikte eksik verileri doldurulmuş verinin PCA yöntemiyle boyut indirgenmiş halini görüyorsunuz. Grafikte kırmızı halka içerisine alınmış bölüm eksik verilerin olduğu kısmı göstermektedir. Trendify preparation modülü sayesinde eksik veriler normal veriden ayrı olarak konumlandırılır ve modele bu şekilde girdi sağlanır.

Şekil5:Eksik Değerleri Doldurulmuş Veri

Veri hazırlık aşamasında ki son adım ise PCA boyut indirgeme işlemidir. Bu aşamada verinin kaç boyutlu olacağına karar vermek için değişkenler arası korelasyon kontrol edilir ve veri boyutuna karar verilir. PCA sayesinde hem veride ki gereksiz kolonlardan kurtulmuş olunur hem de depolamadan tasarruf sağlanır ve modelin daha hızlı sonuç vermesi sağlanır. Bu veride 8 kolon bulunmaktadır. Veri PCA boyut indirgeme yöntemi sayesinde 5 kolona indirgenmiştir.

Şekil6: Boyut indirgenmiş veri

Veri hazırlığı adımları tamamlandıktan sonra model oluşturma aşamasına geçilir. Trendify segmentasyon algoritması en uygun model parametrelerini bulmak için hyperparametre optimizasyonu gerçekleştirir. Algoritmanın burada ki hedefi en kısa sürede en uygun parametreleri bulmaktır. Trendify segmentasyon algoritması en optimal parametreleri bulduktan sonra eğitilen modeller arasından değerlendirme skorlarına göre bir model seçilir. Seçilen modelin oluşturduğu kümeler yeteri kadar ayrıldıysa süreç tamamlanır ve model tamamlanır. Ancak kümeler yeteri kadar bölünmediyse ve verinin büyük parçası halâ tek bir küme halindeyse bu küme kullanılarak yeniden bir kümeleme işlemi gerçekleştirilir. Kümeler yeteri oranda bölünene dek süreç iteratif şekilde devam eder.

Şekil7: Trendify algoritması ve diğer algoritmaların sonuçları

Yukarıdaki resimde modellerin kümeleme sonuçları gösterilmektedir. Çalıştırılan tüm algoritmalar ve bunlara ait hyperparametrelerden birisi, değerlendirme metriklerinin skorları ve elde edilen küme sayıları görülmektedir. Değerlendirme metriklerine göre karşılaştıracak olursak Silhoutte skoru, Calinski Harabasz ve Davis Bouldin skoru en iyi olan model hierarhical kümeleme algoritmasıdır. Algoritma sonuç olarak veriyi 2 farklı kümeye ayırmış. Trendify segmentasyon algoritması ise veriyi 8 farklı kümeye ayırmış. Buradaki fark Trendify segmentasyon algoritması yeteri kadar bölünemeyen kümeleri tekrar ayırmaktadır. Aşağıda ki grafiklerde Hierarchical kümeleme ve Trendify Segmentasyon Algoritmasının kümeleme sonuçları 3 boyutlu hale getirerek gösterilmektedir.

Şekil8: Hieararchical Kümeleme Sonuçları (Küme0, Küme1)

3 boyutlu hierarchical algoritmasının kümeleme grafiğinde 2 adet küme bulunmaktadır. Grafikte gösterildiği gibi küme isimleri sırasıyla küme 0 ve küme 1’dir. 0 numaralı küme yeteri kadar ayrılmamış gözükmektedir.

2. grafikte ise Trendify segmentasyon sonuçları gösterilmektedir. Grafikte Hieararchical kümeleme algoritmasının küme 0 olarak tanımladığı kümenin Trendify segmentasyon Algoritması tarafından yeniden bölümlendirilmesi gösterilmektedir. Bu grafikte az sayıda olan kümelere yer verilmemiştir. Grafiğe baktığımız da açıkça görüldüğü üzere tek başına büyük bir küme olan küme 0 birden fazla bölünmeye uğrayarak daha kullanışlı, değerlendirebilir ve yorumlanabilir bir hale getirilmiştir.

Şekil9: Trendify Segmentasyon Sonuçları (Küme 0)

Son aşama ise kümeleme sonuçlarının profilleme aşamasıdır. Tüm kümeler ve kümelere genel bakış aşağıdaki görüntüde görünmektedir;

Şekil10. Trendify demo ürün segmentsyon sonucu

Küme profillerinin değerlendirmesi için daha önce yazdığımız yazıya https://trendify.com.tr/article/product-sku-segmentation-6 buradan ulaşabilirsiniz.

Bu yazıda Trendify segmentasyon algoritması ile tekstil perakendesinde ki ürünlerin verilerinin veri hazırlık süreci, model oluşturulması ve eğitilmesi, oluşturulan kümelerin profillemesini yaptık ve sonuçları değerlendirdik. Trendify segmentasyon algoritması sayesinde verinize hakim olarak ürünlerinizden ortak özellikli grupları çıkarma ve bunları işiniz için değere dönüştürme gücüne sahip olursunuz. Daha fazla bilgi ve bize ulaşmak için https://trendify.com.tr/ adresini ziyaret edebilirsiniz.

Yayınlanma tarihi : 20.01.2021

Yazar : Mustafa Gencer (Data Scientist , TRENDIFY)

Originally published at https://trendify.com.tr.

--

--