2016-11-09 83 views
0
集团

所以我有一个训练数据集是这样的(但更大):监督学习随机森林通过

 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,其余的最佳= 2。我的目标是使用这个训练数据预测每个组中哪个人是最好的(Best = 1),基于Var1和Var2。

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

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

+0

因为你的特点是'Var1'&'Var2',它会尝试从这些预测'Best'两列。它会独立预测每个样本,因此可能导致同一组中的许多样本。 – MMF

+0

好吧,我会尝试添加组和PID到功能,并看看是否会产生所需的结果。谢谢! – Nizag

+1

恐怕不会更好。你应该使用'OneHotEncoder'来编码特征'Group',否则它会排列它们之间的组,它确实意味着什么。为什么组111应该比组112更不重要(仅仅是因为111 <112') – MMF

回答

2

当一个特征是而不是一个有序的度量 - 比如离散分类 - 我们使用单热编码。这意味着原始特征的ñ类(不同的值),我们创建了一个家庭的ñ功能,到底是哪的一个将是“好”(通常),而另一些“坏“(通常为)。你可以看这是一组布尔函数: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 
+1

放弃'PID'。我不认为ID会给分类器带来任何重要的信息... – MMF

+0

为了完整性,我留在表中。您非常正确,它不应该成为评估中的一项功能。 – Prune

+0

这很有道理,谢谢!如果有大量不同的团体,是否会有记忆问题? – Nizag