Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.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
在这些数据集之间,用R进行深度学习导致MAE结果差异的原因是什么?_R_Machine Learning_Keras_Deep Learning - Fatal编程技术网

在这些数据集之间,用R进行深度学习导致MAE结果差异的原因是什么?

在这些数据集之间,用R进行深度学习导致MAE结果差异的原因是什么?,r,machine-learning,keras,deep-learning,R,Machine Learning,Keras,Deep Learning,我试图用另一个来源的相同波士顿住房数据集复制下面的深度学习示例 最初,数据源是: library(keras) dataset <- dataset_boston_housing() 数据集之间的差异如下: mlbench中的数据集包含列名 来自keras的数据集已在测试和训练之间分割 来自keras的数据集由包含矩阵的列表组织,而来自mlbench的数据集是一个数据帧 第四列包含一个分类变量“chas”,该变量无法从mlbench数据集预处理,而可以从keras数据集预处理。为了比较

我试图用另一个来源的相同波士顿住房数据集复制下面的深度学习示例

最初,数据源是:

library(keras) dataset <- dataset_boston_housing()
数据集之间的差异如下:

  • mlbench中的数据集包含列名
  • 来自keras的数据集已在测试和训练之间分割
  • 来自keras的数据集由包含矩阵的列表组织,而来自mlbench的数据集是一个数据帧
  • 第四列包含一个分类变量“chas”,该变量无法从mlbench数据集预处理,而可以从keras数据集预处理。为了比较苹果和苹果,我从两个数据集中删除了这一列
  • 为了比较这两个数据集,我将来自keras的train和testset合并到一个数据集中。在此之后,我将keras的合并数据集与mlbench和summary()进行了比较,它们对于每个特征都是相同的(最小值、最大值、中值、平均值)

    由于来自keras的数据集已经在测试和训练(80-20)之间分割,我只能使用一个训练集来进行深度学习。该训练集的验证平均误差约为2.5。见下图:

    如果我将mlbench中的数据划分为0.8,以构建一个类似大小的训练集,运行深度学习代码并多次执行此操作,我永远不会达到2.5左右的验证值。范围在4到6之间。输出示例如下所示:

    有人知道造成这种差异的原因吗

    使用来自keras的数据集进行编码:

    
    图书馆(keras)
    
    数据集写在这里,因为我不能评论。。。 我检查了mlbench数据集,它说,它包含原始boston数据集的14列和另外5列。不确定是否有错误的数据集,因为您声明数据集的列计数没有差异

    另一种猜测可能是,第二个示例图来自一个陷入局部极小的模型。要获得更具可比性的模型,您可能需要使用相同的种子,以确保权重等的日化是相同的,从而获得相同的结果


    希望这对您有所帮助,请随意提问。

    谢谢Fabian。我使用了14列的数据集,因为该数据集与Keras数据集相同。下载后,Keras数据集已在测试和训练中拆分。我无法使用mlbench数据集复制此精确拆分。出于这个原因,我故意在没有相同种子的情况下多次使用mlbench数据集重新运行代码,尽管它从未从keras数据集达到MAE 2.5。因此,您的样本量非常小……您是否已经比较了mlbench和keras数据集列车集的每个特征的summary()?因为你的代码看起来很好。是的,请看我上面的文字。它们完全相同。我可以想象,由于样本量小,结果是不稳定的,尽管奇怪的是,我从来没有达到2.5,并保持在4到6之间。因此,我想知道Keras是否会因为dataframe vs matrix或类似的原因而对这两个数据集进行不同的处理。我还向Keras数据集添加了列标题(类似于mlbench数据集),尽管这没有什么区别。
    library(mlbench)
    data(BostonHousing)