私は R が大好きですが、時々頭が痛くなります...
私は次の単純な二次最小化問題を持っています。これは、Excel で定式化してすぐに解決できます (画像をクリックして拡大)。
と
問題自体は非常に簡単です: の最適な組み合わせを(w1^2+w2^2)/2
見つけて最小化したいと考えています。w1
w2
b
Y*(w1*X1+w2*X2+b) >= 1
この種の問題を解決するためのパッケージがあることは知っていquadprog
ますが、直感的ではないため、問題を正しく指定することができません :-( 言いたくないのですが、これらのような最適化問題を指定するには Excel の方が適しているようです。 :-((((
私の質問
R (どのパッケージでも) で解決できるように上記の問題を正しく定式化する方法と、プログラムがw1
, w2
andの正しい値に到達するb
方法 (上の図でわかるように)。リンクを投稿するだけでなく、実際に機能するコードを提供してください。コードにコメントを付けて、なぜそのようなことをするのかが明確になるとよいでしょう。ありがとうございました!
必要なデータは次のとおりです。
data <- matrix(c(2.947814,6.626878, 1,
2.530388,7.785050, 1,
3.566991,5.651046, 1,
3.156983,5.467077, 1,
2.582346,4.457777,-1,
2.155826,6.222343,-1,
3.273418,3.520687,-1),ncol=3,byrow=T)
colnames(data) <- c("X1","X2","y")
補遺
一部の人々は、コードを提供するように私の要求に腹を立てました (単なるリンクではありません)。私はそれをお詫びし、これまでの回答で良いアプローチが見つからなかったという理由を述べました。そのより深い理由はb
、目的関数ではなく制約のみにあるという意味で、問題が異常であるということです。したがって、この質問はSOに適していると今でも思います。