我打算用Ruby编写一个程序来分析一些从在线调查问卷中回来的数据.有数十万条回复,每位受访者回答大约200个问题.每个问题都是多项选择,因此每个问题都有固定数量的可能响应.
目的是使用每个受访者给出的一个人口统计数据来训练一个系统,该系统然后可以从回答相同问卷但没有指定人口统计的受访者那里猜测相同的人口统计数据(例如年龄).数据.
因此,我计划使用向量(在数学意义上,而不是在数据结构意义上)来表示给定受访者的答案.这意味着每个向量将很大(超过200个元素),并且总数据集将是巨大的.我计划将数据存储在MySQL数据库中.
所以. 2个问题:
>我应该如何将其存储在数据库中?每回复一行一行,或每个受访者一行?或者是其他东西?
>我打算使用像k-最近邻算法这样的东西,或像天真的贝叶斯分类器这样的简单机器学习算法来学习对新响应进行分类.我应该纯粹通过SQL操作数据还是应该将其加载到内存中并将其存储在某种大型数组中?
解决方法:
首先想到的是:将其存储在内存中对于处理目的来说绝对合理.假设您为每个答案保留一个字节,您有一百万个响应和200个问题,那么您有一个200 MB的数组.即使使用32位操作系统,在现代桌面上也不小但绝对不会耗费内存.
至于数据库,我认为你应该有三个表.一个用于具有人口统计数据的受访者,一个用于问题,并且,由于这些表之间具有n:m关系,第三个具有Respondent-ID,Question-ID和Answercode.
如果您不需要问题的其他数据(例如问题文本或其他内容),您甚至可以优化问题表.
原文地址:https://codeday.me/bug/20190726/1548646.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。