【问题标题】:TFF: How split data of each clientTFF:如何拆分每个客户端的数据
【发布时间】:2020-12-26 15:43:13
【问题描述】:

为什么在联邦学习任务中,我们不将数据集拆分为训练、测试和验证,我们只进行训练和测试。

【问题讨论】:

    标签: tensorflow-federated


    【解决方案1】:

    如何拆分数据集的选择实际上取决于评估者以及他们想要完成的任务。 TFF 中的预处理数据集(来自tff.simulation.datasets)通常只分成两部分,但可以以任何需要的方式重新加入和分割。

    需要考虑的一件事:(至少)有两个维度可能对联邦学习感兴趣。

    1. 示例:将单个客户端的数据集拆分为训练、测试和验证。这可能被视为最类似于集中培训制度。大多数 TFF 数据集都使用这个。
    2. users:将用户分为训练、测试和保留用户可能在联邦制度中特别有趣。这可能能够回答全局模型对 unseen 用户的泛化程度,但可能会受到各个数据集和拆分的非独立性的严重影响。这在一些 TFF 提供的数据集中使用。

    此外,这两者都可以是基于时间的(如果有时间的概念),例如将每个客户数据集分成“前一天”(火车)和“第二天”(测试)。或者,正如跨设备 FL 实践中经常出现的情况一样,按一天中的时间划分(晚上可用于训练的用户可能与中午不同),Eichner 2019 使用此设置进行了一些实验。

    注意tff.simulation.datasets.stackoverflow.load_data 确实有三个拆分,分别名为 trainheld_outtest。请仔细阅读文档,因为它使用了上述两种拆分类型。

    【讨论】:

      猜你喜欢
      • 2011-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-11
      • 1970-01-01
      • 1970-01-01
      • 2017-05-03
      • 2018-11-09
      相关资源
      最近更新 更多