python - 按组监督学习随机森林

标签 python pandas machine-learning scikit-learn

所以我有一个像这样的训练数据集(但更大):

       Group   PID  Var1  Var2  Best
    0    111     1     1     1     1
    1    111     2     2     1     2
    2    111     3     1     2     2
    3    112     1     1     2     2
    4    112     2     2     1     1
    5    113     1     1     2     2
    6    113     2     1     1     2
    7    113     3     2     1     1
    8    113     4     3     2     2

其中每个组(共享组号的行)包含一个人员列表(每个组内每个唯一的 PID),并且组内一个人的 Best = 1,其余的 Best = 2。我的目标是使用此训练数据根据 Var1 和 Var2 预测每组中哪一个人是最好的(Best = 1)。

我尝试过使用 Scikit learn 并尝试使用随机森林模型来预测测试数据的 Best,但它不考虑组,并且可以为每组多个 PID 分配 Best = 1。

我想知道如何训练/运行模型,以便它学会为每组分配一个 Best = 1,而不是在所有行和组中分配它。为我指明有用资源的方向就好,因为我不确定在哪里寻求帮助。

最佳答案

当某个特征不是有序的度量(例如离散分类)时,我们使用 one-hot 编码。这意味着对于原始特征的N个类别(不同的值),我们创建一个N个特征族,其中一个将是“好”(通常为1),而其他为“坏”(通常为0)。您可以将其理解为一组 bool 函数:isGroup111()、isGroup112()、...

   Group111 Group112 Group113   PID  Var1  Var2  Best
0     1        0        0        1     1     1     1
1     1        0        0        2     2     1     2
2     1        0        0        3     1     2     2
3     0        1        0        1     1     2     2
4     0        1        0        2     2     1     1
5     0        0        1        1     1     2     2
6     0        0        1        2     1     1     2
7     0        0        1        3     2     1     1
8     0        0        1        4     3     2     2

关于python - 按组监督学习随机森林,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40510987/

相关文章:

python - 为什么socket.inet_ntoa在python中返回打包格式

python - Tensorflow/Keras : Model accuracy during training is always 0. 5 输入大小与第一个官方教程不同

Python - 如何组合/连接/连接 pandas 系列变量忽略空变量

matlab - 使用 MATLAB 中的 PRTools 计算未知错误分类的后验分布

python - 如何使用分类器算法对单个文本进行分类

machine-learning - 如何从 RGB 中获取真实颜色

python - 如何使用 py.test 正确导入包?

python - 捕获两个单词之间的字符串,但只有第一次

python - 合并数据框行以填充缺失的数据

python - Pandas Dataframe - 在字符串中查找字符串的出现