問題タブ [multiclass-classification]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
567 参照

tensorflow - ニューラル ネットワークを使用したマルチクラス分類

私は約 200 の顔の 3D メッシュを持っており、その頂点を 2 つのパラメーター (ガウス曲線と平均曲率) のみに基づいて分類したいと考えています。この目的のために、TensorFlow ニューラル ネットワークを使用することにしました。

鼻先、あご、目尻など、すべての顔に 18 個の顕著な頂点をマークしました。これらのポイントはすべて、ガウス曲率と平均曲率のヒートマップを見ることで簡単に認識できます。そこで、これらのポイントでこれらのパラメーターのヒストグラム (異なるスケール - 6 mm、4 mm、2 mm) を作成し、それをニューラル ネットワークの入力として使用することにしました。入力は 608 個の特徴のベクトルです (6 つのヒストグラムのそれぞれに 101 個の整数と、ポイントの平均曲率とガウス曲率用に 2 個の浮動小数点数)。出力は、頂点がどのクラスにあるかを表すベクトルでなければなりません。

これは、10 個の顔のスケール 6 mm の視覚化されたヒストグラムです(各列は 1 つの顕著な点を表します。各行は 1 つの顔です。18 列ありますが、11 クラスだけです。たとえば、目の内側の角 (列 5 と 6) は対称であるため、両方とも列は同じクラスにあります) : ここに画像の説明を入力

この例を修正しました。まず、バイナリ分類器を作成しようとしました。結果として得られるネットワークは、約 98% の精度で、鼻先と残りのポイント、またはあごと残りのポイントを非常によく認識できます。ニューラル ネットワークにメッシュのすべての頂点を分類させます。驚いたことに、出力ベクトルは常に [1.0, 0.0] または [0.0, 1.0] でした。1. 質問 - なぜですか?

ここで、「この点は 0.2 の確率で鼻先、0.7 の顎、0.05 の内側の目頭、...」と伝える単一の神経ネットワークを作成したいと思います。しかし、出力層にクラスを追加することで、精度が低下しています。したがって、11 クラスの精度はわずか約 30% です。2. 質問 - なぜ、どのように修正するのですか? 確率を含む出力ベクトルには、まだ 1 と 10 の 0 しかありません。

助けていただければ幸いです。

これがトレーニングテストのデータです。これが私のコードです:

0 投票する
1 に答える
82 参照

machine-learning - LogisticRegression 予測確率

現在、マルチクラス分類の問題で scikit-learn の LogisticRegression を使用しています。LogisticRegression を使用することに決めたのは、LogisticRegression が返す予測確率に関して十分に調整されたアルゴリズムであると説明している記事をいくつか読んだからです。

分類器の各結果について、その予測確率と、分類された観測値と同じ決定クラスを持つトレーニング セット内の残りの例との間の距離を調べます。

クラスが 90% 以上の信頼度で予測されていたとしても、結果の一部については、コサイン類似度測定により、与えられた例がトレーニングで同じクラスの例のセットと平均してほぼ直交していることを示唆していることに驚いています。設定。

なぜそのような不一致が観察されるのかについて、誰かが手がかりを提供できますか?

同じクラスの残りの観測値からかなり離れている例では、LogisticRegression アルゴリズムは低い予測確率を返すと思います。