Karesel Programlama ve Kement


11

Aşağıdaki formu olan bir kement regresyon gerçekleştirmek için çalışıyorum:

Minimize olarak( Y - X w ) ( Y - X w ) + λw(YXw)(YXw)+λ|w|1

Bir verildiğinde , aşağıdaki formu alan ikinci dereceden programlama yardımıyla en uygun w'yi bulmam tavsiye edildi :wλw

Minimize x de 12xQx+cx , hastanın Axb.

Şimdi λ teriminin , oldukça basit olan Ax \ le b kısıtlama terimine dönüştürülmesi gerektiğini anlıyorum Axb. Ancak, bir şekilde ilk denklemin ilk terimini ikincinin ilk terimine nasıl aktarabileceğimi göremiyorum. Bu konuda net bulamadım, bu yüzden burada sormaya karar verdim.

Yanıtlar:


11

Standart formda ' ' değişkeni olarak ile çalıştığımızı unutmayın, genişletin ve ve ve ve sabitler.x ( Y - X g ) ( Y - X g ) w wx(YXw)(YXw)w ww[something]www

Sabitleri neden görmezden gelebileceğinizi açıklayın.

ve terimlerini neden birleştirebileceğinizi açıklayın . www


BananaCode şimdiye kadar yol boyunca önde gelen bazılarıyla anlaşıldığından, ve veya daha basit bir şekilde yazabilirsiniz, sadece ve (çünkü ve herhangi bir için aynı argine'ye sahiptir ).c = - 2 X Y Q = X X c = - X Y f ( x ) k f ( x ) k > 0Q=2XXc=2XY Q=XXc=XYf(x)kf(x)k>0


Sabitler göz ardı edilebilir, çünkü eğer x_ f (x) için minimum ise, x_ + c f (x) + c için minimumdur, dolayısıyla c sabitini göz ardı edebiliriz. Sıkıştığım yeri göstermek için sorumu düzenleyeceğim.
spurra

BananaCode açıklamanızın birkaç kusuru var. Tarafından ise "için minimum " Şunu "da argümanı en aza indirilir" demenin gibi bir şey " olduğunu ait ". Ama varılan sonuç yanlış. Eğer eklerseniz için , sen katmayan argmin için. f ( x ) x argmin f c f cf(x)f(x)xargminfcfc
Glen_b

Cevabımda yazdığımı gördünüz mü? Ne var şey artık arasında var ve sorunuzun altındaki ?? w ww[something]www
Glen_b

Evet, demek olan ait . Sonucumun yanlış olduğu bir örnek verebilir misiniz? olan I biçim çalışıyorum matrix. Ben genişletirseniz Ben olsun . İlk kısım matrisinin biçimini temsil eder , ancak ikinci terim . a r g m i n f [ s o m e t h i n g ] Q wxargminf[something]Qw X X w - w Xw(XXwXY)Q - w X YwXXwwXYQwXY
spurra

1
@ AD.Net Kısıtlamalar çoğunlukla diğer cevapta ele alınmaktadır.
Glen_b

11

Kısıtlamaları dönüştürmeyi nasıl çözeceğimizi eklemek istedim kuadratik programlama için kullanılabilir bir forma, ben sandığı kadar basit değil gibi. Gerçek bir matris bulmak mümkün değildir öyle ki .A A w s | w i | s|wi|sAAws|wi|s

Ben kullanılan yaklaşım elemanlarının bölünmüş olduğunu vektörün içine ve , böylece . Eğer , sahip ve , başka varve . Veya daha matematiksel olarak, veHem hem de negatif olmayan sayılardır. Sayıları bölmenin arkasındaki fikir, şimdi sahip olduğunuz w w +wiw w - i wi=w + i -w - i wi0w + i =wiw - i =0w - i =| wi| w + i =0w + i =| wi| +wiwi+wiwi=wi+wiwi0wi+=wiwi=0wi=|wi|wi+=0 w - i =| wi| -wbenwi+=|wi|+wi2w - i w + i | wi| =w + i +w - iwi=|wi|wi2.wiwi+|wi|=wi++wimutlak değerlerden etkili bir şekilde kurtulmaktır.

Optimize etme işlevi şu : , konu için w + i + w - is ,12(w+w)TQ(w+w)+cT(w+w)wi++wis,wi+,wi0

Burada ve Glen_b göre yukarıda belirtildiği gibi, verilencQc

Bunun kullanılabilir bir forma dönüştürülmesi gerekiyor, yani bir vektöre ihtiyacımız var. Bu aşağıdaki şekilde yapılır:

12[w+w]T[QQQQ][w+w]+[cTcT][w+w]

tabi

[IDIDI2D][w+w][sD02D]

Burada olan boyutlu birim matris, bir tek değer oluşan boyutlu vektör ve bir boyutlu sıfır vektör. İlk yarı , ikinci kullanılabilir bir formu aramak için kuadratik programlama kullanmak için Şimdi ise ve , verilen . Bu işlem tamamlandıktan sonra, ile ilgili olarak optimum bir parametre olduğu . D s D D s 0 D 2 D | w i | = wIDDsDDs0D2Dw + i ,w - i0w+w-ssw=w+-w-|wi|=wi++wiswi+,wi0w+wssw=w+w

Kaynak ve ek okuma: Mutlak değerler içeren doğrusal kısıtlamalarla ikinci dereceden programlama problemini çözme


İdeal bir boyutlu vektör bulduğumuzu varsayalım . Ne olmasını sağlar ve pozitif parça ve bazı vektör olumsuz parçalar aslında yani onların, giriş pozisyonları örtüşüyor mu? ( w + , w - ) w + w - w 02D(w+,w)w+ww0
Myath

Son ifadedeki matris ve vektör daha basit ve aslında daha doğru olabilir. [Id Id] [w + w−] '≤ Sd yerine [1 1 .... 1] [w + w-]' ≤ s koyabilirsiniz. Bu kelimenin tam anlamıyla ∑ | wi | = ∑ (wi + + wi−) ≤ s.
Marko
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.