Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在sklearn中处理具有多个值的分类数据_Python_Pandas_Scikit Learn_Categorical Data - Fatal编程技术网

Python 在sklearn中处理具有多个值的分类数据

Python 在sklearn中处理具有多个值的分类数据,python,pandas,scikit-learn,categorical-data,Python,Pandas,Scikit Learn,Categorical Data,我试图通过各种功能预测客户保留率 其中一个是org_id,它表示客户所属的组织。它当前是一个浮点列,数字范围从0.0到416.0,并且具有417个唯一值 我想知道在将此专栏提供给scikit学习分类器之前,对其进行预处理的最佳方法是什么。一般来说,我会对分类特征进行热编码,但是这里有太多的值,所以它会从根本上增加我的数据维度。我有12000行数据,所以我可能还可以,而且只有大约10个其他特性 替代方法是使用浮点值保留列,将浮点值转换为int值,或将浮点值转换为pandas的分类对象 任何提示都非

我试图通过各种功能预测客户保留率

其中一个是org_id,它表示客户所属的组织。它当前是一个浮点列,数字范围从0.0到416.0,并且具有417个唯一值

我想知道在将此专栏提供给scikit学习分类器之前,对其进行预处理的最佳方法是什么。一般来说,我会对分类特征进行热编码,但是这里有太多的值,所以它会从根本上增加我的数据维度。我有12000行数据,所以我可能还可以,而且只有大约10个其他特性

替代方法是使用浮点值保留列,将浮点值转换为int值,或将浮点值转换为pandas的分类对象


任何提示都非常感谢

org\u id
似乎不是为分类带来任何信息的功能,您应该删除此值,而不是将其传递到分类器中

在分类器中,您只希望传递对您尝试执行的任务有区别的特征:这里是可能影响保留或搅动的元素。在这种情况下,公司ID不会带来任何有价值的信息,因此不应使用

编辑以下OP评论:

在进一步讨论之前,让我们陈述一下:关于样本数量(12000)和模型的相对简单性,可以多次尝试轻松地尝试不同的功能配置

所以,作为一个基准,我会像我之前说的那样,把这个特性放在一起。这是您的基线分数,即您可以比较其他功能组合的分数

我认为尝试热编码
org\u id
不需要任何成本,无论你观察到的结果是什么,都将增加你对随机林在这种情况下的行为的经验和知识。由于您只有10个以上的功能,布尔功能
是组织id\u 1
是组织id\u 2
。。。将具有高度优势,并且分类结果可能受到这些特征的高度影响

然后,我会尝试通过寻找能够“描述”这400多个组织的新功能来减少布尔功能的数量。例如,如果他们只是美国组织,他们的状态是大约50个特征,或者他们的用户数量(这将是一个单一的数字特征),他们的存在年限(另一个单一的数字特征)。让我们注意到,这些只是说明创建新功能过程的示例,只有了解全部问题的人才能以智能的方式设计这些功能


另外,我会发现有趣的是,一旦你解决了你的问题,你回到这里,为你的问题写下另一个答案,我相信,许多人在处理真实数据时会遇到这样的问题:)

org\u id
似乎不是一个为分类带来任何信息的功能,您应该删除该值,而不是将其传递到分类器中

在分类器中,您只希望传递对您尝试执行的任务有区别的特征:这里是可能影响保留或搅动的元素。在这种情况下,公司ID不会带来任何有价值的信息,因此不应使用

编辑以下OP评论:

在进一步讨论之前,让我们陈述一下:关于样本数量(12000)和模型的相对简单性,可以多次尝试轻松地尝试不同的功能配置

所以,作为一个基准,我会像我之前说的那样,把这个特性放在一起。这是您的基线分数,即您可以比较其他功能组合的分数

我认为尝试热编码
org\u id
不需要任何成本,无论你观察到的结果是什么,都将增加你对随机林在这种情况下的行为的经验和知识。由于您只有10个以上的功能,布尔功能
是组织id\u 1
是组织id\u 2
。。。将具有高度优势,并且分类结果可能受到这些特征的高度影响

然后,我会尝试通过寻找能够“描述”这400多个组织的新功能来减少布尔功能的数量。例如,如果他们只是美国组织,他们的状态是大约50个特征,或者他们的用户数量(这将是一个单一的数字特征),他们的存在年限(另一个单一的数字特征)。让我们注意到,这些只是说明创建新功能过程的示例,只有了解全部问题的人才能以智能的方式设计这些功能


另外,我会发现有趣的是,一旦你解决了问题,你会回到这里,为你的问题写下另一个答案。我相信,很多人在处理真实数据时都会遇到这样的问题:)

谢谢你的回答。我理解你的观点,这是一个很好的观点。但我有两点回应:1)假设组织id确实带来了分类信息,你会如何处理?i、 e.我一般如何解决这个问题?;2) 实际上,我并没有试图预测保留率本身,而是试图确定数据集中的哪些因素可以预测未来的用户保留率。我的想法是为这些数据创建一个随机森林分类器,然后从分类器中获取特征重要性,这样我就可以确定哪些因素可以预测未来的用户保留率。谢谢你的提示。为了总结你的观点,我有3个选择:1)删除该列;2) 一个热编码;3) 提出除id之外的其他功能。很好的建议。我应该提到的是,我并不是在处理一个“真正”的问题,因为这是一个带回家的挑战数据集,除了组织id之外,我没有访问组织数据的权限。所以我不能做3。根据我自己的阅读,我认为binning是标准的方法