如何在Orange python包中设置和使用样本重量?

How to set up and use sample weight in the Orange python package?

我是 Orange python 数据挖掘包的新手。我正在使用 Orange 2.7。

我的数据集有一个二元目标(好和坏)。 Good 实例以 10 的采样权重进行向下采样。如何在 Windows 和 Linux 版本的 Orange 中设置和使用权重进行分类分析?感谢您的帮助!

您必须向数据添加一个新的元列,其中包含实例权重(参见 Meta attributes and Table.add_meta_attribute。存储元列的 ID 并使用该元 ID 调用学习器。

import Orange
iris = Orange.data.Table("iris")
# Add some weights to the iris dataset
weight = Orange.feature.Continuous("weight")
weight_id = -10
iris.domain.add_meta(weight_id, weight)
iris.add_meta_attribute(weight, 1.0)
for i in range(50, 150):
     iris[i][weight] = 10

# Train a tree classifier on weighted data.
clsf = Orange.classification.tree.TreeLearner(iris, weight_id)

# Evaluate learner performance on weighted data
results = Orange.evaluation.testing.cross_validation(
    [Orange.classification.tree.TreeLearner,
     Orange.classification.bayes.NaiveLearner],
    (iris, weight_id)  # Note how you pass the weight id to testing functions
)
auc = Orange.evaluation.scoring.AUC(results)
ca = Orange.evaluation.scoring.CA(results)