7

sklearn を使用して、回転を表す変数を予測しようとしています。回転の極限で -pi から pi への不運なジャンプのため、ターゲットとして複素数を使用する方がはるかに優れた方法だと思います。そうすれば、1+0.01j から 1-0.01j までの誤差はそれほど壊滅的ではありません。

sklearn が分類子のターゲットとして複素数をサポートしているかどうかを説明するドキュメントが見つかりません。理論的には、距離メトリックは問題なく機能するはずなので、少なくともいくつかの回帰アルゴリズムで機能するはずです。

回帰アルゴリズムを複素数をターゲットとして動作させる方法を誰かが提案できますか?

4

3 に答える 3

4

いくつかのリグレッサーは、多次元回帰ターゲットをサポートしています。複素数を 2 次元の点として表示するだけです。

于 2012-08-17T11:17:09.167 に答える
2

これまでのところ、線形リグレッサーのようなほとんどの分類器が自動的に複素数を実数部に変換することを発見しました。

ただし、kNN および RadiusNN リグレッサーはうまく機能します。これは、近隣ラベルの加重平均を行い、複素数を適切に処理するためです。

マルチターゲット分類器を使用することも別のオプションですが、x 方向と y 方向を切り離したくありません。パニック大佐が言及しているように、両方の結果が 0 に近づくと、解が不安定になる可能性があるためです。

複雑なターゲットを持つ他の分類子を試して、ここで結果を更新します。

于 2012-08-17T18:11:13.947 に答える
1

良い質問。角度をラベルのペアに変換するのはどうでしょうか。x 座標と y 座標。これらは角度 (cos と sin) の連続関数です。ある角度について、別々の x 分類子と y 分類子の結果を組み合わせることができますか? $\theta = \sign(x) \arctan(y/x)$. ただし、両方の分類子がゼロに近い数値を返す場合、その結果は不安定になります。

于 2012-08-17T09:55:37.993 に答える