Python 3.x 回归线不';t拟合数据,梯度下降给出不准确的权重-蟒蛇3
我从无到有地实现了线性回归和梯度下降,它给了我奇怪的结果,比如负数,它们非常小 样本数据Python 3.x 回归线不';t拟合数据,梯度下降给出不准确的权重-蟒蛇3,python-3.x,machine-learning,linear-regression,gradient-descent,Python 3.x,Machine Learning,Linear Regression,Gradient Descent,我从无到有地实现了线性回归和梯度下降,它给了我奇怪的结果,比如负数,它们非常小 样本数据 609.0,241.0 629.0,222.0 620.0,233.0 564.0,207.0 645.0,247.0 493.0,189.0 606.0,226.0 672.0,231.0 778.0,263.0 灰袋鼠数据集 样本数据可在以下位置找到: 在处理这个问题之后,我发现如果θ为负,代价函数就会增加。如果θ为正,则成本函数减小。 我希望代价
609.0,241.0
629.0,222.0
620.0,233.0
564.0,207.0
645.0,247.0
493.0,189.0
606.0,226.0
672.0,231.0
778.0,263.0
灰袋鼠数据集
样本数据可在以下位置找到:
在处理这个问题之后,我发现如果θ为负,代价函数就会增加。如果θ为正,则成本函数减小。
我希望代价函数减小,所以我对代码做了一些修改,这给了我一个正θ和递减的代价函数
# adding gives +ve theta
theta = theta + alpha*gradientD
我画了成本函数图
训练后,它给了我一些重量。当我使用权重预测y
它不能预测一个好的价值。当我在图表上绘制回归线时,它根本不符合数据
我还在学习这些东西,我不确定我的实现是否正确。而且,我的学习率很低。我看到学习率不低于0.001。我使用0.001作为学习率,但它给出了不准确的成本函数
# adding gives +ve theta
theta = theta + alpha*gradientD
我不确定我是否已经明确,但我真的很感谢你的帮助 您已将错误和损失向后定义。。。误差是预测和数据之间的差异,损失函数将误差映射到拟合例程的目标上。你的梯度计算大致正确(尽管它没有按你定义损失函数的方式缩放,梯度计算中的“损失”项实际上是错误的)
但是,alpha(步长)的值非常小,这将影响收敛速度。因为您只允许30次迭代,所以它可能不会收敛(它显然是在一个非常糟糕的地方开始的,损耗=6e7-从图表的比例来看,不清楚到第30次迭代时它有多接近零)。尝试增大alpha值,以查看它是否在允许的30次迭代中接近其最终值(基于最终状态损失值)。现在,你的损失与迭代的关系图被非常高的初始状态损失值淹没了(绘制损失的日志或损失的日志10可能会更容易在实验中进行比较)。你能提供
数据的样本以及一个(带有导入、假设和正确缩进)函数吗请?@Nuageux添加了示例代码和假设函数