【问题标题】:Is there a difference between using accuracy_score with shuffled labels and without?使用带有混洗标签和不使用的 accuracy_score 有区别吗?
【发布时间】:2019-09-25 05:40:31
【问题描述】:

所以首先我对标签进行了排序,例如,40 行标记为 A,然后是其他 40 行标记为 B,40 行标记为 C,然后 40 行标记为 D。所有这些都按此顺序制作 160 个标签的列表。

在使用两个标签进行预测之后(洗牌和非洗牌) 这是我的分数:

shuffled:
0.14375

not shuffled:
0.30434782608695654

我的问题是: 两者不应该相同吗?或者这是正常的,我没有弄错?

【问题讨论】:

  • 这种情况是否持续发生?你用什么来做你的预测器?您是否使用所有数据进行训练? (您是在打乱所有数据列,还是只是打乱标签)?
  • 你是如何洗牌和拆分你的训练/测试模型的?
  • @doctorlove 不,这是第一次。我正在使用蛮力预测器。是的,我正在使用所有数据。我把所有东西都混在一起了。
  • 请提供MCVE
  • 我不知道您所说的“蛮力预测器”是什么意思 - 您能否提供设置预测器的代码?看,一些算法在前几个点以集群等开始,因此重新排序可能会产生不同的结果。其他人则从随机数或点开始,因此在打乱或未打乱的数据上进行相同的运行可能会产生不同的结果。告诉我们您在做什么,我们或许能够解释发生了什么。

标签: python scikit-learn data-science


【解决方案1】:

在很多情况下,当训练输入的顺序发生变化时,结果可能会发生变化。

例如,Nearest neighbours 警告

关于最近邻算法,如果两个邻居 k+1 和 k 具有相同的距离但不同的标签,结果将 取决于训练数据的顺序。

其他算法将使用前几个点开始,这可能会改变您的结果。

其他人在重新运行时会给出不同的结果,即使您不更改输入的顺序。许多机器学习算法使用随机数——这会使结果略有不同。值得进行几次运行并在发生这种情况时给出平均值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-28
    • 2012-04-06
    • 1970-01-01
    • 2018-03-15
    • 1970-01-01
    • 2014-02-15
    • 2017-09-18
    • 2021-11-11
    相关资源
    最近更新 更多