当数据太多但需要全部时如何预处理我的数据?

问题描述 投票:-1回答:1

我实际上是从CS BS大学毕业的,而我的老板正在让我建立一个机器学习代理,以便我在两个月内从头开始将数据分类为23个类别。我只参加了一次AI入门课程,甚至没有涉及神经网络。我想我已经弄清楚了基础知识,但是我在准备数据以供输入模型时遇到了麻烦。

随时对此的(不)可行性发表评论,但这是上下文信息,而不是我的问题是什么。我对于Powerstrip型设备拥有的数据类型的示例是1列DeviceID(数字字符串,每个设备唯一),12列各种整数,指示正在使用的插座以及所消耗的功率,以及与设备所在位置相关的整数。我有这种类型的数据,我一直在考虑可以使用带有softmax层的RNN来分类。这将是监督学习。提到的列将作为输入,而整数1-23将作为输出。我需要模型查看一个时间范围并对其进行分类,其中将包括不同数量的行,因为设备数量不同,并且每个设备每分钟创建两次行。

我的问题是:对于一个示例时间范围,我从数据库中提取了35分钟的时间-时间范围可能从1分钟到几个小时不等-并且我得到了3,747个不同的行。显然,这太多了,无法将模型作为1个样本提供。如果PowerStrip上的使用时间从1分钟到下一分钟都没有变化,它将创建几行相同的行(时间戳除外)。当我删除时间戳记时,我得到了333个不同的行。这似乎仍然很糟糕,并且正在删除必要的时间数据。

我的问题是:这真的太多了吗?我从谷歌搜索中知道可以使用几行使其工作,但是当我不知道有多少行时可以这样做吗?即,不是说“看X行”,而是说“看X分钟行”作为1个样本?有经验的开发人员(或数据科学家?Idek)在这种情况下会做什么?作为一种替代方法,我没有尝试使用时间范围(由我们正在执行的数据/工作确定),而是在尝试在[请建议]分钟内使用滑动窗口,从中获取输出并使用这些时间范围作为输入以获取该时间范围的输出。那是一个可怕的主意吗?那行得通吗?该模型必须能够检测到由于一天中的时间,不同的人等导致的差异。

谢谢!

python machine-learning recurrent-neural-network softmax data-handling
1个回答
0
投票

首先,永远不要从神经网络开始,当您第一次开发带有标签数据的机器学习项目时(即使您有2个月的时间!)。

神经网络如今很流行,是的,它们相当糟糕,但是它们调试起来的时间太长了,大多数时候,Ensemble Learning就是您所需要的,并且在短时间内就可以得到很好的结果。

[在分析,清理,转换和标签编码数据之后(如果您的数据超出了RAM的处理能力,我建议您在此阶段使用Spark而不是熊猫),建议您从random forest classifier开始]或XGBoost。您可以尝试按每个类尝试使用Multiclass分类器或二进制模型,最后使用优化器从每个模型的输出中获取最可能的类。

一旦您的模型已经运行,您就可以微调每个模型的参数,并使用每个模型的功能重要性转储或更改不必要的功能。

© www.soinside.com 2019 - 2024. All rights reserved.