mysql – 你如何在Ruby中处理一个非常大的向量?

我打算用Ruby编写一个程序来分析一些从在线调查问卷中回来的数据.有数十万条回复,每位受访者回答大约200个问题.每个问题都是多项选择,因此每个问题都有固定数量的可能响应.目的是使用每个受访者给出的一个人口统计数...

我打算用Ruby编写一个程序来分析一些从在线调查问卷中回来的数据.有数十万条回复,每位受访者回答大约200个问题.每个问题都是多项选择,因此每个问题都有固定数量的可能响应.

目的是使用每个受访者给出的一个人口统计数据来训练一个系统,该系统然后可以从回答相同问卷但没有指定人口统计的受访者那里猜测相同的人口统计数据(例如年龄).数据.

因此,我计划使用向量(在数学意义上,而不是在数据结构意义上)来表示给定受访者的答案.这意味着每个向量将很大(超过200个元素),并且总数据集将是巨大的.我计划将数据存储在MySQL数据库中.

所以. 2个问题:

>我应该如何将其存储在数据库中?每回复一行一行,或每个受访者一行?或者是其他东西?
>我打算使用像k-最近邻算法这样的东西,或像天真的贝叶斯分类器这样的简单机器学习算法来学习对新响应进行分类.我应该纯粹通过SQL操作数据还是应该将其加载到内存中并将其存储在某种大型数组中?

解决方法:

首先想到的是:将其存储在内存中对于处理目的来说绝对合理.假设您为每个答案保留一个字节,您有一百万个响应和200个问题,那么您有一个200 MB的数组.即使使用32位操作系统,在现代桌面上也不小但绝对不会耗费内存.

至于数据库,我认为你应该有三个表.一个用于具有人口统计数据的受访者,一个用于问题,并且,由于这些表之间具有n:m关系,第三个具有Respondent-ID,Question-ID和Answercode.

如果您不需要问题的其他数据(例如问题文本或其他内容),您甚至可以优化问题表.

本文标题为:mysql – 你如何在Ruby中处理一个非常大的向量?