Denetimsiz kümeleme için karar ağacı benzeri bir algoritma var mı?


20

A, B, C, D, E olmak üzere 5 özellikten oluşan bir veri setim var. Hepsi sayısal değerlerdir. Yoğunluk temelli bir kümeleme yapmak yerine, yapmak istediğim veriyi karar ağacı benzeri bir şekilde kümelemektir.

Demek istediğim yaklaşım şöyle:

Algoritma, özellik C'yi temel alarak verileri X başlangıç ​​kümelerine bölebilir, yani X kümeleri küçük C, orta C, büyük C ve çok büyük C değerlerine vb. Sahip olabilir. Daha sonra, X kümesi düğümlerinin her birinin altında, algoritma ayrıca bölünür A özelliğine göre verileri Y kümelerine dönüştürür. Algoritma, tüm özellikler kullanılana kadar devam eder.

Yukarıda tarif ettiğim algoritma bir karar ağacı algoritması gibidir. Ama denetimli sınıflandırma yerine denetimsiz kümeleme için buna ihtiyacım var.

Sorularım şunlardır:

  1. Bu algoritmalar zaten var mı? Bu algoritma için doğru isim nedir
  2. Bu tür algoritmaların bir uygulaması olan bir R / python paketi / kütüphanesi var mı?

3
But I need it for unsupervised clustering, instead of supervised classificationBu anahtar sözcük tek başına çok kısa ve ne istediğinizi net bir şekilde açıklamıyor. Yukarıda bir karar ağacı gibi görünen şeyleri anlattınız. Şimdi istediğiniz algo hakkında benzer bir pasaj verebilir misiniz?
ttnphns

1
@ttnphns Merhaba, bildiğiniz gibi, karar ağacı denetimli bir yöntemdir. Her özellik vektörünü Sınıf1 veya Sınıf2 olarak etiketlersiniz. Algoritma, bilinen etiketlere dayanarak her özellik için eşiği belirler. Ancak, bir kümelenme sorunuyla karşı karşıyayım. Her özellik vektörünün doğru etiketlerini bilmiyorum. Bir ağaç oluşturmak için her özellik için eşiği otomatik olarak belirleyen bir algoritma bulmak istiyorum. Bu şekilde, sonuçta meydana gelen kümelenme, örneğin, Küme 1: Yüksek A-Düşük B- Orta C- Yüksek D - Düşük E, Küme 2, Düşük A - Yüksek B- Orta C- Orta D - Düşük E
nan

Seni pek iyi anlayamadım. Mesela CHAIDağacı ele alalım. Bağımlı değişkeni seçmelisiniz. Al algoritması, B, C, D, E arasından en çok A ile korelasyon gösteren değişkeni seçer ve bu değişkeni (diyelim ki, bu, prediktör, D olur) iki veya daha fazla kategoriye "en uygun şekilde" indirir - böylece korelasyon (kategorize edilmiş D değişkeni ve A değişkeni arasında maksimize edilir. Diyelim ki 3 grup, D1, D2, D3 bıraktı. Daha sonra, aynı prosedür D'nin her kategorisi (grubu) içinde ayrı ayrı ve B, C arasında en iyi öngörücü olarak tekrarlanır. , E binning altında
aranıyor

2
@ttnphns Bu makaleyi yeni buldum, demek istediğimi yaptılar sanırım. ftp.cse.buffalo.edu/users/azhang/disc/disc01/cd1/out/papers/…
nan

1
@nan böyle ağaçların herhangi bir uygulamasını buldunuz mu? Makalede kod için herhangi bir bağlantı
sağlamıyorlar

Yanıtlar:


12

Aşağıdaki yaklaşımı dikkate almak isteyebilirsiniz:

  • Verileriniz için yeterli olan herhangi bir kümeleme algoritmasını kullanın
  • Ortaya çıkan kümenin sınıf olduğunu varsayalım
  • Kümeler üzerinde bir karar ağacı eğitme

Bu, farklı kümeleme algoritmalarını denemenize izin verir, ancak her biri için bir karar ağacı yaklaşımı alırsınız.


1
bunun "uygun" olduğu konusunda hemfikirdir, ancak elbette, bir kümeleme algoritmasından bir etiket oluşturmanın bir gözlemin "gerçek" özelliği olmadığını daima akılda tutmak gerekir. Kümelenmenin kalitesine ve türüne bağlı olarak, getirilen önyargı daha büyük veya daha az ölçüde mevcut olacaktır.
NiuBiBang

Beni bu stratejiyi tartışan bir makaleye yönlendirebilir misiniz?
nCessity

2

Akla ilk gelen yazı şudur: Karar Ağacı Yapısı Yoluyla Kümeleme https://pdfs.semanticscholar.org/8996/148e8f0b34308e2d22f78ff89bf1f038d1d6.pdf

Bir başka bahsedildiği gibi, "hiyerarşik" (yukarıdan aşağıya) ve "hiyerarşik topaklanma" (aşağıdan yukarıya), kümelenme yapmak için ağaçlar kullanılarak geliştirilen iyi bilinen tekniklerdir. Scipy buna sahip.

Herhangi bir kütüphane bilmiyorum çünkü özel kod ile Tamam, tavsiye edebileceğiniz iki teknik vardır. Güvendikleri mekanikler nedeniyle bunların teknik olarak kümelenmediği konusunda uyarılmalıdır. Buna sözde kümeleme diyebilirsiniz.

1) Denetimli: Bu, kağıda biraz benzer (okumaya değer). Bazı hedefleri öğrenmek için tek bir karar ağacı modeli oluşturun (neyin anlamlı olduğuna siz karar verin). Hedef rastgele oluşturulmuş bir sütun olabilir (yinelemenin en iyi olduğunu tekrarlamak ve değerlendirmek gerekir, aşağıya bakın). Ağacın her tam yolunu bir "küme" olarak tanımlayın, çünkü o dal serisinden geçen noktalar teknik olarak hedefe göre benzerdir. Bu sadece bazı problemlerde iyi sonuç verir, ancak büyük ölçekte etkilidir. Sonunda K kümeleri oluşur (aşağıya bakın).

2) # 1 kullanarak yarı denetimli (bir çeşit denetimsiz, ancak mekanik olarak denetlenen): bir dışarı bırakma şablonundaki sütunları tahmin etmek için ağaçlar oluşturmayı deneyebilirsiniz. yani şema [A, B, C] ise, 3 model [A, B] -> C, [A, C] -> B, [B, C] -> A oluşturun. KN kümeleri elde edersiniz (aşağıya bakın). N = (şema) len. Bu özelliklerden bazıları ilginç veya çok dengesiz değilse (kategoriler söz konusu olduğunda), bunları hedef olarak kullanmayın.

Özet: Model, bilgiye veya saflığa dayalı olarak sırayla özellikler seçecek ve kümeler hepsinden ziyade sadece birkaç özelliğe dayanacaktır. Bu kümelerde mesafe kavramı yoktur, ancak kesinlikle merkezlere dayanarak bir tane tasarlayabilirsiniz.

Artıları: anlaşılması ve açıklanması kolay, hızlı eğitim ve çıkarım, birkaç güçlü özellik ile iyi çalışır, kategorilerle çalışır. Özellikleriniz özünde heterojen olduğunda ve birçok özelliğiniz olduğunda, uzaklık işlevinde hangisinin kullanılacağına karar vermek için fazla zaman harcamanıza gerek yoktur.

Eksileri: standart değil, yazılmalı, saf önyargı, hedefle yakınlık kötü sonuçlara neden olur, 1000 eşit derecede önemli özelliğe sahip olmak iyi çalışmaz (Öklid mesafeli KMeans burada daha iyidir).

Kaç küme alıyorsunuz? DT modelinin çok fazla büyümemesi için kesinlikle kısıtlamanız gerekir. Örneğin yaprak başına minimum numune, maksimum yaprak düğümleri (tercih edilen) veya maksimum derinlik ayarlayın. İsteğe bağlı olarak, saflık veya entropi kısıtlamalarını ayarlayın. Bunun size kaç küme verdiğini kontrol etmeli ve bu yöntemin gerçek kümelemeden daha iyi olup olmadığını değerlendirmelisiniz.

Teknikler ve parametreler sizin için iyi çalıştı mı? Hangisi en iyisiydi? Öğrenmek için küme değerlendirmesi yapmanız gerekir: Denetimsiz öğrenmeyi değerlendirmek için performans metrikleri


2

Aradığınız şey bölücü bir kümeleme algoritmasıdır.

En yaygın algoritmalar, verileri aşağıdan yukarıya doğru kümeleyen aglomeratiftir - her gözlem kendi kümesi ve kümeler birleştikçe başlar. Bölünmüş kümelenme yukarıdan aşağıya - gözlemler yavaş yavaş bölünen bir kümede başlar.

Bir karar ağacı gibi görünme arzusu, çoğu algoritma bir seferde bir değişkeni bölmek yerine tüm veri alanı içindeki mesafelerde çalıştığı için seçenekleri sınırlar.

DIANA bildiğim tek bölücü kümeleme algoritması ve bence bir karar ağacı gibi yapılandırılmış. Orada başkaları olmasa şaşıracaktım.

Bölme kuralını tanımlı bir bağımlı değişkeni göz önünde bulundurmayan, ancak bir küme iyiliği metriği kullanan bir metriğe değiştirirseniz standart bir karar ağacı algoritması kullanabilirsiniz.


0

Dikkate alınması gereken bir fikir, k özelliğiniz ve n puanınız olduğunu varsayalım. Bağımlı değişken olarak (k-1) özelliğini ve 1 özelliğini kullanarak rastgele ağaçlar oluşturabilirsiniz. Y. Köklerde veri noktalarına sahip olacağınız bir h yüksekliği seçebilirsiniz. Oylama türünden farklı ağaçlar alabilirsiniz. Sadece bir düşünce.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.