【问题标题】:Generating Data Set in Matlab在 Matlab 中生成数据集
【发布时间】:2014-05-21 08:09:46
【问题描述】:

我想问如何在Matlab中生成一个数据集。我需要它来测试高维数据上的特征选择算法……数据集应该是合成的、多元的并包含交互特征。 http://archive.ics.uci.edu/ml/datasets/MONK%27s+Problems 上提供了像 MONKS 问题这样的合成数据集....不幸的是,我不知道如何根据需要可视化/生成和修改数据。目标是运行一种检测交互特征的算法。 非常感谢您的友好回复。

【问题讨论】:

    标签: matlab dataset generator feature-selection synthetic


    【解决方案1】:

    我不确定这是否是您要查找的内容,但如果我需要这样做,我会首先生成可以在数据集中随机应用的匿名函数和通用变量名称。

    例如,您可以生成一个数据集:

    myData = rand(100,6);
    

    并创建一些包含相互依赖关系的函数

    interact = @(x) x*x;
    interact2 = @(x) x*(x-1);
    

    然后创建一个随机的逻辑分布 y = 圆形(兰德(100,1)); %(100行随机0或1)

    遍历数据集并仅在 y 为 true 的行上使用交互函数 数据集(y == 1,:) = 交互(数据集(y==1,:));

    如果您愿意,请使用您定义的其他交互功能重复上述操作。这样做可能会很有用,这样您就可以避免行依赖(见下文),因此可以按顺序生成一些数据集,即 数据集2(y==1,:) = 交互2(数据集(y==1,:));

    可以对变量采取类似的方法(在示例集中,它显示了一些分类变量)。

    myVariable = repmat('data', 100, 1);
    listofvariables = genvarname(cellstr(myVariable));
    
    y = round(rand(100,1));     % logical index for the data
    

    随机选择一个泛型变量进行重复 applyvar = round(rand(1,1)*100); selectedVariable = listofvariables(applyvar);

    用重复的变量替换变量列表的索引 listofvariables(y == 1) = selectedVariable;

    按照您选择的顺序将数据集放在一起

        [cellstr(num2str(dataset(:,1))) listofvariables cellstr(num2str(dataset(:,2)) cellstr(num2str(dataset2(:,2))]
    

    【讨论】:

      猜你喜欢
      • 2012-04-22
      • 2023-03-19
      • 2012-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-20
      • 2014-04-08
      相关资源
      最近更新 更多