Veri madenciliği: İşlevsel formu nasıl bulmalıyım?


34

Ben fonksiyonunun fonksiyonel formu keşfetmek için kullanılabilir tekrarlanabilir prosedürleri hakkında merak ediyorum y = f(A, B, C) + error_termbenim tek giriş gözlemler bir dizi nerede ( y, A, Bve C). Lütfen işlevsel biçiminin fbilinmediğini unutmayın.

Aşağıdaki veri kümesini göz önünde bulundurun:

AA BB CC DD EE FF
== == == == == ==
98 11 66 84 67 10500
71 44 48 12 47 7250
54 28 90 73 95 5463
34 95 15 45 75 2581
56 37 0 79 43 3221
68 79 1 65 9 4721
53 2 90 10 18 3095
38 75 41 97 40 4558
29 99 46 28 96 5336
22 63 27 43 4 2196
4 5 89 78 39 492
10 28 39 59 64 1178
11 59 56 25 5 3418
10 4 79 98 24 431
86 36 84 14 67 10526
80 46 29 96 7 7793
67 71 12 43 3 5411
14 63 2 9 52 368
99 62 56 81 26 13334
56 4 72 65 33 3495
51 40 62 11 52 5178
29 77 80 2 54 7001
42 32 4 17 72 1926
44 45 30 25 5 3360
6 3 65 16 87 288

Bu örnekte, bunu bildiğimizi varsayalım FF = f(AA, BB, CC, DD, EE) + error term, ancak işlevsel biçiminden emin değiliz f(...).

İşlevsel biçimini bulmak için hangi prosedürü / hangi yöntemleri kullanırsınız f(...)?

(Bonus noktası: fYukarıdaki verileri vermede en iyi tahmininiz nedir ? :-) Ve evet, R^20.99'u aşacak "doğru" bir cevap var .)


1
@OP: IrishStat'ın aşağıdaki yorumları bana, bağımsız değişkenlerinizin birbirleriyle ve / veya bağımlı değişkenle nasıl ilişkili olduğunu bilmeden, teorik olarak, sizi "küreksiz bir dereye bıraktığınızı" hatırlatıyor. Örneğin FF, "yanma verimi" ve AAyakıt BBmiktarı ve oksijen miktarı olsaydı, AAve BB
Pete

@Pete: Etkileşen terimler kesinlikle mümkündür. Umarım sorumu yanlış bir şekilde çerçeveleyerek ekarte etmedim.
knorv

2
@Pete: Bu hiç sorun değil (ve gerçek yaşam ortamında bile gerçekçi diyebilirim), aşağıdaki cevabımı görün.
von

3
Pete: Verilere uyacak sonsuz sayıda fonksiyonun R^2 >= 0.99karmaşıklık oranına (ve elbette örneklem dışı) en iyi performansa sahip olanı bulmak istiyoruz. Bu
açıklığı yazmadığım

1
Ayrıca, soru oldukça iyi cevaplandıysa, verilerin aşağıda önerilen fonksiyonlardan biri tarafından üretilip üretilmediğini bilmek iyi olur .
naught101

Yanıtlar:


29

Veriler için en uygun işlevsel formu (serbest biçimli veya sembolik regresyon) bulmak için bu aracı deneyin - tüm bilgilerime göre bu, mevcut en iyi (en azından bu konuda çok heyecanlıyım). ücretsiz :-)

http://creativemachines.cornell.edu/eureqa

EDIT : Eureqa ile bir şans verdim ve giderdim:

R, 2 = 0,99988

birbir+birbir2+BB*CC
,R,2=0,99988

Mükemmel bir uyum diyecektim (Eureqa başka, daha iyi oturan çözümler sunar, ancak bunlar da biraz daha karmaşık. Eureqa bunu tercih ediyor, bu yüzden bunu seçtim) - ve Eureqa birkaç saniye içinde benim için her şeyi yaptı. normal bir dizüstü bilgisayar ;-)


6
sadece referans için, Eureqa sembolik regresyon problemine çözüm bulmak için Genetik Programlama kullanıyor .
Thies Heidecke

10
Akılsız, otomatik bir araç için +1 Etkileyici performans!
whuber

1
@ vonjd, bağlantı şimdi "ücretsiz 30 günlük deneme sürümü" diyor. Ücretsiz bir alternatif biliyor musunuz?
denis

3
@denis: Bu R paketini deneyebilirsiniz: cran.r-project.org/web/packages/rgp/index.html - ama yukarıda belirtilen yazılım kadar karmaşık değildir (henüz değil mi?)
vonjd

3
Eureqa, akademik / kar amacı gütmeyen kuruluşlar için hala ücretsizdir
Inverse

25

, tek başına uyum iyiliğinin iyi bir tedbir değil, ama burada o içine almak olduğunu gözlemlemek hariç etmeyelimparsimonimodelleme değer biçilir.R2

Bu amaçla, not bu standart teknikler Veri Analizi (EDA) ve regresyon (ama yok aşamalı ya da diğer otomatik prosedürleri) şeklinde bir doğrusal model kullanılarak önermek

f=a+bc+abc+constant+error

OLS kullanarak, bu elde edecek 0.99 üzerindedir. Bu tür bir sonuç cesaret verici bir her iki taraf ve gerileme kare için cazip olduğunu f ile bir , b * c , bir * b * c , ve tüm kareler ve ürünler. Bu hemen bir model üretirR2fabcabc

f=a2+bc+constant+error

34 altındaki bir kök MSE ve ile ayarlanmış 0,9999 arasındaR2 . 1.0112 ve 0.988’in tahmini katsayıları, verilerin formülle yapay olarak üretilebileceğini göstermektedir

f=a2+bc+50

artı yaklaşık 50'ye eşit SD normalde dağılmış küçük bir hata.

Düzenle

@ Knorv'ın ipuçlarına yanıt olarak, analize devam ettim. Bunu yapmak için, şimdiye kadar başarılı olan teknikleri kullandım, artıkların saçılma matrislerinin orijinal değişkenlere karşı incelenmesiyle başladım. Tabii ki, arasındaki ilişki net bir belirti yoktu ve artıklar (hatta EKK regresyonu olsa f karşı bir , bir 2 ve b * c vermedi değil belirtmek bir "önemli" olduğunu). Bu damarda devam ben kuadratik terimler arasındaki tüm korelasyonlar araştırdı bir 2 , ... , e 2 , bir *afaa2bca ve yeni artıklar ve b 2 ile küçük ama oldukça önemli bir ilişki buldu. "Çok önemli", tüm bu meraklıların, 20 farklı değişkene bakmayı içerdiği anlamına gelir; bu nedenle, bu balıkçılık keşif gezisindeki önem ölçütüm yaklaşık 0,05 / 20 = 0,0025'tir: daha az sıkı olan herhangi bir şey, uyum için sondalamanın bir ürünü olabilir.a2,,e2,ab,ac,,deb2

Bunun “ilginç” ve “basit” katsayılarla ilişkileri beklediğimiz ve dolayısıyla aradığımız fiziksel bir modelin tadı bir şeydir. Yani, örneğin, tahmini katsayısı olduğunu görünce -0,0092 (% 95 güven ile -0,005 ila -0.013) idi, bunun için -1/100 kullanmak seçildi. Bu, sosyal ya da politik bir sistemin gözlemleri gibi başka bir veri seti olsaydı, böyle bir değişiklik yapmazdım, sadece OLS tahminlerini olduğu gibi kullanırım.b2

Neyse, daha iyi bir uyum

f=a+a2+bcb2/100+30.5+error

ortalama artık , standart sapma 26.8, -50 ile +43 arasındaki tüm artıklar ve normal olmayan bir kanıt bulunmamakla birlikte (bu kadar küçük bir veri setinde hatalar eşit bir şekilde dağıtılabilse de bir tanesi gerçekten farkı söyleyememiştir). Artık standart sapmada yaklaşık 50'den 25'e düşme, genellikle "artık varyansın% 75'ini açıklamak" olarak ifade edilir.0


birb2

BTW, sağlam regresyon kullanarak modele uyabilirim

f=1,0103bir2+0,99493b*c-0.007b2+46.78+hata

27.4 artık SD ile ve -51 ve +47 arasındaki tüm artıklar: esasen önceki uyum kadar iyi fakat bir daha az değişken olan. Bu anlamda daha ayrıcalıklı, fakat katsayıları "güzel" değerlere yuvarlamadığım için daha az ayrıcalıklı. Bununla birlikte, bu genellikle bir regresyon analizinde tercih edeceğim formdur, katsayıların ne tür değerlere sahip olması gerektiği ve hangi değişkenlerin dahil edilmesi gerektiği konusunda kesin teoriler yoktur.

R,2


1
İyi iş! Şimdiye kadar bu en iyi cevap gibi görünüyor.
Zach

@whuber: Güzel iş - yaklaşıyorsun! :-) Verilerin yapay olarak bir formül artı bir hata terimiyle üretildiği doğrudur. Ancak formül tam olarak bulduğunuz formül değil - bir kaç şartla eksiksiniz. Ama yakınsın ve şu an liderlik yapıyorsun :-)
knorv

4
@whuber + 1'imi zaten verdim, ancak bunun böyle bir soruna yaklaşımını okumak için çok öğretici olduğunu eklemek isterim. Her ne olursa olsun, lütuf almaya değersin.
chl

1
@bill, daha önce denedim. Açıklamamın, teklifinize ek olarak sunduğum ikisini de sağladığını düşünüyorum. Birden fazla doğru cevap var. Analize devam ettim ve bu ekstra terimleri dahil ettim çünkü artıklarda kalıplar olduğu açıktı ve bunların hesaba katılması artık varyansı maddi olarak azaltıyordu. (Ben de, bu konuda çok az zaman ve dikkat geçirdiğini itiraf edecektir toplam sürenin ilk analiz için cevap yazma dahil edildi 17 dakika daha fazla zaman genellikle daha içgörü anlamına ....)
whuber

1
@naught Bu kadar uzun bir formülle başlamak ve bir Elastik Ağ (veya bazı değişken değişken eliminasyon algoritmaları) uygulamak ilginç olurdu. Bu tür bir yaklaşımın başarısının, işlev sayısının göreceli olarak küçük tutulmasına ve aralarındaki doğru işlevlerin dahil edilmesine bağlı olacağından şüpheleniyorum - bu, ilkeli araştırmalardan daha iyi şans ve iyi tahmin meselesi gibi geliyor. Ancak, soruna kör bir şekilde çok sayıda işlevsel biçim atmak başarı ile sonuçlanırsa, bu bilmeye değer olacaktır.
whuber

5

Sorunuzun rafine edilmesi gerekiyor, çünkü işlev fneredeyse kesinlikle benzersiz bir şekilde örnek veriler tarafından tanımlanmadı. Aynı verileri üretebilecek birçok farklı fonksiyon vardır.

Olduğu söyleniyor, Varyans Analizi (ANOVA) veya bir "duyarlılık çalışması", girdilerinizin (AA..EE) çıktılarınızı (FF) nasıl etkilediği hakkında size çok şey söyleyebilir.

Ben sadece hızlı ANOVA yaptı ve oldukça iyi bir model buldum: FF = 101*A + 47*B + 49*C - 4484. İşlev doğrusal olarak DD veya EE'ye bağlı görünmüyor. Tabii ki, model ile daha ileri gidebilir ve ikinci dereceden ve karışım terimleri ekleyebiliriz. Sonunda verilere tam uyan ve öngörücü değeri olmayan mükemmel bir modele sahip olacaksınız. :)


@Pete Dediğiniz gibi ikinci dereceden, kübik, kuartik… ve karışım terimleri ekleyebiliyordunuz, ancak bu sadece saçmalık olurdu. Saçmalık var ve duyusal olmayan saçmalık var, en duyusal olmayan saçmalık "istatistiksel saçmalık".
IrishStat

2
@IrishStat, karışım ve daha yüksek dereceli terimler eklemek genellikle saçma değildir ; sadece kısıtlama olmadan ve teoriye bakılmaksızın yapıldığında kötü
Pete

2
@Pete. Doğru! Önceden var olan bir teorinin olmaması onu aptallaştırır.
IrishStat,

@Pete: Modeliniz için ne R ^ 2 alıyorsunuz?
knorv

@ knorv: Tam olarak hatırlamıyorum ama> 0.90 idi. Regresyon çizgisi hakkında çizildiğinde, noktalar bir "S" / kübik şekle sahipti, bu yüzden "f" fonksiyonunun birisinin 100A + 50 (B + C) + daha yüksek dereceli yazdığı matematiksel bir yaratım olduğunu tahmin ediyorum. D & E'yi içeren terimler
Pete

3

Genel olarak konuşursak, makine öğrenmede serbest öğle yemeği yoktur:

Özellikle, eğer A algoritması bazı maliyet fonksiyonlarında algoritma B'den daha iyi performans gösteriyorsa, o zaman gevşekçe konuşmak gerekirse, tam olarak B'nin A'dan daha iyi performans gösterdiği diğer fonksiyonlar kadar mevcut olması gerekir.

/ edit: ayrıca, C = 4 ve sigma = 0.206 olan bir radyal SVM, kolaylıkla .99'luk bir R2 verir. Bu veri setini türetmek için kullanılan gerçek denklemi çıkarmak, sınıfa alıştırma olarak bırakılmıştır. Kod R'de.

setwd("~/wherever")
library('caret')
Data <- read.csv("CV.csv", header=TRUE)
FL <- as.formula("FF ~ AA+BB+CC+DD+EE")
model <- train(FL,data=Data,method='svmRadial',tuneGrid = expand.grid(.C=4,.sigma=0.206))
R2( predict(model, Data), Data$FF)

-2

Tüm Modeller yanlıştır ancak bazıları kullanışlıdır: GEPBox

Y (T) = - 4709.7
+ 102.60 * AA (T) - 17.0707 * AA (T-1)
+ 62.4994 * BB (T) + 41.7453 * CC (T) + 965.70 * ZZ (T)

ZZ (T) = 0 İÇİN T = 1,10 = 1 DİĞER

Y ile AA arasında "gecikmeli bir ilişki" VE 11-25 arası gözlemler için ortalamada açıklanan bir kayma var gibi görünüyor.

Kronolojik veya mekansal veri değilse, meraklı sonuçlar.


@IrishStats "GEP Kutusu" Nedir?
knorv

IrishStat: Veriler kronolojik değil. Dolayısıyla gözlemlerin sıralanması önemli değildir. 11-25 nolu gözlemler için ortalamadaki değişim sadece veri setini nasıl aldığım üzerine bir yan etkidir.
knorv

1
@IrishStat: Belli bir düzende kayıtları almaya başladığım anlamına geldim (düşünüyorum ORDER BY). Satırların özel bir sırası yoktur. Böylece, hiçbir bilgiyi kaybetmeden güvenli bir şekilde yeniden düzenleme yapabilirsiniz.
Kafamı

1
IrishStat: Veri kümesi sıralanmamış. AA(T-1)Denkleminizi terimi bu bağlamda hiçbir mantıklı.
naught101

2
AA(T-1)R,2

-3

97.2 r kare

Tahmini / Teşhis Kontrolü Değişken YY
X1 AAS
X2 BB
X3 BBS
X4 CC

Kalıntı Sayısı (R) = n 25
Serbestlik Derecesi Sayısı = nm 20
Kalıntı Ortalama = Toplam R / n-141873E-05
Karelerin Toplamı = Toplam R2.775723E + 07
Varyans = SOS / (n) 310289.
Düzeltilmiş Varyans = SOS / (nm) 387861.
Standart Sapma RMSE = SQRT (Adj Var) 622.785
Ortalamanın Standart Hatası = Standart Dev / (nm) 139.259
Ortalama / Standart Hata = Ortalama / SEM-101077E-07
Ortalama Mutlak Sapma = Toplam (ABS (R)) / n 455.684
AIC Değeri (var Kullanır) = nln + 2m 326.131
SBC Değeri (var Kullanır) = nln + m * lnn 332.226
BIC Değeri (var Kullanılır) = bakınız Wei p153 340.388
R Kare = .972211
Durbin-Watson İstatistiği = [- A (T -1)] ** 2 / A
2 1.76580

**
MODEL BİLEŞENİ LAG COEFF STANDART PT
# (BOP) ERROR DEĞER DEĞERİ

1CONSTANT                         -.381E+04   466.       .0000    -8.18

GİRİŞ SERİSİ X1 AAS AA KARE

2Omega (input) -Factor #  1    0   .983       .410E-01   .0000    23.98

GİRİŞ OLARAK GİRİŞ SERİSİ X2 BB BB

3Omega (input) -Factor #  2    0   108.       14.9       .0000     7.27

GİRİŞ SERİSİ X3 BBS BB KARE

4Omega (input) -Factor #  3    0  -.577       .147       .0008    -3.93

GİRİŞ OLARAK GİRİŞ SERİSİ X4 CC CC

5Omega (input) -Factor #  4    0   49.9       4.67       .0000    10.67

 Kalan Arsa

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.