0

コスト関数を実装しようとしていますが、現在持っています

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が私が期待していることだと言っています。しかし、その部分である 2 番目のピースを追加するとすぐに(1.0/(2.0*m))、エラーが発生します。私はすべてを括弧で囲んでいるので、部分的な関数が適用されたり、それらの線に沿って何かがどのように適用されるのかわかりません。私はそれがばかげていると確信していますが、私はそれを理解できないようです。

4

1 に答える 1