2

私は現在、複数の重要な層にわたって、それぞれに生育する植物に基づいた地理的領域のセグメンテーションに関するプロジェクトに取り組んでいます (つまり、各セグメンテーション レイヤーには、他のレイヤーに対して固有の意味があります)。

そうすることで、ロジスティック回帰を使用して、地域のリストから、各レイヤーに属しているセグメントとそこに含まれる植物から、セグメントの各組み合わせで植物が成長する確率に進みます。現在、セグメンテーションの C# 実装にリンクされた SPSS を使用しています。

ここまでは順調ですね。問題は、SPSS が寒い日に糖蜜のように遅いことです。フルセット (2500 の植物と 565 の地域) の場合、1 回の実行に約半月かかります。その時間はないので、今のところ省略されたデータ セットを使用していますが、それでも数時間かかります。

ロジスティック回帰 (具体的には Accord.NET と Extreme Optimization) を備えた他のライブラリを調べましたが、どちらもカテゴリカル ロジスティック回帰を備えていません。

この時点で、おそらく、カテゴリー ロジスティック回帰の意味を明確にする必要があります。統計エンジンにフィードするデータ セットの各行に各レイヤーの変数と、現在関心のある植物の変数があるとすると、レイヤー変数の値はカテゴリと見なされます。0 は 1 より良くも悪くもありません。単に違います。統計エンジンから取得したいのは、各レイヤー変数の各カテゴリの値 (もちろん切片も) です。したがって、3 つのセグメントを持つレイヤーと 2 つのセグメントを持つレイヤーのセットアップでは、5 を取得します。値と切片。

Accord.NET (ライブラリの外部で実行する必要がある場合) と Extreme Optimization (ライブラリ内でサポートされている場合) の両方でダミー変数またはインジケーター変数を実験しましたが、これは生成されませんでした。必要な結果。

TL;DR

要するに、C# でのカテゴリロジスティック回帰の適切な解決策を知っている人はいますか? これは、クラス ライブラリでも、外部の統計エンジンにプラグインする単なるインターフェイスでもかまいませんが、安定していてかなり高速である必要があります。

4

2 に答える 2

0

カテゴリ入力変数を使用してロジスティック回帰を作成する標準的な方法は、カテゴリ変数をダミー変数に変換することです。したがって、入力データに対して適切な変換を実行する限り、質問で言及したロジスティック回帰ライブラリのいずれかを使用できるはずです。

n 個のカテゴリを持つ 1 つのカテゴリ変数から n-1 個の数値ダミー変数へのマッピングは、対比と呼ばれます。この投稿には、コントラストがどのように組み合わされるかについての詳細な説明があります。

ダミー変数の数は、カテゴリ値の数より 1 少ないことに注意してください。カテゴリ値ごとに 1 つのダミー変数を使用しようとすると、最後のダミー変数が前のダミー変数から独立していないことがわかります。回帰モデルをそれに当てはめようとすると、エラー (または無意味な係数) が発生します。

したがって、切片、3 レベルのカテゴリ入力変数、および 2 レベルのカテゴリ入力変数を含むモデルの例を挙げると、ceofficient の数は 1 + (3 - 1) + (2 - 1) = 4 になります。

于 2013-03-04T07:53:00.670 に答える