7

Ruby で局所的に重み付けされたロジスティック回帰アルゴリズムを実装しようとしています。私の知る限り、現在このアルゴリズムのライブラリは存在せず、利用できる情報もほとんどないため、困難でした。

私の主なリソースは、Dr. Kan Deng の論文であり、その中で彼はアルゴリズムを非常に簡単な詳細で説明しています。ライブラリに関するこれまでの作業はこちらです。

B(ベータ)を計算しようとすると、問題が発生しました。私が理解していることから、特定のポイントのローカル重みを表すベクトルですB(1+d x 1)その後、piそのポイントの (正の出力の確率) は、そのポイントの に基づくシグモイド関数ですB。を取得Bするには、ニュートン ラフソン アルゴリズムを特定の回数 (おそらく 10 回以内) 再帰的に使用します。

66 ページの式 4-4、つまりニュートン ラフソン アルゴリズム自体は、私には意味がありません。Xと W が何であるかについての私の理解に基づいて、は と一致しない行列である(x.transpose * w * x).inverse * x.transpose * w必要があります。したがって、これが機能する唯一の方法は、e がベクトルである場合です。(1+d x N)B(1+d x 1)(N x 1)

しかし、67 ページの上部の写真の下で、Deng 博士は e は比率であると言っていますが、これは私には意味がありません。e オイラー定数ですか? その比率が常に 2.718:1 であるのはたまたまですか? いずれにせよ、説明はそれがベクトルであることを示唆していないようで、私は混乱しています.

の使用pi'も私を混乱させます。式 4-5 は、B に関するシグモイド関数の導関数であり、定数にベクトルを掛けたもの、またはベクトルを与えます。ただし、私の理解では、pi'は数値であり、w を掛けて、重みアルゴリズム W の対角線を形成することになっています。

ここでの 2 つの主な質問は、e67 ページには何があり、それは私が必要とする行列であり、式 4-51xNはどのようにして数値になるのでしょうか?pi'

これは答えるのが難しい質問であることは承知しています。よろしい回答があれば、数日後に戻ってきて 50 ポイントの報奨金を差し上げます。デン博士に電子メールを送ろうと思っていたのですが、1997 年以降、彼がどうなったのかを知ることができませんでした。

誰かがこのアルゴリズムの経験があるか、他のリソースを知っている場合は、どんな助けでも大歓迎です!

4

1 に答える 1

5

私が見る限り、これはロジスティック回帰の単なるバージョンであり、対数尤度関数の項は、分類しようとしているポイントからの距離に応じて乗法的重みを持ちます。http://czep.net/stat/mlelr.pdfなどのロジスティック回帰の説明に慣れることから始めます。あなたが言及した「e」は、オイラーの定数とはまったく関係がないようです-彼はエラーのために e を使用していると思います。

Ruby から Java を呼び出すことができれば、http: //weka.sourceforge.net/doc.stable/weka/classifiers/functions/Logistic.html で説明されている Weka のロジスティック分類子を利用できる可能性があります。元のロジスティック回帰はインスタンスの重みを処理しませんが、アルゴリズムを少し変更してインスタンスの重みを処理します。」ダウンロードしてソース コードを確認することもできます。これを行う場合、かなり洗練されたアプローチであることに注意してください。たとえば、すべてのポイントが入力空間の一部の部分空間に実際にほとんど存在するかどうかを事前に確認し、存在する場合はいくつかの次元を投影します。

于 2012-10-14T05:45:42.450 に答える