您可以将样本权重参数传递给随机森林拟合方法
sample_weight : array-like, shape = [n_samples] or None
样品重量。如果为None,则对样本进行平均加权。在每个节点中搜索拆分时,将忽略创建净净值为零或负权重的子节点的拆分。在分类的情况下,如果拆分会导致任何单个类在任一子节点中都具有负权重,则也将忽略拆分。
在较旧的版本中,存在一种
preprocessing.balance_weights为给定样本生成平衡权重的方法,以使类别变得均匀分布。它仍然存在,在内部但仍可用的preprocessing._weights模块中,但已不建议使用,并将在以后的版本中删除。不知道确切的原因。
更新资料
有些澄清,您似乎很困惑。
sample_weight一旦记住它的目的是平衡训练数据集中的目标类别,用法就很简单。也就是说,如果您具有
X作为观测值和
y作为类(标签),则
len(X)== len(y) == len(sample_wight)和
sample witght1维数组的每个元素代表对应对的权重
(observation,label)。对于您的情况,如果将
1类表示为
0类的5次,并且平衡类分布,则可以使用简单
sample_weight = np.array([5 if i == 0 else 1 for i in y])
分配
5所有
0实例的权重和
1所有
1实例的权重。请参阅上面的链接以获取更多巧妙的
balance_weights权重评估功能。



