0

クラスが手作業でラベル付けされたデータを集約することによって学習された (マルチクラス) トレーニング データがあるため、一部の行には [0, 0, 0, 0.4, 0.6] のような値が含まれます。それを分類器のトレーニングデータとして直接使用する方法はありますか。5 つの回帰モデルを学習したり、そのデータを [0, 0, 0, 0, 1] に設定したりすることは避けたいと思います。どちらも、直接学ぶよりもうまくいかないようです。少なくともロジスティック回帰ではこれが可能であることはわかっていますが、それをサポートする API はないようです。(また、それよりも優れた分類子を使用したいと思います。)

4

2 に答える 2

1

現在、これをサポートする推定器はありません。これが可能かどうかは、実際にはモデルに依存します。たとえば、ランダム フォレストまたは決定木の場合、これは回帰モデルの学習と大差ありません (ただし、本当に適切な分割基準が何であるかはわかりません)。

sklearn でそのための API がすぐに提供されるとは思いません。ただし、この設定を処理するために、ランダム フォレスト、最近傍、またはニューラル ネットワーク (近日公開予定) を変更できます。

ちょっとした作業で、おそらく SGDClassifier も変更できますが、線形モデルは必要ないと言いました。「より良い」分類器とは何だと思いますか?

于 2013-10-30T05:07:52.797 に答える
1

機種依存の問題です。特に、そのようなタスクに SVM を使用する場合は、K SVMa が必要です。ここで、K = ラベルの数です (確率を使用するためではなく、SVM がバイナリ モデルであるため)。一度それを行うと、「サンプルの重み付け」を使用して、話しているこの種の知識を含めることができます。したがって、SVMの場合、答えはイエスです。それは可能であり、非常に簡単です。特に、scikit-learn はサンプルごとの重み付けを実装します。

ナイーブベイズにも自然に組み込むことができます。

異なるモデルでは、より複雑になる可能性があります。たとえば、バイナリ ベクトルの代わりに期待される出力 [0,0,0,0.4,0.6] を使用してニューラル ネットワークをトレーニングできますが、これはオーバーフィッティングを引き起こす可能性があります (これは「クラス」を意味するものではないため)。 4 は 40% で確実です」ではなく、「このサンプルで正確に [0,0,0,0.4,0.6] と答えることを利用して、この方法でモデル化してみてください」、したがって、[0 を持つ同様のサンプルがある場合,0,0,1,1] それはそれらを区別しようとします. 同じことが多重回帰アプローチにも当てはまります.

于 2013-10-29T06:30:40.473 に答える