2024-04-25 04:40:36 发布
网友
我了解如何使用随机状态将数据随机分为训练集和测试集。正如预期的那样,我的算法每次修改时都会给出不同的精度。现在我必须在我的大学里提交一份报告,我无法理解在那里提到的最终准确性。我应该选择我得到的最大精度吗?或者我应该用不同的随机状态运行它,然后取它的平均值?还是别的什么?在
最好的方法是取平均精度。。。但是 如果您基于特定的数据集分割训练模型以产生最佳分类(可能被认为是过度拟合),那么您可以获得最佳精度。让我详细说明一下:
您可以训练模型进行几次迭代,测试和训练集合的精确度会有所不同,但会呈上升趋势(精确度会上升) 你可以训练模型进行多次迭代,只有在迭代精度提高的情况下才可以更新权重,从而构造出最好的模型。。。在
但是您应该注意观察测试集的准确度以避免过度拟合,即当模型能够以非常高的准确度超过训练集,但相对于测试集,准确度非常低
在开始时,模型将学习并且(测试和训练)精度都将提高,经过大量训练后,训练精度将提高(或保持不变),但测试精度将下降
您可以查看this进一步阅读
我建议您看看k-fold cross validation,我认为这种方法最适合这种情况
就我个人而言,我将random_state设置为一个特定的数字(通常是42),因此,如果我看到程序精度的变化,我就知道这是由数据分割方式引起的而不是。在
random_state
42
然而,这可能导致我的网络过度适应那个特定的分割。一、 我对我的网络进行了优化,使它能很好地适应这种分割,但不一定要在不同的分割上工作。因此,我认为在提交代码时最好使用一个随机种子,这样审阅者就知道您没有过度适应特定的状态。在
要使用sklearn.train_test_split完成此操作,您可以简单地不提供random_state,它将使用np.random随机选择一个。在
sklearn.train_test_split
np.random
最好的方法是取平均精度。。。但是 如果您基于特定的数据集分割训练模型以产生最佳分类(可能被认为是过度拟合),那么您可以获得最佳精度。让我详细说明一下:
您可以训练模型进行几次迭代,测试和训练集合的精确度会有所不同,但会呈上升趋势(精确度会上升) 你可以训练模型进行多次迭代,只有在迭代精度提高的情况下才可以更新权重,从而构造出最好的模型。。。在
但是您应该注意观察测试集的准确度以避免过度拟合,即当模型能够以非常高的准确度超过训练集,但相对于测试集,准确度非常低
在开始时,模型将学习并且(测试和训练)精度都将提高,经过大量训练后,训练精度将提高(或保持不变),但测试精度将下降
您可以查看this进一步阅读
我建议您看看k-fold cross validation,我认为这种方法最适合这种情况
就我个人而言,我将
random_state
设置为一个特定的数字(通常是42
),因此,如果我看到程序精度的变化,我就知道这是由数据分割方式引起的而不是。在然而,这可能导致我的网络过度适应那个特定的分割。一、 我对我的网络进行了优化,使它能很好地适应这种分割,但不一定要在不同的分割上工作。因此,我认为在提交代码时最好使用一个随机种子,这样审阅者就知道您没有过度适应特定的状态。在
要使用
sklearn.train_test_split
完成此操作,您可以简单地不提供random_state
,它将使用np.random
随机选择一个。在相关问题 更多 >
编程相关推荐