Çok seviyeli / hiyerarşik olarak yapılandırılmış veriler üzerinde rastgele orman


13

Makine öğrenimi, CART teknikleri ve benzerleri için oldukça yeniyim ve umarım saflığım çok açık değildir.

Rastgele Orman çok düzeyli / hiyerarşik veri yapılarını nasıl işler (örneğin, çapraz düzey etkileşimi söz konusu olduğunda)?

Yani, çeşitli hiyerarşik düzeylerde analiz birimleri içeren veri kümeleri ( ör. Okullar içinde yuvalanmış öğrenciler, hem öğrenciler hem de okullar hakkında veriler).

Örnek olarak, birinci düzeydeki bireylerle ( ör . Oylama davranışı, demografi vb. Verilerle) ikinci düzeydeki ülkelerde (ülke düzeyinde verilerle; ör . Nüfus) iç içe yerleştirilmiş çok düzeyli bir veri kümesini düşünün :

ID voted age female country population
1 1 19 1 1 53.01
2 1 23 0 1 53.01
3 0 43 1 1 53.01
4 1 27 1 1 53.01
5 0 67 0 1 53.01
6 1 34 1 2 47.54
7 0 54 1 2 47.54
8 0 22 1 2 47.54
9 0 78 0 2 47.54
10 1 52 0 2 47.54

Diyelim ki votedyanıt / bağımlı değişken, diğerleri ise yordayıcı / bağımsız değişkenler. Durumlarda, kenar boşlukları ve bazı üst düzey değişkeni (bir değişkenin (kısmi bağımlılık) marjinal etkilerinin Bu tip mesela , populationfarklı bireysel düzey değişkenleri, vs.), çok ilginç olabilir. Buna benzer bir durumda glm, elbette daha uygundur - ancak birçok değişken olduğunda, etkileşimler ve / veya eksik değerler ve / veya çok büyük ölçekli veri kümeleri vb glm.

Subquestions: Random Forest bu tür veri yapısını bir şekilde açıkça ele alabilir mi? Ne olursa olsun, ne tür bir önyargı ortaya çıkarır? Rastgele Orman uygun değilse, başka bir topluluk tipi yöntemi var mı?

(Soru Gruplandırılmış verilerdeki rastgele orman belki de benzerdir, ancak buna gerçekten cevap vermez.)


Merhaba @MikaelAndersson, sorulan sorulara bir çözüm buldunuz mu? Benzer bir durumla karşı karşıyayım ve deneyiminizi duymayı umuyorum. Teşekkürler.
NoviceProg

Yanıtlar:


4

Rastgele Ormanlar iyi çalışır, ancak hiperparametreleri ayarlarken (özellikle genelleme performansının gerçekçi bir ölçüsünü istiyorsanız) çok dikkatli olmalısınız. Verilerinizde yaygın "eşleştirme" olduğu için geleneksel OOB hata tahminleri çok iyimser olacaktır.

Doğru ayarlama ve genelleme tahminleri almak için karşılaşmayı beklediğiniz yeni verilerin özelliklerinin ne olduğunu anlamanız gerekir. Yeni ülkelere ekstrapole etmek istiyorsanız, ülkeye göre katmanlı örnekleme yapan bir yeniden örnekleme tabanlı ayarlama (k-kat çapraz doğrulama gibi) oluşturmanız gerekir.

Verileri Rasgele Ormana nasıl kodladığınıza da dikkat etmeniz gerekir. countryKategorik bir değişken olduğu anlaşılıyor . Sayısal olarak beslemek biraz kaba olur, ancak umutsuz olmaz (özellikle kimlikleri faydalı bir şeyle sipariş ettiyseniz).


OOB hata tahminlerinin neden çok iyimser olacağı konusunda biraz bilgi verebilir misiniz?
dmartin

2
İyimserliklerinin yeni verilerin nasıl görünebileceğine bağlı olduğunu düşünüyorum. Diğer ilçelerden yeni veriler geldiyse, bu rastgele orman muhtemelen OOB hatalarının gösterdiği kadar iyi performans göstermeyecektir. Bunun nedeni, örneğin aynı ilçelerden alınan örneklerden OOB hatalarının hala gelmesidir.
Shea Parkes

3

Ben aslında önceden tanımlanmış bir sınıf hiyerarşisi boyunca yerel sınıflandırıcı olarak randomForest çalışan bir R paketi üzerinde çalışıyorum. Paket R Forge'da 'hie-ran-forest' altında bulunabilir. Paket zaten çalışıyor, ancak vinç testlerinden birinde (MAC için) başarısız olmasına rağmen, tam olarak neden olduğundan emin değilim. Paket, hiyerarşideki her bir üst düğüm için randomForest'i çalıştırmanın yanı sıra, tahmin işlevleri ve performans işlevleri de içerir. Performans ölçülerinden biri aslında hiyerarşik sınıf yapısını açıklar.

Paket, sınıf hiyerarşisinin her bir üst düğümünde yerel sınıflandırıcı olarak rasgele orman çalıştırarak çapraz düzey etkileşimini ele alır. Daha sonra tahmin fonksiyonu, her bir yerel sınıflandırıcıda alınan her vakanın çanta dışı oyların oranını alır. Sonra oy oranını net sınıflandırmaya çevirmenin iki yolu vardır: 1. kademeli bir çoğunluk kuralı - Ağaç köküne en yakın yerel sınıflandırıcı ile başlayın ve bu sınıflandırıcının en yüksek oy oranını alan çocuğunu seçin. Ardından, seçilen düğümün tüm alt öğelerine bakın ve ilgili yerel sınıflandırıcıda en yüksek oyu alan çocuğu tekrar seçin. Terminal düğümüne ulaşılana kadar devam edin. 2.

Çarpımsal oy oranı, normal bir rasgele tarafından üretilen oyların oranı ile karşılaştırılabilir


2
Paketinizin "çapraz düzey etkileşimleri" ele aldığını ve eğer öyleyse bunu nasıl yaptığını açıklayabilir misiniz? Sadece bir paketin var olduğunu söylemek bir cevap değildir (burada çok kritik olmak istemiyorum, ancak CV yüksek kaliteli ML bilgilerinin kalıcı bir havuzunu oluşturmak istiyor ve bir paketin var olması oldukça bu standardı karşılar.)
gung - Monica'yı eski

Kullanıcı sayfanızın bağlantısı olmayan kullanıcı adınız, burada yaptığınız her yayına otomatik olarak eklenir. Yani yazılarınızı imzalamanıza gerek yok - aslında, yapmamayı tercih ediyoruz. Kullanıcıların sizinle iletişim kurabilmesini istiyorsanız, kullanıcı sayfanıza bir yöntem (ör. E-posta adresiniz) gönderebilirsiniz.
gung - Monica'yı eski

Harika, teşekkürler @YoniGavish. Cevabınızı neden düzenlemiyor ve bu bilgileri buna eklemiyorsunuz?
gung - Monica'yı eski

Bu daha iyi mi @ gung?
Yoni Gavish

Evet, yapacak, @YoniGavish, +1. Siteye hoş geldiniz.
gung - Monica'yı eski

3

Tek bir sınıflandırma ağacında, bu gruplar diğer kategorik değişkenlerle aynı şekilde kodlanır. Bu genellikle ikili kodlama veya sadece bir tamsayı kullanılarak yapılır. Her ikisini de kullanmak için farklı argümanlar vardır. Rastgele ormanlarda ikili kodlama kullanıyorsanız, bazı gruplar belirli bir ağaç için dahil edilir / hariç tutulur. Yani bir göstergeniz olabilir country_2ama olmayabilir country_3. Grup değişkenini bir tamsayı olarak bırakırsanız, sıralama da sonucu etkileyebilir. Ne için country > 5ve ne anlama geliyor country < 12? Ülkeleri yeni tamsayılarla rastgele yeniden etiketlerseniz bu nasıl değişir?

Bir ağaç yetiştirmenin her adımında, algoritma kriterleri optimize eden ayrımı arar. Gruplar arasında büyük farklılıklar varsa, gruplama değişkeni önemli olacaktır, ancak yalnızca orta derecede önemliyse ve bir ağacı budanırsanız, değişken esasen hariç tutulabilir.

Diğer birçok makine öğrenme algoritması gibi, CART ve rasgele ormanlar da hiyerarşik bir regresyon modelinde beklediğiniz şekilde gruplar içindeki gözlemler arasındaki bağımlılığı hesaba katmaz. Orada ise olduğu gözlemler arasındaki bağımlılık, bu gruplama değişkeni kullanan birçok ağaçların nesil yoluyla rastgele orman algoritması tarafından yakalanması. Ancak, diğer değişkenler daha fazla ayrımcılık gösteriyorsa gruplama değişkeni yok sayılabilir.

Sizin durumunuzda countryve populationmükemmel bir şekilde ortak. Modelinizde her iki değişkeni kullanarak elde edilen hiçbir bilgi yoktur. Böylece rastgele bir orman modelinin bu değişkenleri verilerinizde nasıl ele alacağını düşünebilirsiniz.

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.