首页 > 解决方案 > 如何在 sklearn 中的 RandomForestClassifier 中合并权重

问题描述

我有以下dataframe

import pandas as pd
import numpy as np

dt = pd.DataFrame({'var1': list(np.random.randint(1, 200, 300)), 'var2': list(np.random.randint(1, 200, 300)),
                   'weight': [1.25]*250 + [6.25]*50,
                   'target': ['a'] * 20 + ['b'] * 20 + ['c'] * 120 + ['d'] * 140,
                   'gender': ['M']*250 + ['F']*50})

我想对、targetusing和执行分类var1var2gender

如您所见,target变量是不平衡的(类的大小、 和a变化b)。cd

weight列包含使样本对总体具有代表性的观察(调查)权重(因为在我的数据集中5/6Males且仅1/6Females,而在现实世界中,比例Males/Females约为50/50

我的问题是,如何在合并weight列的同时使用 RF 进行分类?

包中的sample_weight参数sklearn将考虑到target我的数据集上变量的不平衡,我感兴趣的是,RF 是否有办法通过使用“加权基尼指数”之类的方法在决策树中进行拆分" 来计算节点的杂质,而不仅仅是平均地“加权”所有观测值的基尼指数

标签: pythonmachine-learningscikit-learnclassificationrandom-forest

解决方案


推荐阅读