我正在尝试使用 MATLAB 从巨大的(即不能存储在内存中的)数据集构建二元分类决策树。本质上,我正在做的是:
- 收集所有数据
- 在数据上尝试n 个决策函数
- 选择最佳决策函数来分离数据中的类
- 将原始数据集拆分为 2
- 在拆分上递归
数据有k个属性和一个分类,所以它被存储为一个包含大量行和k+1列的矩阵。决策函数是布尔值,作用于将每一行分配给左子树或右子树的属性。
现在我正在考虑将文件中的数据存储在可以保存在内存中的块中,并为每一行分配一个 ID,以便通过顺序读取所有文件来决定拆分,并且未来的拆分由 ID 号标识。
有谁知道如何以更好的方式做到这一点?
编辑:行数 m 约为 5e8 而 k 约为 500