Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.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
Machine learning 如何在将类数据(具有大量唯一值)输入机器学习模型之前对其进行预处理?_Machine Learning_Neural Network_Artificial Intelligence_One Hot Encoding - Fatal编程技术网

Machine learning 如何在将类数据(具有大量唯一值)输入机器学习模型之前对其进行预处理?

Machine learning 如何在将类数据(具有大量唯一值)输入机器学习模型之前对其进行预处理?,machine-learning,neural-network,artificial-intelligence,one-hot-encoding,Machine Learning,Neural Network,Artificial Intelligence,One Hot Encoding,比如说,我有一个在线游戏平台(如steam)的大量数据,其中有“日期、用户id、玩的小时数、没有玩的游戏数”,我必须编写一个模型来预测用户在给定日期未来玩的小时数。现在,user_id有大量的唯一值(以百万为单位)。我知道对于类数据,我们可以使用一种热编码,但不确定当我有数百万个唯一类时该怎么办。另外,建议我们是否可以使用任何其他方法来预处理数据。直接在模型中使用用户id不是一个好主意,因为这会导致像您所说的那样大量的功能,但也会导致过度拟合,因为您每行可以获得一个id(如果我正确理解您的数据)

比如说,我有一个在线游戏平台(如steam)的大量数据,其中有“日期、用户id、玩的小时数、没有玩的游戏数”,我必须编写一个模型来预测用户在给定日期未来玩的小时数。现在,user_id有大量的唯一值(以百万为单位)。我知道对于类数据,我们可以使用一种热编码,但不确定当我有数百万个唯一类时该怎么办。另外,建议我们是否可以使用任何其他方法来预处理数据。

直接在模型中使用用户id不是一个好主意,因为这会导致像您所说的那样大量的功能,但也会导致过度拟合,因为您每行可以获得一个id(如果我正确理解您的数据)。它还将使您的模型在出现新用户id的情况下变得无用,并且您必须在每次有新用户时重新培训您的模型

首先,我建议删除这个变量,并尝试只使用其他变量构建一个模型

您可以尝试的另一个想法是基于其他功能对您拥有的用户执行集群,然后将集群作为功能而不是用户id传递,但我不知道这是否是一个好主意,因为我不知道您拥有的数据类型


此外,您正在谈论对给定日期进行预测。您描述的数据并不表明,但如果您有多个日期的小时数,这更接近于时间序列预测问题,这与“经典”回归问题不同。

您已经尝试过什么?你得到了什么错误?我没有尝试过任何东西,我不知道用什么来嵌入大量的类。在这种情况下,一个热编码器将如何工作?我的一个朋友尝试了一个用于20k类的热编码器,但在使用scikit learn时出现了一些错误。错误与大小有关@阿卡斯