我有以下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})
我想使用target
,var1
和var2
对gender
进行分类
您可以看到target
变量是不平衡的(类a
,b
,c
和d
的大小不同)。
weight
列包含观察(调查)权重,该权重使样本可以代表总体(因为在我的数据集5/6
中,Males
是1/6
Females
,而在现实世界中,Males/Females
的比例约为50/50
)
我的问题是,如何在合并weight
列的同时使用RF进行分类?
sample_weight
软件包中的sklearn
参数将考虑数据集上target
变量的不平衡,但我感兴趣的是,是RF是否有办法通过使用“加权基尼系数”之类的方法来计算节点的杂质,而不只是使用对所有观测值均等“加权”的基尼系数来在决策树中进行拆分