Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 在海量数据集上学习决策树_Matlab_Classification_Decision Tree - Fatal编程技术网

Matlab 在海量数据集上学习决策树

Matlab 在海量数据集上学习决策树,matlab,classification,decision-tree,Matlab,Classification,Decision Tree,我正试图用MATLAB从巨大的(即不能存储在内存中的)数据集中构建一个二叉分类决策树。基本上,我所做的是: 收集所有数据 在数据上尝试n决策函数 选择用于分隔数据中的类的 将原始数据集拆分为2个 在拆分上递归 数据具有k属性和分类,因此它存储为一个矩阵,具有大量的行和k+1列。决策函数是布尔函数,作用于将每一行分配给左或右子树的属性 现在,我正在考虑将文件中的数据存储在内存中的块中,并为每一行分配一个ID,这样就可以通过顺序读取所有文件来做出拆分的决定,并且未来的拆分由ID号标识 有人知道如何以

我正试图用MATLAB从巨大的(即不能存储在内存中的)数据集中构建一个二叉分类决策树。基本上,我所做的是:

  • 收集所有数据
  • 在数据上尝试n决策函数
  • 选择用于分隔数据中的类的
  • 将原始数据集拆分为2个
  • 在拆分上递归
  • 数据具有k属性和分类,因此它存储为一个矩阵,具有大量的行和k+1列。决策函数是布尔函数,作用于将每一行分配给左或右子树的属性

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

    有人知道如何以更好的方式做这件事吗


    编辑:行数m约为5e8,k约为500。在每次拆分时,您将数据集拆分为越来越小的子集。从单个数据文件开始。将其作为流打开,一次只处理一行,以确定要拆分的属性。拥有第一个决策函数后,将原始数据文件拆分为两个较小的数据文件,每个文件包含拆分数据的一个分支。重现。数据文件应该越来越小,直到您可以将其加载到内存中。这样,您就不必标记行并在一个巨大的数据文件中不断跳转。

    只是为了澄清:k不是巨大的,只有行数是巨大的?是的,行数,m>>k