如何在Orange中使用随机森林分类器的样本权重?

时间:2015-06-24 13:05:00

标签: orange

我正在尝试在一个非常不平衡的数据集上训练一个随机森林分类器,这个数据集有两个类(良性恶性)。

我已经看到并遵循了上一个问题(How to set up and use sample weight in the Orange python package?)中的代码,并试图为少数类数据实例设置各种更高权重,但我得到的分类器完全相同。

我的代码:

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)

我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

简单的树学习者很简单:它针对速度进行了优化,不支持权重。我想在Orange中学习不支持权重的算法应该在指定权重参数时引发异常。

如果您只是需要更改类分布,请改为乘以数据实例。创建一个新的数据表,并为每个恶性肿瘤实例添加100份副本。