0

2 つのクラス (良性と悪性) を持つ非常に不均衡なデータセットでランダム フォレスト分類子をトレーニングしようとしています。

以前の質問 ( Orange python パッケージでサンプルの重みを設定して使用する方法は? )のコードを見て、従い、マイノリティ クラスのデータ インスタンスにさまざまなより高い重みを設定しようとしましたが、取得した分類器は正確に機能します同じ。

私のコード:

data = Orange.data.Table(filename)
st = Orange.classification.tree.SimpleTreeLearner(min_instances=3)
forest = Orange.ensemble.forest.RandomForestLearner(learner=st, trees=40, name="forest")
weight = Orange.feature.Continuous("weight")
weight_id = -10
data.domain.add_meta(weight_id, weight)
data.add_meta_attribute(weight, 1.0)
for inst in data:
    if inst[data.domain.class_var]=='malign':
        inst[weight]=100
classifier = forest(data, weight_id)

何か不足していますか?

4

1 に答える 1

1

シンプル ツリー学習器はシンプルです。速度が最適化されており、重みをサポートしていません。重みをサポートしていないオレンジの学習アルゴリズムは、重み引数が指定されている場合、例外を発生させるはずだと思います。

クラス分布を変更するためだけにそれらが必要な場合は、代わりにデータ インスタンスを乗算します。新しいデータ テーブルを作成し、悪性腫瘍の各インスタンスの 100 のコピーを追加します。

于 2015-06-28T10:44:44.297 に答える