Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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
Apache spark mllib是如何计算梯度的_Apache Spark_Linear Regression_Apache Spark Mllib_Gradient Descent - Fatal编程技术网

Apache spark mllib是如何计算梯度的

Apache spark mllib是如何计算梯度的,apache-spark,linear-regression,apache-spark-mllib,gradient-descent,Apache Spark,Linear Regression,Apache Spark Mllib,Gradient Descent,需要mllib专家帮助解释线性回归代码。在 CumpGradient是使用axpy计算的,它只是y+=a*x,或者在这里 cumGradient+=diff*数据 我想了很长时间,但可以连接到梯度下降文档中定义的梯度计算。理论上,梯度是在一个特定的加权参数中损失相对于增量的斜率。在这个axpy实现中,我没有看到任何与此类似的东西 有人能解释一下吗?这不是一个真正的编程问题,但让您了解一下最小二乘回归的成本函数定义为 其中θ是权重向量 上述成本函数的偏导数为: 如果在所有θ上计算: 显然,上

需要mllib专家帮助解释线性回归代码。在

CumpGradient是使用axpy计算的,它只是y+=a*x,或者在这里 cumGradient+=diff*数据

我想了很长时间,但可以连接到梯度下降文档中定义的梯度计算。理论上,梯度是在一个特定的加权参数中损失相对于增量的斜率。在这个axpy实现中,我没有看到任何与此类似的东西


有人能解释一下吗?

这不是一个真正的编程问题,但让您了解一下最小二乘回归的成本函数定义为

其中θ是权重向量

上述成本函数的偏导数为:

如果在所有θ上计算:

显然,上面的值相当于为所有数据点计算的
cumGradient+=diff*数据
,并引用

在直角坐标系中,梯度是向量场,其分量是f的偏导数


这并不是一个真正的编程问题,但为了让你们知道,最小二乘回归的成本函数定义为

其中θ是权重向量

上述成本函数的偏导数为:

如果在所有θ上计算:

显然,上面的值相当于为所有数据点计算的
cumGradient+=diff*数据
,并引用

在直角坐标系中,梯度是向量场,其分量是f的偏导数


这并不是一个真正的编程问题,但为了让你们知道,最小二乘回归的成本函数定义为

其中θ是权重向量

上述成本函数的偏导数为:

如果在所有θ上计算:

显然,上面的值相当于为所有数据点计算的
cumGradient+=diff*数据
,并引用

在直角坐标系中,梯度是向量场,其分量是f的偏导数


这并不是一个真正的编程问题,但为了让你们知道,最小二乘回归的成本函数定义为

其中θ是权重向量

上述成本函数的偏导数为:

如果在所有θ上计算:

显然,上面的值相当于为所有数据点计算的
cumGradient+=diff*数据
,并引用

在直角坐标系中,梯度是向量场,其分量是f的偏导数


我相信这个问题属于…我相信这个问题属于…我相信这个问题属于…我相信这个问题属于…太好了。我的困惑在于并没有看到x和y都是以特征为元素的向量。现在代码与数学完全匹配。非常好。我的困惑在于并没有看到x和y都是以特征为元素的向量。现在代码与数学完全匹配。非常好。我的困惑在于并没有看到x和y都是以特征为元素的向量。现在代码与数学完全匹配。非常好。我的困惑在于并没有看到x和y都是以特征为元素的向量。现在代码与数学完全匹配。
override def compute(
    data: Vector,
    label: Double,
    weights: Vector,
    cumGradient: Vector): Double = {
  val diff = dot(data, weights) - label
  axpy(diff, data, cumGradient)
  diff * diff / 2.0
}