Hangi makine öğrenme algoritmaları hangi özelliklerin daha önemli olduğunu tahmin etmek için iyidir?


12

Değişmeyen minimum sayıda özelliğe ve değişebilecek ve sonuç üzerinde büyük etkisi olabilecek birkaç ek özelliğe sahip verilerim var. Veri setim şöyle:

A, B, C (daima mevcut) ve D, E, F, G, H (bazen mevcut)

A = 10, B = 10, C = 10                  outcome = 10
A = 8,  B = 7,  C = 8                   outcome = 8.5
A = 10, B = 5,  C = 11, D = 15          outcome = 178
A = 10, B = 10, C = 10, E = 10, G = 18  outcome = 19
A = 10, B = 8,  C = 9,  E = 8,  F = 4   outcome = 250
A = 10, B = 11, C = 13, E = 8,  F = 4   outcome = 320
...

Sonuç değerini tahmin etmek istiyorum ve ek parametrelerin kombinasyonu sonucu belirlemek için çok önemlidir. Bu örnekte, E ve F'nin varlığı büyük bir sonuca yol açarken, E ve G'nin varlığı değildir. Bu fenomeni yakalamak için hangi makine öğrenme algoritmaları veya teknikleri iyidir?


"Bazen mevcut" derken, değerlerini sadece bir süreliğine bildiğiniz anlamına mı geliyorsunuz? Yoksa çoğu durumda rol oynamadıkları biliniyor mu? Ya da belki başka bir şey?
David J. Harris

@ DavidJ.Harris "Bazen mevcut" derken, özel eğitim örneğinin mülkiyete sahip olmadığı anlamına gelir. Sanki sıfıra eşitmiş gibi. Benim sorunumda, tüm özelliklerim belirli bir aralıkta pozitif sayılar olacak (örneğin, 5 ila 15 veya 100 ila 1000).
Benjamin Crouzier

1
bu bağlantıya bakmak iyi olabilir eren.0fees.net/2012/10/22/…
erogol

Yanıtlar:


14

Bu, Makine Öğrenimi'nin ana araştırma alanlarından biridir ve Özellik Seçimi olarak bilinir .

Genel olarak, özelliklerin en iyi alt kümesinin ne olduğunu söylemenin tek yolu (bunları birleştirebilecek bazı tahmin modeline girmek için), tüm olası alt kümeleri denemektir. Bu genellikle imkansızdır, bu nedenle insanlar özellik alt kümelerinin alanını çeşitli sezgisel yöntemlerle örneklemeye çalışırlar (bazı tipik yaklaşımlar için makaleye bakın).


3

Anladığım kadarıyla, değişken öneme sahip bir ölçü arıyorsunuz. Bunlar, birkaç farklı teorik yaklaşıma dayanan çeşitli tatlarda gelir, ancak hepsinin, konuştuğunuz algoritmayı optimize etmek için kullanılan yöntemlerle güçlü bağlantıları vardır. Genel olarak, her makine öğrenme algoritmasının kanonik bir optimizasyon yöntemi olacaktır; sinir ağları için geri yayılım, SVM'ler için ardışık minimum optimizasyon, çeşitli bilgi kriterleri ve ki-kare önemi veya gini safsızlığı dahil karar ağaçları için istatistiksel anlamlılık testleri. Elbette, algoritmaların her biri için diğer yeni optimizasyon yöntemleri sıklıkla önerilmektedir.

Her algoritma için bu optimizasyon yöntemleri esasen eldeki model için değişken önemi tanımlar. Temel olarak, algoritmanın üstlendiği optimizasyon adımının sonuçlarının yaklaşık veya yorumlanabilir bir temsilini arıyorsunuz. Ancak, bu birkaç nedenden dolayı sorunludur.

  1. Seçimin genellikle stokastik bir süreç olduğu göz önüne alındığında, belirli bir değişkenin model form seçimi üzerindeki etkisini belirlemenin zorluğu.Değişkenler model seçimini bir dereceye kadar etkiler, böylece bir değişken bir modeldeki son tahmin için önemli olmasa bile , modelin kendisini önemli ölçüde şekillendirmiş olabilir. Modelin kendisinin üretilmesinin genellikle stokastik olduğu (partikül sürüsü optimizasyonu veya bir torbalama yöntemi vb. Kullanılarak optimize edildi) göz önüne alındığında, belirli bir değişkenin formunu nasıl şekillendirdiğini tam olarak anlamak zordur.

  2. Yalnızca başka bir değişkenle birlikte veya etkileşimde önemli olabileceği göz önüne alındığında, tek bir değişkenin önemini çıkarmanın zorluğu.

  3. Bazı değişkenler sadece bazı gözlemler için önemli olabilir. Diğer gözlemlerde önem eksikliği, gerçek bir farkın ortalamasını alarak genel önemi ölçmeyi engelleyebilir.

Değişken önemi için hemen yorumlanabilir metrik elde etmek de zordur tam olarak (özellikle torbalama durumunda) tek bir sayı üretmek olmayabilir olarak, modelin ile tanımlanır. Bunun yerine, bu durumlarda her değişken için önemli bir dağılım vardır.

Bu sorunların üstesinden gelmenin bir yolu, pertürbasyon kullanmak olabilir. Bu, değişkenlerinize rastgele gürültü ekleyerek ve ardından sonuçları nasıl etkilediğini kontrol ederek son modelinizi analiz etmenin bir yoludur. Avantajı, simülasyon yoluyla hangi değişkenlerin ampirik olarak en önemli olduğunu bulmanıza izin vermesidir - kaldırıldığında hangi değişkenlerin tahmini en çok tahrip edeceği sorusunu cevaplar. Dezavantajı, değişkenler kaldırılsa / bozulsa bile, modelin (yeniden eğitilmişse) diğer değişkenleri etkilerini yeniden yapılandırabilme şansı olmasıdır, yani elde ettiğiniz "değişken önem" ölçüsü hala sadece gerçekten eğitimli modelinizdeki önemi belirtir, ancak tüm olası modellerde genel önemi göstermez.


3

@Bitwise'dan bahsedildiği gibi, özellik seçimi veya özellik çıkarma, kendi başına büyük bir araştırma alanıdır ve bunu yapmanın sayısız yolu vardır.

Diğer cevapların hepsi bence geçerli, ama sonunda muhtemelen en çok hoşuna gidecek ve sizin için en sezgisel olan ve en iyisini anladığınız yöntemi seçeceksiniz. Yine de iki olası seçenek ekleyeceğim.

Çoklu regresyon muhtemelen en eski tekniktir. Fikir, yordayıcılardan gelen yanıtı tanımlamak için bir modele uymak ve sadece yanıt üzerinde büyük etkisi olan yordayıcıları (büyük bir orantılılık katsayısı) tutmaktır. Burada muhtemelen D, E, F ve G yokluğunu recode olurdu D=0, E=0, F=0, G =0veya böyle bir şey.

Hak ettiği popülariteyi hiç kazanmayan bir diğer teknik ko-atalet analizidir ( kanonik analizin bir çeşidi ). Bildiğim kadarıyla bunun bir uygulaması yok ve sıfırdan başlamak zorunda kalacaksınız ( örneğin orada ). Sonuçlarınızla eşleşen özelliklerin en iyi doğrusal kombinasyonunu bulan doğrusal bir yöntemdir. Bu blog gönderisi bunun nasıl kullanılabileceğine dair bir örnek göstermektedir.


2

Bilgi Kazancı kullanıyorum (Karşılıklı Bilgi olarak da bilinir). Danışmanım ve ben, bu makalede Cohen, 2008'de SVM tarafından sınıflandırma özelliklerini analiz etmek için açıklanan yaklaşımı düzenli olarak kullanıyoruz .


2

Rastgele Ormanlar yapmak istedikleriniz için oldukça kullanışlı olabilir. R için randomForest paketi , 2 önemli ölçüyü hesaplayan bir işleve sahiptir. Ayrıca, bazı kısmi bağımlılık grafikleri oluşturma yeteneğine de sahiptir, böylece öngörücünün yanıt üzerindeki marjinal etkisini görsel olarak inceleyebilirsiniz.


1

Burada kötü oluyorum ama bir nedenden dolayı. Tekdüze olmayan gözlemleri, mevcut | not_present bir gösterge değişkeni ile değiştirmeyi düşündünüz mü? Açıklamanızdan, bu gösterge değerinin geçerli bir özellik olduğu anlaşılıyor, çünkü D'den H'ye kadar olan faktörlerin varlığı bilgilendirici değildir: yani onların varlığı sadece daha büyük sonuçları gösterir.

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.