Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.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 3.x 回归线不';t拟合数据,梯度下降给出不准确的权重-蟒蛇3_Python 3.x_Machine Learning_Linear Regression_Gradient Descent - Fatal编程技术网

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添加了示例代码和假设函数