【问题标题】:Multiple Regression with Math.net in VB.Net在 VB.Net 中使用 Math.net 进行多重回归
【发布时间】:2015-06-05 03:20:40
【问题描述】:

所以我尝试在 vb.net 中使用 math.net。我已经从网站复制了 c# 摘录并尝试将其转换为 vb.net。我已经到了这一点:

Dim m = Matrix(Of Double).Build.DenseOfArray({{1.0, 4.0}, {2.0, 5.0}, {3.0, 2.0}})
Dim y = Vector(Of Double).Build.DenseOfArray({15, 20, 10})
Dim p = MultipleRegression.NormalEquations(m, y, True)
Dim a = p(0)
Dim b = p(1)
Dim c = p(2)

它不喜欢多重回归线,我不知道为什么。

任何帮助将不胜感激

【问题讨论】:

  • 能贴出C#代码吗?
  • 怎么不喜欢MultipleRegression.NormalEquations(m, y, True)函数?错误?
  • @OneFineDay,感谢您抽出宝贵时间。 Christoph Ruegg 能够在下面回答我的问题。

标签: vb.net math.net


【解决方案1】:

带有布尔截距参数的重载目前只接受数组,而不是矩阵(因为您通常已经准备好正确形状的矩阵)。

手动添加拦截:

Dim m = Matrix(Of Double).Build.DenseOfArray({{1.0, 1.0, 4.0}, {1.0, 2.0, 5.0}, {1.0, 3.0, 2.0}})
Dim y = Vector(Of Double).Build.DenseOfArray({15, 20, 10})
Dim p = MultipleRegression.NormalEquations(m,y)
Dim a = p(0)
Dim b = p(1)
Dim c = p(2)

或者在代码中:

Dim m = Matrix(Of Double).Build.DenseOfArray({{1.0, 4.0}, {2.0, 5.0}, {3.0, 2.0}})
Dim y = Vector(Of Double).Build.DenseOfArray({15, 20, 10})

' add intercept
Dim mi = m.InsertColumn(0, Vector(Of Double).Build.Dense(m.RowCount, 1.0))

Dim p = MultipleRegression.NormalEquations(mi,y)
Dim a = p(0)
Dim b = p(1)
Dim c = p(2)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-04
    • 1970-01-01
    相关资源
    最近更新 更多