【问题标题】:Running Least Mean Squares Function in Julia在 Julia 中运行最小均方函数
【发布时间】:2019-05-01 00:53:03
【问题描述】:

我是 Julia 的新手,所以如果这太基本了,请原谅我。我正在尝试运行以下脚本。

using Pkg
Pkg.add("DataFrames")
using DataFrames

function LS(x,y,a)
    T = size(x,1)
    N = size(x,2)
    pred = fill(0.0,T)
    w= fill(0.0,N)
    for t = 1:T
        x1 = x[t,:]
        pred[t] = transpose(w) * x1
        err = a*(y[t]-pred[t])
        w = w + (err * x1)
    end
    return pred
end

input = readtable("input.csv")
output = readtable("label.csv")
en = convert(Array, input)
out = convert(Array, output)
a = 0.5
prediction = LS(en,out,a)
print(prediction)

运行时出现以下错误:

错误:LoadError:MethodError:没有方法匹配 *(::Array{Float64,1}, ::Array{Union{Missing, Float64},1}) 最接近的候选者是:*(::Any, ::Any, !Matched::Any, !Matched::Any ...) 在 运算符.jl:502 *(!Matched::LinearAlgebra.Adjoint{#s571,#s570} 其中#s570<:union complex float32 float64 s a i where n t densearray reshapearray mi subarray l abstractrange abstractcartesianindex ::union ::abstractarray at ...>

堆栈跟踪:2 LS(::Array{Union{Missing, Float64},2}, ::Array{Union{Missing, Float64},2}, ::Float64) 在 /Users/wj/Desktop/Julia/NLSR.jl:16

2 顶级范围无:0

[3] 包含在 ./boot.jl:317 [内联]

[4] include_relative(::Module, ::String) at ./loading.jl:1044

[5] 在./sysimg.jl:29 中包含(::Module, ::String)

[6] exec_options(::Base.JLOptions) at ./client.jl:231

[7] _start() at ./client.jl:425

我怎样才能成功运行这个脚本?

备注: 算法伪代码为follows

在 Warren 发表评论后更新脚本

代码现在可以工作了!

【问题讨论】:

    标签: julia least-squares


    【解决方案1】:

    我不确定你想在这里做什么,但对我来说它看起来不像最小二乘法。

    话虽如此,您脚本中的问题出在这一行:

    w = w + (err * x1)
    

    x1err 都将是向量,并且没有两个向量的乘法运算符方法。例如,rand(2) * rand(2) 也会出错。这是因为在这种情况下,* 的用法不明确。

    如果您想要点积,请使用dot(x1, err)

    如果您想要逐元素产品,请使用x1 .* err,它会在输入的元素之间广播*

    您的代码还有其他几个问题,但我不愿尝试纠正它们,因为如上所述,我不确定您要做什么。

    【讨论】:

    • 这是最小均方/在线 GD 和 y[t,:] 和 pred[t,:] 都是 float64/double 不是向量。
    • @Jamil, y[t,:] 和 pred[t,:] 属于 Array{Float64,1} 类型。 pred 是一个二维数组,它的一部分是一维数组。如果 pred 一开始就应该是一维数组,则可以使用 fill(0.0,T) 构造它
    猜你喜欢
    • 1970-01-01
    • 2023-01-13
    • 2021-07-16
    • 1970-01-01
    • 1970-01-01
    • 2014-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多