k-ortalamalar ne demek?

İşte k-ortalamalar hakkında kapsamlı bir makale:

# K-Ortalamalar Kümeleme Algoritması

**K-ortalamalar (k-means)**, [veri madenciliği](https://www.nedemek.page/kavramlar/veri%20madenciliği) ve [makine öğrenimi](https://www.nedemek.page/kavramlar/makine%20öğrenimi) alanlarında yaygın olarak kullanılan bir [kümeleme](https://www.nedemek.page/kavramlar/kümeleme) algoritmasıdır. Amaç, n gözlemden oluşan bir veri kümesini k sayıda kümeye ayırmaktır. Her bir gözlem, en yakın ortalamaya (küme merkezine) sahip olduğu kümeye aittir ve bu ortalamalar kümelerin prototipi olarak kullanılır. K-ortalamalar, özellikle büyük veri kümelerinde hızlı ve verimli sonuçlar vermesi nedeniyle popülerdir.

## İçindekiler

1.  [Giriş](#giriş)
2.  [Algoritmanın Çalışma Prensibi](#algoritmanın-çalışma-prensibi)
3.  [Algoritmanın Adımları](#algoritmanın-adımları)
4.  [K Değerinin Seçimi](#k-değerinin-seçimi)
5.  [Başlangıç Merkezlerinin Seçimi](#başlangıç-merkezlerinin-seçimi)
6.  [Uzaklık Ölçütleri](#uzaklık-ölçütleri)
7.  [K-Ortalamaların Avantajları ve Dezavantajları](#k-ortalamaların-avantajları-ve-dezavantajları)
8.  [K-Ortalamaların Uygulama Alanları](#k-ortalamaların-uygulama-alanları)
9.  [K-Ortalamalar ve Diğer Kümeleme Algoritmaları](#k-ortalamalar-ve-diğer-kümeleme-algoritmaları)
10. [Varyasyonlar](#varyasyonlar)
11. [Performans Değerlendirmesi](#performans-değerlendirmesi)
12. [Örnek Kod](#örnek-kod) (Python)
13. [Ayrıca Bakınız](#ayrıca-bakınız)
14. [Kaynakça](#kaynakça)

## Giriş

K-ortalamalar algoritması, gözlemleri belirli sayıda kümeye ayırmak için kullanılan bir bölücü (partitioning) kümeleme tekniğidir. Amaç, her bir gözlemi en yakın küme merkezine atayarak kümeler içindeki varyansı en aza indirmektir. Algoritma, her küme için bir merkez noktası (centroid) belirler ve gözlemleri bu merkezlere olan uzaklıklarına göre kümelere atar.

## Algoritmanın Çalışma Prensibi

K-ortalamalar algoritması, iteratif bir süreçle çalışır. Temel prensibi, veri noktalarını kümeler arasında yeniden dağıtarak kümelerin içindeki benzerliği maksimize etmek ve kümeler arasındaki benzerliği minimize etmektir.  Algoritma, aşağıdaki adımları tekrar tekrar uygulayarak en iyi kümelemeyi bulmaya çalışır.

## Algoritmanın Adımları

1.  **Başlangıç Merkezlerinin Seçimi:** Veri kümesinden rastgele k sayıda nokta seçilir. Bu noktalar başlangıç küme merkezleri olarak kabul edilir. Alternatif olarak, daha gelişmiş başlangıç noktası seçme yöntemleri de kullanılabilir (bkz. "[Başlangıç Merkezlerinin Seçimi](#başlangıç-merkezlerinin-seçimi)").

2.  **Atama Adımı:** Her bir veri noktası, en yakın küme merkezine atanır. Bu atama işlemi genellikle [Öklid mesafesi](https://www.nedemek.page/kavramlar/Öklid%20mesafesi) veya [Manhattan mesafesi](https://www.nedemek.page/kavramlar/Manhattan%20mesafesi) gibi bir uzaklık ölçütü kullanılarak yapılır.

3.  **Güncelleme Adımı:** Her bir küme için yeni bir merkez noktası hesaplanır. Bu genellikle kümedeki tüm noktaların ortalaması alınarak yapılır.

4.  **Durdurma Kriteri:** Algoritma, aşağıdaki durumlardan biri gerçekleşene kadar 2. ve 3. adımları tekrar eder:
    *   Küme merkezleri önemli ölçüde değişmez.
    *   Veri noktalarının kümeleri değişmez.
    *   Maksimum iterasyon sayısına ulaşılır.

## K Değerinin Seçimi

K-ortalamalar algoritmasında küme sayısını (k) belirlemek önemlidir.  Yanlış bir k değeri, yetersiz veya aşırı kümelenmeye neden olabilir. K değerini belirlemek için kullanılabilecek bazı yöntemler şunlardır:

*   **Dirsek Yöntemi (Elbow Method):** Farklı k değerleri için kümeler içindeki varyansı (within-cluster sum of squares - WCSS) hesaplanır ve bir grafik üzerinde çizilir. Grafikteki "dirsek" noktası, uygun bir k değeri olarak kabul edilir.
*   **Silüet Analizi:** Her bir veri noktasının kümelemesinin ne kadar iyi olduğunu ölçen bir metriktir. Silüet değeri, -1 ile 1 arasında değişir. 1'e yakın değerler iyi bir kümelemeyi, -1'e yakın değerler ise kötü bir kümelemeyi gösterir. Farklı k değerleri için silüet skorları hesaplanarak en yüksek skoru veren k değeri seçilebilir.
*   **Etki Alanı Bilgisi:** Kümelenecek verinin niteliği ve yapısı hakkında bilgi sahibiyseniz, bu bilgiyi kullanarak k için uygun bir değer belirleyebilirsiniz.

## Başlangıç Merkezlerinin Seçimi

K-ortalamalar algoritmasının performansı, başlangıç küme merkezlerinin seçimine bağlıdır.  Kötü seçilmiş başlangıç merkezleri, yerel optimumlara takılmasına ve daha uzun sürede yakınsamasına neden olabilir. Başlangıç merkezleri için yaygın olarak kullanılan bazı yöntemler şunlardır:

*   **Rastgele Seçim:** Veri kümesinden rastgele k sayıda nokta seçilir.
*   **K-means++:**  Başlangıç noktalarını birbirinden uzak seçmeyi amaçlayan bir algoritmadır. İlk merkez rastgele seçilir, sonraki merkezler ise mevcut merkezlere olan uzaklıklarına göre olasılıklı olarak seçilir. Bu, küme merkezlerinin veri kümesi üzerinde daha iyi dağılmasını sağlar.
*   **Ön Kümeleme:** Veri kümesi üzerinde hızlı bir kümeleme algoritması çalıştırılarak (örneğin, mini-batch k-means) başlangıç merkezleri elde edilebilir.

## Uzaklık Ölçütleri

K-ortalamalar algoritmasında, veri noktalarının küme merkezlerine olan uzaklığını hesaplamak için farklı uzaklık ölçütleri kullanılabilir. En yaygın kullanılan uzaklık ölçütleri şunlardır:

*   **[Öklid Mesafesi](https://www.nedemek.page/kavramlar/Öklid%20mesafesi):** İki nokta arasındaki düz çizgi mesafesidir.
*   **[Manhattan Mesafesi](https://www.nedemek.page/kavramlar/Manhattan%20mesafesi):** İki nokta arasındaki mesafeyi, yalnızca eksenlere paralel hareket ederek hesaplar.
*   **[Minkowski Mesafesi](https://www.nedemek.page/kavramlar/Minkowski%20mesafesi):** Öklid ve Manhattan mesafelerini genelleştiren bir uzaklık ölçütüdür.
*   **[Kosinüs Benzerliği](https://www.nedemek.page/kavramlar/Kosinüs%20Benzerliği):** İki vektör arasındaki açının kosinüsünü hesaplar. Özellikle metin madenciliği ve bilgi erişimi gibi yüksek boyutlu verilerde kullanışlıdır.

## K-Ortalamaların Avantajları ve Dezavantajları

**Avantajları:**

*   Basit ve anlaşılması kolay bir algoritmadır.
*   Büyük veri kümelerinde hızlı ve verimli bir şekilde çalışabilir.
*   Çok çeşitli uygulama alanlarında kullanılabilir.

**Dezavantajları:**

*   K küme sayısını önceden belirlemek gerekir.
*   Başlangıç küme merkezlerinin seçimine duyarlıdır.
*   Yerel optimumlara takılabilir.
*   Gürültülü veriler ve aykırı değerlerden etkilenebilir.
*   Küresel olmayan kümeleri tespit etmekte zorlanabilir.
*   Tüm kümelerin aynı boyutta ve yoğunlukta olduğunu varsayar.

## K-Ortalamaların Uygulama Alanları

K-ortalamalar, birçok farklı uygulama alanında kullanılabilir. Bazı örnekler şunlardır:

*   **Müşteri Segmentasyonu:** Müşterileri, demografik özelliklerine, satın alma davranışlarına veya ilgi alanlarına göre gruplara ayırmak.
*   **Görüntü İşleme:** Görüntüleri renklere veya özelliklere göre segmentlere ayırmak.
*   **Belge Kümeleme:** Belgeleri konularına veya içeriklerine göre gruplara ayırmak.
*   **Anomali Tespiti:** Normal olmayan veri noktalarını veya davranışları tespit etmek.
*   **Finansal Analiz:** Hisse senetlerini veya yatırım portföylerini risk ve getiri profillerine göre gruplara ayırmak.
*   **Sağlık Hizmetleri:** Hastaları hastalıklarına veya risk faktörlerine göre gruplara ayırmak.

## K-Ortalamalar ve Diğer Kümeleme Algoritmaları

K-ortalamalar, en yaygın kullanılan kümeleme algoritmalarından biridir, ancak diğer kümeleme algoritmaları da mevcuttur.  Bazı yaygın kümeleme algoritmaları şunlardır:

*   **[Hiyerarşik Kümeleme](https://www.nedemek.page/kavramlar/Hiyerarşik%20Kümeleme):** Veri noktalarını bir hiyerarşi şeklinde kümelendirir.
*   **[DBSCAN](https://www.nedemek.page/kavramlar/DBSCAN):** Yoğunluğa dayalı bir kümeleme algoritmasıdır.
*   **[Gaussian Karışım Modelleri (GMM)](https://www.nedemek.page/kavramlar/Gaussian%20Karışım%20Modelleri):** Her bir kümenin bir [Gaussian dağılımı](https://www.nedemek.page/kavramlar/Gaussian%20dağılımı) tarafından modellendiği bir olasılıksal kümeleme algoritmasıdır.
*   **[Kümeleme Algoritmaları Karşılaştırması](https://www.nedemek.page/kavramlar/Kümeleme%20Algoritmaları%20Karşılaştırması):** Farklı kümeleme algoritmalarının karşılaştırılması ve hangi algoritmanın hangi tür veri kümeleri için daha uygun olduğunun değerlendirilmesi.

## Varyasyonlar

K-ortalamalar algoritmasının farklı varyasyonları mevcuttur.  Bazı yaygın varyasyonlar şunlardır:

*   **[K-medoids](https://www.nedemek.page/kavramlar/K-medoids):** Küme merkezleri olarak veri noktalarını kullanır. Aykırı değerlere karşı daha dayanıklıdır.
*   **Fuzzy K-means:** Her bir veri noktasının farklı kümelere ait olma olasılığını hesaplar.
*   **Mini-Batch K-means:** Büyük veri kümelerinde daha hızlı çalışmak için veri kümesinin küçük alt kümelerini (mini-batch) kullanır.
*   **X-means:** K değerini otomatik olarak belirlemeye çalışan bir algoritmadır.

## Performans Değerlendirmesi

K-ortalamalar algoritmasının performansını değerlendirmek için farklı metrikler kullanılabilir.  Bazı yaygın metrikler şunlardır:

*   **Silüet Skoru:** Her bir veri noktasının kümelemesinin ne kadar iyi olduğunu ölçer.
*   **Calinski-Harabasz İndeksi:** Kümeler arasındaki varyansın, kümeler içindeki varyansa oranını ölçer.
*   **Davies-Bouldin İndeksi:** Kümelerin ne kadar iyi ayrıldığını ölçer.

## Örnek Kod (Python)

```python
from sklearn.cluster import KMeans
import numpy as np

# Veri kümesi
X = np.array([[1, 2], [1.5, 1.8], [5, 8], [8, 8], [1, 0.6], [9, 11]])

# K-ortalamalar modelini oluşturma ve eğitme
kmeans = KMeans(n_clusters=2, random_state=0, n_init="auto").fit(X)

# Küme etiketlerini alma
labels = kmeans.labels_

# Küme merkezlerini alma
centroids = kmeans.cluster_centers_

print("Küme Etiketleri:", labels)
print("Küme Merkezleri:", centroids)

Ayrıca Bakınız

Kaynakça

  • Arthur, D., & Vassilvitskii, S. (2007). k-means++: The advantages of careful seeding. Proceedings of the eighteenth annual ACM-SIAM symposium on Discrete algorithms, 1027-1035.
  • Lloyd, S. (1982). Least squares quantization in PCM. IEEE Transactions on Information Theory, 28(2), 129-137.

Umarım bu kapsamlı k-ortalamalar makalesi işinize yarar.
Kendi sorunu sor