Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
 
 
主题工具 显示模式
旧 2019-12-10, 16:49   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 在庞大的数据集上学习决策树

我正在尝试使用MATLAB从庞大的数据集(即无法存储在内存中)构建二进制分类决策树。本质上,我正在做的是:
  1. 收集所有数据
  2. 在数据上试用n个决策函数
  3. 选择最佳决策函数以分离数据中的类
  4. 将原始数据集拆分为2
  5. 拆分后递归
数据具有k个属性和一个分类,因此将其存储为具有大量行和k + 1列的矩阵。决策函数是布尔型的,并作用于将每一行分配给左或右子树的属性。

现在,我正在考虑将数据分块存储在文件中,然后将其存储在内存中,并为每行分配一个ID,以便通过顺序读取所有文件来决定进行拆分,并通过ID号来标识将来的拆分。

有谁知道如何以更好的方式做到这一点?

编辑:行数m约为5e8,k约为500


回答:
在每次拆分时,您都将数据集分成越来越小的子集。从单个数据文件开始。将其作为流打开,一次只处理一行,以找出要拆分的属性。获得第一个决策功能后,将原始数据文件拆分为2个较小的数据文件,每个文件均包含拆分数据的一个分支。递归。数据文件应该越来越小,直到您可以将它们加载到内存中。这样,您就不必标记行并在大型数据文件中继续跳转。



更多&回答...
poster 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 22:48


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.