在回归模型中结合虚拟变量的影响

时间:2017-04-18 23:14:37

标签: python sas regression random-forest dummy-variable

我正在使用Python Sklearn构建一个包含大约300个功能的回归模型。其中一个功能有超过100个类别,我最终有~100个虚拟列用于此功能。现在每个虚拟列都有自己的系数,或功能排名分数(如果使用随机森林或xgb) - 这是我的东西不喜欢。但是,当我在SAS JMP中创建相同的模型时,它为我提供了100个类别的功能的单个功能评分 - 显然会自动处理类别。有人能告诉我SAS JMP如何将100个虚拟变量的系数/特征重要性组合成一个度量。我怎样才能在Python中实现同样的目标。

2 个答案:

答案 0 :(得分:1)

我不确定SAS JMP是如何做到的,但我认为它不使用虚拟变量。基于树的模型实际上本身支持分类数据,它只是没有由sklearn(yet)实现。此外,至少在某些情况下,引入虚拟变量会降低模型的准确性,如this blog post所示。

您可以考虑使用其他软件包,例如博文(H2O)使用的软件包。

答案 1 :(得分:0)

您可以使用google SAS STAT手册/用户指南。查看那里支持Class语句的任何主要回归程序。在Class下面详细介绍了Reference ...选项。它们都详细说明了如何设计出一个设计矩阵。你喂100个假人的方式必须明显足以触发JMP回滚到一个临时类变量,该变量重新设计回一个变量。如果您想知道JMP是如何触发回滚的,请访问JMP网站并打开技术支持跟踪。但机械上我确信这就是发生的事情。