K-means Kümeleme Analizi
❤
K-means Kümeleme Analizi
❤

Datasetlerimizde her zaman bağımlı değişkenlerimiz olmaz. Bir şekilde verimizi kümelendirmemiz, birbirine benzer ya da yakın öğelerin oluşturduğu topluluklara ayırmamız gerekir. Bu yazımda K-means yöntemini kullanarak müşteri segmentasyonu için kümeleme analizi yapacağız.
Kümeleme Analizinin Aşamaları
- Veri matrisinin oluşturulması,
- Benzerlik ya da uzaklık matrislerinin elde edilmesi,
- kümeleme yönteminin belirlenmesi ve kümelerin oluşturulması,
- Sonuçların yorumlanması.
K-Means
Gözlemleri birbirlerine olan benzerliklerine göre kümelere ayırır.

Veri Setimizi Tanıyalım.
# IS PROBLEMI
# Kural tabanlı müşteri segmentasyonu yöntemi RFM ile
# makine öğrenmesi yöntemi olan K-Means'in müşteri segmentasyonu için
# karşılaştırılması beklenmektedir.
# VERI SETI
# Online Retail II isimli veri seti İngiltere merkezli online bir satış
# mağazasının 01/12/2009 - 09/12/2011 tarihleri arasındaki satışlarını
# içermektedir
# DEGISKENLER
# InvoiceNO – Fatura Numarası
# Eğer bu kod C ile başlıyorsa işlemin iptal edildiğini ifade eder.
# StockCode – Ürün Kodu
# Her bir ürün için eşsiz numara
# Description – Ürün İsmi
# Quantity – Ürün Adedi
# Faturalardaki ürünlerden kaçar tane satıldığını ifade etmektedir.
# InvoiceDate – Fatura tarihi
# UnitPrice – Fatura fiyatı (Sterlin)
# CustomerID – Eşsiz müşteri numarası
# Country – Ülke ismi
Gerekli kütüphaneleri yükleyelim.

Veri setimizi okutalım.

Veri setimizdeki sayısal değişkenlerimize bir göz atalım.

Python Console çıktı:

Sayısal değişkenler %99 a kadar kabul edilebilir aralıkta dağılırken, max değerlerinde aykırılıklar gözüküyor. Kümeleme yaptığımız için ve bu aykırılıklıklar verinin yüzde 0.8 ine denk geldiği için replace_with_thresholds fonksiyonu ile baskılamayı tercih ediyorum.
Veri Baskılanması

RFM Metriklerinin Hesaplanması (Calculating RFM Metrics)

recency: Müşterinin en son ne zaman alışveriş yaptığını gösteren sayısal veri.
frequency: Müşterinin alışveriş sıklığını gösteren sayısal veri.
monetary: Müşteri alışverişinin parasal karşılığını gösteren sayısal veri.
K-means Standartlaştırma

Uzaklık temelli yöntemlerde standartlaştırma yapılması gerekir. Verilerin [0, 1] arasında standartlaştırılması her değişkenin kümelenirken aynı etkiye sahip olmasını sağlar.
Peki kaç kümeye ayrılmalı?
Bunu otomatik bir fonksiyon aracılığıyla ele alacağız. İstenildiği takdirde manuel olarak ayarlanabilir.
Optimum Küme Sayısının Belirlenmesi

Aşağıdaki çıktıda da görüldüğü üzere optimal küme sayımız 5 olarak bulundu.

Kümelerin Görselleştirilmesi ve Merkezlerinin İşaretlenmesi

Python Console Cıktı:


Yukarıdaki görselde datasetim7izdeki veriler kendi aralarında en optimal şekilde kümelendiler. Her kümenin kendine ait özellikleri bulunmakta. Kümeler incelendiğinde istenildiği şeklinde üzerinde oynanabilir ve küme sayılarında değişikliğe gidilebilir. Tamamen manuel şeklinde parametreleri ile oynanabildiği için oldukça kullanışlıdır.
Not: Kodun tamamına git.hub hesabımdan ulaşabilirsiniz.
KAYNAK
Veri bilimi Okulu (VBO) destekleriyle... ❤
Dataset: https://archive.ics.uci.edu/ml/datasets/Online+Retail+II
❤ Takipleşelim! ❤
Git.hub
메타데이터
- post_id
- ff03526be5bb
- slug
- k-means-kümeleme-analizi-ff03526be5bb
- url
- https://medium.com/@zeyland/k-means-k%C3%BCmeleme-analizi-ff03526be5bb
- canonical_url
- https://medium.com/@zeyland/k-means-k%C3%BCmeleme-analizi-ff03526be5bb
- author_url
- https://medium.com/@zeyland
- status
- ok
- fetched_at
- 2026-07-27 13:01:19