2015-06-05 3 views
1

Так что я пытаюсь использовать math.net в vb.net. Я скопировал выдержку C# с сайта и попытался преобразовать ее в vb.net. Я дошел до этого момента:Множественная регрессия с Math.net в 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) 

не нравится линия мультирегрессии, и я не знаю почему.

Любая помощь будет оценена

+0

вы можете разместить код C#? – OneFineDay

+1

Как это не нравится функция 'MultipleRegression.NormalEquations (m, y, True)'? Ошибка? – OneFineDay

+0

@OneFineDay, спасибо за ваше время. Кристоф Рюгг смог ответить на мой вопрос ниже. –

ответ

3

перегруженных с логическим параметром перехватывают в настоящее время принимают массивы только, а не матрицы (так как вы обычно имеют матрицы уже подготовленные в правильной формы).

Добавить перехватывать вручную:

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) 
+0

Спасибо, отлично работает. –

Смежные вопросы