MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   资料存档 (https://www.labfans.com/bbs/forumdisplay.php?f=72)
-   -   在庞大的数据集上学习决策树 (https://www.labfans.com/bbs/showthread.php?t=22733)

poster 2019-12-10 16:49

在庞大的数据集上学习决策树
 
我正在尝试使用MATLAB从庞大的数据集(即无法存储在内存中)构建二进制分类决策树。本质上,我正在做的是:
[LIST=1][*]收集所有数据[*]在数据上试用[B]n个[/B]决策函数[*]选择[URL="https://stackoverflow.com/questions/1132805/weighted-decision-trees-using-entropy"]最佳决策函数[/URL]以分离数据中的类[*]将原始数据集拆分为2[*]拆分后递归[/LIST]数据具有[B]k个[/B]属性和一个分类,因此将其存储为具有[B]大量[/B]行和[B]k + 1[/B]列的矩阵。决策函数是布尔型的,并作用于将每一行分配给左或右子树的属性。

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

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

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


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



[url=https://stackoverflow.com/questions/1144929]更多&回答...[/url]


所有时间均为北京时间。现在的时间是 11:03

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