2017-07-08 120 views
1

我有一个问题,它与现实世界中的机器学习应用有关。这可能听起来很愚蠢。为机器学习提供数据的替代方法(除使用CSV文件外)

我一直在自学机器学习了一段时间,大部分练习都是使用csv文件作为数据源(处理过的和原始的)。我想问问除了导入csv文件之外,还有其他什么方法可以为机器学习提供/提供数据?

示例:实时流式传输Facebook/Twitter实时馈送的机器学习数据,而不是收集旧数据并将其存储到CSV文件中。

回答

2

数据源可以是任何东西。通常,它以CSV或JSON文件形式提供。但是在现实世界中,假设你有像Twitter这样的网站,就像你提到的那样,你会将数据存储在一个理性的数据库中,比如SQL数据库,以及一些数据,你会把它们放在一个in - 内存缓存。

你基本上可以利用这两个来检索你的数据并处理它。这里的事情是,当你有太多的数据不适合内存时,你不能真正地查询所有内容并进行处理,在这种情况下,你将利用一些智能算法来处理数据块。

关于某些数据库(如SQL)的好处是,它们为您提供了一组函数,您可以在SQL脚本中正确调用该函数以有效计算某些数据。例如,您可以在整个表格中获得一列数据或使用SUM()函数SQL,这可以实现高效且简单的数据处理

+0

要放入内存高速缓存的数据?这是训练数据集吗?假设来自内存训练数据的机器学习学习模式和关于关系数据库的数据预测? –

+1

@不好笑训练数据集是您的算法处理以形成预测函数的数据集。处理它可以是块,例如你从DB加载100行,处理它们,放弃它们,然后加载另一个100,或者,在一次运行中加载它们,通过加载所有行并在一旦。您将使用哪一个取决于您的算法,但您必须考虑这样一个事实,即由于编程语言中的变量存储在RAM中,所以有时您无法查询所有数据,因为这些数据可能不适合RAM。 – OverCoder

+1

@不好笑例如'Batch Gradient Descend'需要一次处理所有数据,但是如果您有超大型数据集,那么您可以使用'Stochastic Gradient Descend',它以块为单位处理数据。 – OverCoder

相关问题