L-infinityノルム線形回帰を解決するソフトウェアパッケージ


10

L無限大ノルムを最小化する目的で線形回帰を解決するソフトウェアパッケージはありますか?


まあ、どんな線形プログラミングパッケージでも動作します。それはあなたに多くのオプションを残します。:)
2011

1
@Cardinalこれを線形プログラムとしてどのように再キャストしますか?些細な場合(2つのデータポイントと1つのパラメーターなど)でも、その方法は明らかではありません。制約はなく、目的関数は非線形です。
whuber

キーワード:チェビシェフ近似。(従うべき詳細。追加の変数を導入し、目的を制約に変えることがアイデアです。)
枢機卿

@cardinalあなたはこれを意味します:mathworld.wolfram.com/ChebyshevApproximationFormula.htmlかなり複雑に見えます。
ファンZhang

まあ、それは少し関連していますが、この問題に密接な関係はありません。簡単なLPで問題を解決できます。コンピューターにたどり着いたらすぐに回答を掲載します。
枢機卿

回答:


17

短い答え:問題は線形プログラム(LP)として定式化できるため、タスクに適したLPソルバーを選択できます。問題をLPとして記述する方法については、以下をお読みください。

この最小化問題は、しばしばチェビシェフ近似と呼ばれます。

y=(yi)RnXRn×pixiβRpf(β)=yXββ

f=f(β)=inf{f(β):βRp}.

これをLPとして再キャストするための鍵は、問題をエピグラフ形式で書き直すことです。実際、

f=inf{t:f(β)t,tR,βRp}.

ここで、関数定義を使用して、上記の右側を 、回帰設定でノルム を最小化することは、LPと同等であることが 最適化が行われる場所over、およびは長さ 1のベクトルを示します。私は、読者が上記のLPを標準形式で再キャストするための(簡単な)演習として残します。f

f=inf{t:tyixiβt,tR,βRp,1in},
minimizetsubject toyXβt1nyXβt1n,
(β,t)1nn

線形回帰の(全変動)バージョンとの関係1

非常によく似たものがノルムでも実行できることに注意してください。してみましょう。次に、同様の引数により、 対応するLPは 1g(β)=yXβ1

g=inf{tT1n:tiyixiβti,t=(ti)Rn,βRp,1in},
minimizetT1nsubject toyXβtyXβt.

場合とは、はスカラーではなく長さベクトルになっていることに注意してください。tn

これら2つの問題の類似点と、両方をLPとしてキャストできるという事実は、もちろん偶然ではありません。2つの基準は、相互に二重の基準であるという点で関連しています。


どのようにして、パラメーターおよび/または予測の精度の測定値を見つけますか?次の最近の質問のために尋ねます: mathematica.stackexchange.com/questions/214226/…
JimB

3

Malabはcvxを使用してそれを行うことができます。cvx(無料)を取得するには:

http://cvxr.com/cvx/download/

cvxでは、次のように記述します。

cvx_begin
   variable x(n);
   minimize( norm(A*x-b,Inf) );
cvx_end

マニュアルの例ページ12を確認してください)

CVXのPython実装(ここ)がありますが、コマンドは少し異なります...


1

@cardinalの答えは適切であり、受け入れられていますが、このスレッドを完全に閉じるために、以下を提供します。IMSL数値ライブラリには、L無限大のノルム回帰を実行するためのルーチンが含まれています。このルーチンは、Fortran、C、Java、C#、およびPythonで使用できます。私は、メソッドがlnorm_regressionを呼び出すCバージョンとPythonバージョンを使用しました。これは、一般的な回帰、もサポートしています。Lpp>=1

これらは商用ライブラリですが、Pythonバージョンは(ビールのように)非商用目的で無料です。


残念ながら、リンクは機能しません。更新していただけますか?
COOLSerdash
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.