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

我打算用Ruby编写一个程序来分析一些从在线调查问卷中回来的数据.有数十万条回复,每位受访者回答大约200个问题.每个问题都是多项选择,因此每个问题都有固定数量的可能响应.
目的是使用每个受访者给出的一个人口统计数据来训练一个系统,该系统然后可以从回答相同问卷但没有指定人口统计的受访者那里猜测相同的人口统计数据(例如年龄).数据.
因此,我计划使用向量(在数学意义上,而不是在数据结构意义上)来表示给定受访者的答案.这意味着每个向量将很大(超过200个元素),并且总数据集将是巨大的.我计划将数据存储在MySQL数据库中.
所以. 2个问题:
>我应该如何将其存储在数据库中?每回复一行一行,或每个受访者一行?或者是其他东西?
>我打算使用像k-最近邻算法这样的东西,或像天真的贝叶斯分类器这样的简单机器学习算法来学习对新响应进行分类.我应该纯粹通过SQL操作数据还是应该将其加载到内存中并将其存储在某种大型数组中?
解决方法:
首先想到的是:将其存储在内存中对于处理目的来说绝对合理.假设您为每个答案保留一个字节,您有一百万个响应和200个问题,那么您有一个200 MB的数组.即使使用32位操作系统,在现代桌面上也不小但绝对不会耗费内存.
至于数据库,我认为你应该有三个表.一个用于具有人口统计数据的受访者,一个用于问题,并且,由于这些表之间具有n:m关系,第三个具有Respondent-ID,Question-ID和Answercode.
如果您不需要问题的其他数据(例如问题文本或其他内容),您甚至可以优化问题表.
本文标题为:mysql – 你如何在Ruby中处理一个非常大的向量?


基础教程推荐
- 如何将mysql数据库文件连接到Rails应用程序上的本地ruby 2023-09-21
- 解决R语言中install_github中无法安装遇到的问题 2022-11-26
- R语言向量下标和子集的使用 2022-12-10
- 详解swift中xcworkspace多项目管理 2023-07-05
- R语言的一个加法函数使用介绍 2022-11-14
- 汇编语言:比较指令、跳转指令、JCC的使用 2023-07-06
- 深入探究Golang中log标准库的使用 2023-07-25
- ruby – 如何使用Nginx,Passenger,Sinatra创建多个位置 2023-09-20
- R语言入门使用RStudio制作包含Rcpp代码的R包 2022-12-05
- R语言因子型数值转数值型的操作 2022-11-23