我正在尝试实现成本函数,目前我已经
let computeCost (X : Matrix<double>) (y : Vector<double>) (theta : Vector<double>) =
let m = y.Count |> double
let J = (1.0/(2.0*m))*(((X*theta - y) |> Vector.map (fun x -> x*x)).Sum)
J
出于某种原因,我在第一个*后面的一半出现了一个错误:“这个函数需要太多参数,或者在不需要函数的上下文中使用。”
然而,当我这样做时
let computeCost (X : Matrix<double>) (y : Vector<double>) (theta : Vector<double>) =
let m = y.Count |> double
let J = (((X*theta - y) |> Vector.map (fun x -> x*x)).Sum)
J
它工作得很好,上面说
val J:float
这是我所期望的。但只要加入第二个部分
(1.0/(2.0*m))
部分我得到了错误。我在所有的东西周围都有括号,所以我看不出它是如何被应用的部分函数或沿着这些线的东西。我肯定这是件蠢事,但我似乎想不通。