我是机器学习的初学者,正在开始一个 ML 项目。我有大量的源材料并开始从中提取数据以存储在 SQL 中(使用 SQLite 进行初始测试,但这对于生产来说是不够的)。
我现在面临的我找不到任何答案的问题是如何扩展预处理我存储的数据以获得最佳性能?
例如,ML 方法通常不擅长处理类别,需要它们在许多显示类别的列中更像是 0/1 值,而不是在单个列中将类别作为字符串。由于我对单行有许多不同的此类情况,这意味着 SQL 中有很多额外的列来实现这种预处理。我还将对数据使用不同的 ML 方法,例如回归和分类,因此可能很难预测准确的预处理要求。
数据由百分比、时间、类别、字符串标签等组成。无论我事先做了多少预处理,从数据库检索后我都必须做一些额外的处理,因为一些预处理不可行(甚至不可能)存储在 SQL 中完全准备好。% 当然很容易,但是对于许多其他形式的数据,我什么时候做这件事仍然让我难以理解。
设置是用于日常数据检索(小更新)、数据提取和存储、建模(未知更新间隔)和预测(每天多次)的单机。由于我将使用许多不同的模型和汇总预测结果,因此我非常渴望拥有高性能而不必为此发疯。我使用 Python 工作,但如果可以显示出显着的收益,我可以转换类似 c/Java 的语言。目前的估计是大约 1000 万个数据点,但如果按类别划分,这个数字很容易达到这个数字的 10 倍。
由于我是新来的,我认为如果我在确定 SQL 中数据的最佳格式应该是什么时遗漏了任何相关的内容,那么您要求澄清是公平的。我意识到性能不如预期的那么清晰,但我不知道瓶颈会是什么。与需要额外的机器来运行部分过程相比,像一些额外的 RAM 这样的小投资并不是真正的瓶颈。