2011-11-16 10 views
7

私はPyBrainチュートリアルClassification with Feed-Forward Neural Networksに従っています。私自身のクラシファイアを構築したいと思います。PyBrainの_convertToOneOfMany

_convertToOneOfManyが出力を変更する方法がわかりません。

なぜ初期操作alldata.addSample(input, [klass])はクラスごとに複数の出力ニューロンを作成するのですか?

+1

こんにちは、あなたの質問に回答としてマークするのを忘れました。 – Framester

+0

私は自分でそれに答えましたので、私はそれをスキップします – user425720

+0

@ user425720あなた自身に答えても、あなたはそれを回答としてマークする必要があります。それから、人々はこれがあなたの問題を解決したことを知っています。 –

答えて

6

用事、ここではドキュメント内の関連する部分は、ページUsing Datasets: classification – Datasets for Supervised Classification Trainingあるhttp://pybrain.org/docs/tutorial/datasets.html

+1

この回答をいただきありがとうございますが、「クラスがクラスごとに1つの出力単位にエンコードされていると、多くのアルゴリズムがうまく機能します」というドキュメントにはあまり進んでいません。私は "クラスごとに1つの出力単位"が何であるか尋ねてもいいですか? – hihell

+0

うわー、それは数年前、私はほとんど覚えていない - 神経ネットワーク構造に接続されていないのですか?だから、ニューロンは別の層の1つまたは複数のニューロンに出力を出すことができますか? – user425720

+0

はい、これはNT構造に関連しています。実際に私は自分自身を考え出しました。「クラスごとに1つの出力単位」とは、3つのクラスがある場合は、3つの出力単位を持つ方が良いでしょう。 _convertToOneOfManyは出力単位をターゲットクラスの数に拡大/縮小することでこれを行います – hihell

1

このようなものを説明するドキュメントです:

分類を行うときのクラスは、1つの出力ユニットにエンコードされている場合は、多くのアルゴリズムは、より良い仕事をクラスが存在する場合には一定の値をとるクラスごとに定義します。高度な機能として、ClassificationDataSetは自動的にこの変換ん:私は理解していないよう

はしかし、これは満足のいく答えではないのいずれか、なぜ最初に手にしたクラスごとに複数の出力ニューロンが存在すべきです。

アップデート:私はkeras

2

ターゲット番号を使用することをお勧めします。この機能は、(001010100)にそれらを翻訳し、[0,1,2]です。これは、クラスがクラスごとに1つの出力単位にエンコードされていると、多くのアルゴリズムがうまく機能するためです。

関連する問題