Python-决策树和处理独特的标签/功能



不确定标题是否完全有意义,请为此感到抱歉。我是机器学习的新手,并且正在使用Scikit和决策树。

这是我想做的;我想获取所有输入,并包含一个独特的功能,即客户ID。现在,客户端ID是唯一的,无法以决策树分析中功能的正常方式概括。现在正在发生的事情是,树将客户端ID作为其他整数值,然后分支它说,例如,客户ID的少于430的路径与430岁以上的路径不同。这不是正确的,而不是我想要的去做。我想做的是让决策树了解不能以这种方式分析特定字段,每个客户都将拥有自己的分支。决策树是否可以吗?

我确实有几个解决方法,其中之一是为每个客户开发独特的决策树,但是训练这将是一场噩梦。我也可以进行另一个解决方法,可以说我们有800个客户,我会创建800个功能,但这也很疯狂。

这是机器学习中相当普遍的问题。在任何情况下,机器学习功能都不是每个实例唯一的。直观地,这是有道理的;如果算法不能从该功能中推断出任何内容,则该算法不会学习。

您可以做的只是在通过其余功能之前将该信息与决策树分开,然后在制作后重新确定ID和预测。

我会强烈阻止对特征向量的任何形式的操纵,以任何形式包含ID。功能仅被认为是算法应该用来做出决策的东西。不要提供您不希望使用的信息。您想避免使用ID作为功能,因为(很可能)ID与您要预测的任何内容无关。

如果您确实需要单个模型(并且为每个用户提供足够的数据),那么它的痛苦并不像您想的那样大。您可以使用Scikit的模型保存功能,以及将泡菜保存到MySQL以轻松创建和存储个性化模型的答案。除非您有大量的用户,否则创建个性化的决策树应该不需要很长时间。

相关内容

  • 没有找到相关文章

最新更新