質問

Scikit-Learnを使用してアドレスを分類する必要があるとしましょう。そのため、分類子をストリート名でアドレスを分類し、ポスト/郵便番号を分類したい場合は、OneVSrest分類子を実行するか、2つの異なる分類子に分離します(同じトレーニングセットの場合)?

私は両方を試しましたが、複数の分類子を持っている方が、複数の小さな分類子を訓練する方が速く感じるので、より良い選択の方があるようです。これはどのように行われるはずですか?

役に立ちましたか?

解決

両方の方法が有効であり、両方が一般的に使用されます。時には、マルチラベルであると主張する分類器が、ラベルをハードの下で複数のワンブスレスト分類器に分離し、最後に結果を一緒に結合する便利なものになることがあります。

ただし、方法が根本的に異なる場合があります。たとえば、複数のターゲット(ラベル)でニューラルネットをトレーニングする際に、ネットワークの構造をセットアップして共有構造があるように設定できます。共有ノードは、すべてのターゲットに役立つ学習機能になります。これは非常に便利です。

たとえば、クラス(ラベル)が「キャットペット」、「キャットビッグ」、「犬」である場合、最初に猫と犬を区別することを学習するアルゴリズムが必要になる場合があります。後のステップは、ペットである猫を大きい猫(ライオンのような!)から分離することを学びます。これは階層と呼ばれ、分類子が階層を悪用できる場合、より良い精度を得ることができます。ただし、クラスが完全に独立している場合、違いは生じない場合があります。

最も簡単な方法(つまりonevsrest)から始めて、パフォーマンスがニーズに適しているかどうかを確認し、より良いパフォーマンスが必要な場合にのみ、より複雑な方法(マルチラベル、階層的な方法など)に移動します。

ライセンス: CC-BY-SA帰属
所属していません datascience.stackexchange
scroll top