代码之家  ›  专栏  ›  技术社区  ›  Jacob

在大型数据集上学习决策树

  •  3
  • Jacob  · 技术社区  · 16 年前

    我正试图用Matlab构建一个大型(即不能存储在内存中的)数据集的二进制分类决策树。基本上,我要做的是:

    1. 收集所有数据
    2. 试行 n 数据上的决策函数
    3. 挑出 best decision function 分离数据中的类
    4. 将原始数据集拆分为2
    5. 在劈叉处重复

    数据有 K 属性和分类,因此它存储为具有 巨大的 行数,以及 K+ 1 柱。决策函数是布尔函数,作用于将每一行分配给左或右子树的属性。

    现在,我正在考虑将数据存储在可以保存在内存中的文件块中,并为每一行分配一个ID,这样就可以通过按顺序读取所有文件来决定拆分,未来的拆分通过ID号来标识。

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

    编辑:行数m在5e8左右,k在500左右

    1 回复  |  直到 14 年前
        1
  •  2
  •   Donnie DeBoer    16 年前

    在每次拆分时,您都将数据集拆分为越来越小的子集。从单个数据文件开始。将其作为流打开,一次只处理一行,以确定要拆分的属性。一旦有了第一个决策功能,就可以将原始数据文件拆分为两个较小的数据文件,每个文件都包含拆分数据的一个分支。复发。数据文件应该越来越小,直到您可以将它们加载到内存中。这样,您就不必标记行并在一个巨大的数据文件中不断地跳跃。

    推荐文章