Sınıflandırma kuralları oluşturma algoritması


11

Bu nedenle, sınıflandırıcılar tarafından çözülen geleneksel sorun alanına oldukça düzgün uyan bir makine öğrenme uygulaması potansiyeline sahibiz, yani, bir öğeyi ve sonuçta ortaya koydukları bir "kovayı" tanımlayan bir dizi özelliğe sahibiz. Bununla birlikte, modeller oluşturmak yerine Naive Bayes veya benzeri sınıflandırıcılarda olduğu gibi, çıktımızın son kullanıcı tarafından incelenebilen ve değiştirilebilen kabaca insan tarafından okunabilen bir dizi kural olmasını istiyoruz.

İlişkilendirme kuralı öğrenimi, bu tür bir sorunu çözen algoritmalar ailesine benziyor, ancak bu algoritmalar, ortak özellik kombinasyonlarını tanımlamaya odaklanmış gibi görünüyor ve bu özelliklerin işaret edebileceği son bir kova kavramını içermiyor. Örneğin, veri setimiz şöyle görünür:

Item A { 4-door, small, steel } => { sedan }
Item B { 2-door, big,   steel } => { truck }
Item C { 2-door, small, steel } => { coupe }

Sadece "büyük ve 2 kapılıysa, bir kamyon" diyen kuralları istiyorum "4 kapılıysa küçük de" diyen kuralları değil.

Düşünebileceğim bir çözüm, ilişkilendirme kuralı öğrenme algoritmalarını kullanmak ve bir uç kovası içermeyen kuralları görmezden gelmektir, ancak bu biraz acayip görünüyor. Orada bazı algoritmalar ailesini kaçırdım mı? Ya da belki de soruna yanlış bir şekilde yaklaşıyorum?

Yanıtlar:


9

Quinlan tarafından yapılan C45, tahmin için kural üretebilir. Bu Wikipedia sayfasını kontrol edin. Ben de biliyorum Weka Adından J48 olduğunu. R veya Python'da hangi uygulamalar olduğunu bilmiyorum. Her neyse, bu tür karar ağacından tahmin için kurallar çıkartabilirsiniz.

Daha sonra düzenleme

Ayrıca, sınıflandırma kurallarını doğrudan çıkartan algoritmalar da ilginizi çekebilir. RIPPER yine Weka'da farklı bir isim JRip aldı. RIPPER: Hızlı Etkili Kural İndüksiyonu, WW Cohen 1995 için orijinal belgeye bakın


Daha önceki bir projede C45 / J48 ile deneyler yapmıştım. Ondan alabileceğim kurallar olduğunun farkında değildim. Ayrıca RIPPER'i kontrol edeceğim. Teşekkürler!
super_seabass

Ayrıca
R'deki

Bu soru / cevap için bir güncelleme sağlamak istedik: JRip'i biraz başarıyla kullanıyoruz, ancak yeni lider yarışmacımız FURIA ( cs.uni-paderborn.de/fileadmin/Informatik/eim-i-is/PDFs/…) ). İnsan incelemesi / kullanımı için en iyi kuralları oluşturuyor çünkü kapsamlı bir kural kümesi oluşturmaya çalışıyor. JRip güzel kurallar yapar, ancak başka kural uygulanmadığında sınıflandırma için "varsayılan" bir kuralı vardır. Varsayılan kovalar, projemizin iş bağlamında iyi çalışmıyor, kapsamlı kurallara ihtiyacımız var.
super_seabass

7

Aslında bundan daha basit, tarif ettiğinizden --- sadece temel bir sınıflandırma ağacı algoritması arıyorsunuz (bu nedenle tahmin doğruluğu için optimize edilmiş C4.5 gibi biraz daha karmaşık varyantlara gerek yoktur). Standart metin:

http://www.amazon.com/Classification-Regression-Wadsworth-Statistics-Probability/dp/0412048418

Bu, R'de kolayca uygulanır:

http://cran.r-project.org/web/packages/tree/tree.pdf

ve Python:

http://scikit-learn.org/stable/modules/tree.html


Burada ağaçların yardımcı olduğunu kabul etmiyorum. Bu bir filtreleme kuralları meselesidir ve bu R'deki arules paketi ile elde edilebilir .
adesantos


1

R'de arules paketini denemelisiniz. Sadece ilişkilendirme kurallarını oluşturmanıza değil, aynı zamanda her kuralın uzunluğunu, her kuralın önemini belirtmenize izin verir ve ayrıca onları filtreleyebilirsiniz, bu da aradığınız şeydir ( Bu paketin rhs () komutu).

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.