Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.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
Python 如何执行10次随机拆分以确保机器学习结果的一致性_Python_Machine Learning_Cross Validation - Fatal编程技术网

Python 如何执行10次随机拆分以确保机器学习结果的一致性

Python 如何执行10次随机拆分以确保机器学习结果的一致性,python,machine-learning,cross-validation,Python,Machine Learning,Cross Validation,我刚刚读了一篇关于图像流行度预测的论文。作者将数据分成两部分,一部分用于培训,另一部分用于测试。在训练集上使用5倍交叉验证来寻找最佳参数。实验结果是预测受欢迎程度和实际受欢迎程度之间的等级相关性 为了确保结果的一致性,作者对10次随机拆分的性能进行了平均。我对10次随机拆分感到困惑 这是否意味着当他得到最佳参数和模型时,模型被用于测试集,测试集被分成10次10个部分,9次用于训练,1次用于测试 在这个过程中,模型又训练了吗 在没有阅读论文(请提供)的情况下,他似乎将数据随机分为两部分,一部分进

我刚刚读了一篇关于图像流行度预测的论文。作者将数据分成两部分,一部分用于培训,另一部分用于测试。在训练集上使用5倍交叉验证来寻找最佳参数。实验结果是预测受欢迎程度和实际受欢迎程度之间的等级相关性

为了确保结果的一致性,作者对10次随机拆分的性能进行了平均。我对10次随机拆分感到困惑

  • 这是否意味着当他得到最佳参数和模型时,模型被用于测试集,测试集被分成10次10个部分,9次用于训练,1次用于测试
  • 在这个过程中,模型又训练了吗
    • 在没有阅读论文(请提供)的情况下,他似乎将数据随机分为两部分,一部分进行培训,另一部分进行验证,并记录性能结果。他这样做了10次,之后可能会平均他的表现结果。

      仔细阅读这篇文章会有所帮助。
      如果不看这篇文章,我无法谈论作者所做的事情,但交叉验证的思想是不在测试数据集上进行拆分,而是在对整个数据集进行K次拆分后,实际训练并丢弃模型,使用每个子集进行一次测试

      假设你在这方面还可以,你的措辞让我觉得,在选择了最佳参数后,这个人再次开始从第1步的50-50分割开始,这次没有改变参数,实际上得到了一个新的列车和测试集。他一共做了10次

      如果是这样的话,这基本上意味着他在对整个集合进行了9次50-50随机拆分后,又对同一模型架构进行了9次训练,并在10个分数中平均出他的“性能”指标

      编辑:

      3.2评估对于上述每个设置,我们将数据随机分成两半,一部分用于培训,另一部分用于测试 其他测试。我们将10次随机拆分的性能平均为 确保结果的一致性;总的来说,我们发现 结果与低标准偏差高度一致 穿过裂缝

      好的,是的,作者确实“重复”了他的作品10次,每次都随机分成50-50份

      因此,它的本质是,在训练集中的训练过程中发生了5次交叉验证。剩下的50%用作评估。不要把它想象成一个典型的测试集,而是一个“保持”集。因为交叉验证意味着50%的数据用于整个过程中的培训和测试


      在这一点上,除了超参数和对应的“保留”50%数据的结果之外,您将放弃所有工作。现在,再次从整个数据集开始,进行不同但随机的50%分割。这一次,使用相同的超参数,在新的训练集上再次训练,并在新的“保持”集上测试此结果。然后重复。

      谢谢您的回答!我知道交叉验证应该用于选择最佳参数或模型。但他在训练集上使用了5倍交叉验证来获得最佳参数。我不知道他使用的是哪一个数据集,哪一个数据集是10个随机分割。这是论文的链接()@ZhangQing更新了编辑,最初的预感是正确的。让我知道这是否合情合理,我几乎能理解。再问一个问题就是为了确保我完全理解你的解释。工作从50-50分割开始,在训练集上使用5倍交叉验证,并选择最佳参数。在测试集上使用该模型并得到结果。这个过程又重复了9次,数据集被50-50分割,一部分用于训练,另一部分用于测试,但5次交叉验证只进行了一次,并且参数在左侧的9次实验中不会改变。非常感谢:D这是我见过的最详细的答案!谢谢!链接是:people.csail.mit.edu/khosla/papers/www2014_khosla.pdf