如何在sklearn中的RandomForestClassifier中合并权重

时间:2019-12-03 16:17:07

标签: python machine-learning scikit-learn classification random-forest

我有以下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})

我想使用targetvar1var2gender进行分类

您可以看到target变量是不平衡的(类abcd的大小不同)。

weight列包含观察(调查)权重,该权重使样本可以代表总体(因为在我的数据集5/6中,Males1/6 Females,而在现实世界中,Males/Females的比例约为50/50

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

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

0 个答案:

没有答案