【问题标题】:How to use sample weights for a random forest classificator in Orange?如何在 Orange 中使用样本权重进行随机森林分类?
【发布时间】:2015-06-28 18:44:44
【问题描述】:

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

我已经看到并遵循了上一个问题 (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)

我错过了什么吗?

【问题讨论】:

    标签: orange


    【解决方案1】:

    简单的树学习器很简单:它针对速度进行了优化,并且不支持权重。我猜如果指定了 weight 参数,Orange 中不支持权重的学习算法应该会引发异常。

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

    【讨论】:

      猜你喜欢
      • 2014-03-08
      • 2016-05-25
      • 2015-09-23
      • 2019-11-26
      • 2014-03-25
      • 2018-12-25
      • 1970-01-01
      • 2016-06-27
      • 2019-09-05
      相关资源
      最近更新 更多