Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.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 梯度下降(测试误差差异)_Python_Machine Learning_Statistics - Fatal编程技术网

Python 梯度下降(测试误差差异)

Python 梯度下降(测试误差差异),python,machine-learning,statistics,Python,Machine Learning,Statistics,在高处 因此,我试图编写一个程序,在一个样本数据集上执行梯度下降算法,该样本数据集有一个y输出和几个x输入。与其让用户设置基于错误更新系数的“历元”数,不如根据旧错误迭代测试更新后的错误,并在差异水平低于某个公差(可能由用户设置)时停止函数。我这样做对吗?如果是这样,那么用什么方法来量化新旧错误之间的差异呢 顺便说一句,我是作为python数据编程课程的一部分来做这件事的 任何提示,谢谢 谢谢我想指出: 当使用小批量梯度下降或随机梯度下降或其他算法进行优化时,每次迭代后的训练误差通常不稳定,这取

在高处

因此,我试图编写一个程序,在一个样本数据集上执行梯度下降算法,该样本数据集有一个y输出和几个x输入。与其让用户设置基于错误更新系数的“历元”数,不如根据旧错误迭代测试更新后的错误,并在差异水平低于某个公差(可能由用户设置)时停止函数。我这样做对吗?如果是这样,那么用什么方法来量化新旧错误之间的差异呢

顺便说一句,我是作为python数据编程课程的一部分来做这件事的

任何提示,谢谢


谢谢

我想指出:

当使用小批量梯度下降或随机梯度下降或其他算法进行优化时,每次迭代后的训练误差通常不稳定,这取决于批量大小。 因此,您的方法可能导致提前停止或无限循环

但是,如果您使用批处理梯度下降,我认为您的方法可能会奏效

编辑:

随机GD意味着您一次只计算一个样本的误差和梯度,而在批处理GD中,您计算训练集中每个样本的误差和梯度

BatchGD的缺点是您需要一次又一次地计算整个训练集的梯度(想象一下,当您有数百万个训练样本时)

关于你的f值:我认为你可以停留在鞍点(你的函数是平坦的)


但是,如果您仍然想实现这种方法,我认为您的“新”错误(或新f值)应该在“旧”错误之后10或20步。

谢谢您的回答。恐怕我的经验还不足以说明随机和批量gd之间的区别。你能详细说明一下吗。我的训练数据有两个变量和一个y变量,我想用f值。