Kara kutu doğrusal olmayan bir model için öngörüye farklı girdilerin önemini nasıl görselleştirebilirim?


9

Kuruluşumda yapılan tahminlere yardımcı olması için etkileşimli bir tahmin aracı (python'da) oluşturuyorum. Bugüne kadar, tahmin süreci büyük ölçüde insan güdümlüdür, tahminciler doğal sinir ağlarındaki verileri özümser ve öğrenilmiş bağırsaklarını kullanarak tahminlerde bulunurlar. Uzun vadeli tahmin doğrulaması ve öngörülü modelleme çalışmasından beklediğiniz şeyi buldum; farklı tahminciler farklı önyargılar sergiler, bazı öngörücülerin etkileri abartılmış gibi görünür ve diğer önemli olanlar göz ardı edilir ve genel olarak tahmin performansı nispeten basit ampirik modellerle karşılaştırıldığında vasattır.

Tahminler manuel olmaya devam edecek, ancak tahmincilere öngörücülerin göreceli etkilerinin daha iyi bir şekilde ölçülmesini sağlamak için yararlı bir araç oluşturmaya çalışıyorum. Ayrıca sık sık göz ardı edilen mevsimsel etkiler gibi önemli etkiler de var. Daha 'deneyimli' tahmincilerden (birçoğu resmi istatistik bilgisi çok az olan) bazı modelleme süreci hakkında bir miktar boşluk ve şüphecilik bekliyorum, bu nedenle iletişim en azından önemlidir ve modelin kendisi açısından performans tahmin doğruluğunda ölçülebilir bir iyileşme sağlamak.

Geliştirdiğim modeller, zaman zaman etkinlik dışı zamanlarda sıfıra yakın olan bazı öngörücülerde ölçülen değerler olarak ortaya çıkan olaylar tarafından önemli ölçüde değiştirilen güçlü bir oto-regresif bileşene sahiptir. Bu, tahmincilerin kullandığı zihinsel modelle uyumludur. Kilit kısım, tahmini 'tahmin' ölçümlerinden hangisinin tahmini herhangi bir tahmin için oto-regresif değerden uzaklaştırmakta en etkili olduğunu gösterebilmektir. Süreci bu şekilde görüyorum; Tahminci en iyi tahmin değerlerini belirler, model farklı bir değer önerir ve tahminci nedenini sorar. Model şöyle bir şeyi yanıtlıyor: "buraya bakın, bu öngörücünün bu değeri yaz aylarında tahmin değerini arttırır. Kış olsaydı, diğer yöne hareket ederdi. Biliyorum, bu başka ölçümler var,

Şimdi, modelin basit bir doğrusal regresyon olduğunu hayal edin. Değeri birlikte verimli modelle çarparak ve basit bir çubuk grafik olarak görüntüleyerek olaya dayalı öngörücülerin göreceli 'etkisini' göstermeyi düşünebilirsiniz. Farklı öngörücülerdeki tüm çubuklar AR değerinden toplam sapmaya eklenir ve bu, bu durumda güçlü bir etkiye sahip olanları özlü ve net bir şekilde gösterir.

Sorun, tahmin edilen sürecin öngörücülerde yüksek derecede doğrusal olmama durumu göstermesi ya da en azından, kara kutu doğrusal olmayan makine öğrenme algoritmalarında (rastgele orman ve GBM) GLM'lerden çok daha fazla başarı elde etmemdir. bu veri kümesi. İdeal olarak, kullanıcı deneyimi değişmeden 'kaputun altında' çalışan modeli sorunsuz bir şekilde değiştirmek istiyorum, bu yüzden algoritmaya özgü bir yaklaşım kullanmadan farklı ölçümlerin önemini basit bir şekilde göstermenin genel bir yoluna ihtiyacım var. Mevcut yaklaşımım, bir öngörücü hariç tüm değerleri sıfıra ayarlayarak etkileri yarı doğrusallaştırmak, öngörülen sapmayı kaydetmek ve daha sonra sonuçları yukarıda belirtilen çubuk grafikte görüntüleyerek tüm öngörücüler için tekrarlamak olacaktır. Güçlü doğrusal olmama durumunda, bu çok iyi çalışmayabilir.


1
Neyle sonuçlandınız - bir veya iki resim koyabilir misiniz? Ayrıca, "bir öngörücü hariç tüm değerleri sıfıra ayarlamak" - 0'ın değil, mevcut en iyi değerlerin etrafında gradyanı istemiyor musunuz?
denis

Yanıtlar:


4

Tahminler üzerindeki yordayıcı etkisini değerlendirmenin bir yolu, çıktının yordayıcılara göre eğimini tahmin etmektir. Bu, her bir öngörücüye göre doğrusal olmayan tahmin fonksiyonunun kısmi türevlerinin sonlu farklarla tahmin edilmesiyle yapılabilir.

İdeal olarak, bunu gerçekte gözlemlenen test girişlerinde yaparsınız. Örneğin, önceki 2 gün içindeki tüm test girişlerindeki tahmini degradelerin mutlak değerlerini ortalayabilirsiniz. Bu ortalama eğimin büyüklüğü, öngörücülerin önemini sıralamak için kullanılabilir. (Z-puanlaması veya böyle bir yöntemle uygun birimleri kullanmak için degrade tahminine dikkat etmeniz gerekir.) Bu tahmini degradeleri karşılaştırmalı analiz için mevsime göre kaydedebilirsiniz.

Bkz. " Bireysel Sınıflandırma Kararlarının Nasıl Açıklanacağı", yazan David Baehrens et. ark. bu fikir hakkında daha fazla bilgi için. Makale sınıflandırma ile ilgilidir, ancak regresyonu da kolayca genelleştirir.


Bu harika! Ben bu konuda ve başka bir yerde yardımcı olacak çok yararlı bir referans.
Bogdanovist

2

Python'da scikit-learn modülünü denediniz mi?

RandomForestClassifier'ın özellikleri için "computer_importance" yapabilirsiniz


1
İlk olarak, özellik öneminin hesaplanmasının yararlı olabileceğini düşündüm, ancak sonuçta, belirli bir örnek için tahmin edilen değeri açıklayacağı zaman nispeten zayıf bir yaklaşımdır. Özellik önemi insan uzmanlara sadece belirsiz ipuçları verir.
steffen

Bir yana, OP model bağımsız bir yaklaşım istedi ...
steffen

Değişken önemdeki önlemlerle ilgili sorun, belirli bir durumda gerçekten neyin önemli olduğunu söylemek yerine, tüm veri kümesine ortalama olarak uygulanmasıdır.
Bogdanovist

Aslında bunun modelden bağımsız bir yaklaşım olduğunu düşünüyorum, gerçekten rastgele ormanlardan başka sınıflandırıcılara da uygulayabilirsiniz. Breiman'ın web sitesinde, tek bir vaka için değişken önemi nasıl hesaplayabileceğiniz konusunda ince bir açıklama var. stat.berkeley.edu/~breiman/RandomForests/cc_home.htm#varimp (son cümle) Bunun henüz kapsamlı bir şekilde incelenmediğini veya en azından kapsamlı bir şekilde test edilmediğini düşünüyorum. Ortalama değişken önem her zaman istediğiniz şey değildir. Örneğin, bir uygulayıcının bir dava hakkında karar vermesine yardımcı olmak istediğiniz zaman değildir. Bu gerçekten ilginç bir konu.
Simone

Breiman'ın bu yöntem hakkında lojistik regresyon üzerinde biraz tartıştığı ilginç bir makale var: "İstatistiksel Modelleme: İki Kültür". Güzel bir okuma. En çok sevdiğim cümle şudur: "Değişken önem tanımım tahminlere dayanmaktadır. Değişkenin silinmesi tahmin doğruluğunu ciddi şekilde etkiliyorsa önemli olabilir." Bu ifade, kullanabileceğiniz herhangi bir sınıflandırıcı için geçerlidir.
Simone
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.