Понимание LSTQ Numpy's - PullRequest
       16

Понимание LSTQ Numpy's

0 голосов
/ 18 февраля 2019

Я понимаю идею суммы решений наименьших квадратов.Параметры решения отражают коэффициенты, которые минимизируют квадратичную ошибку.Но у меня возникают проблемы с пониманием функции lstsq, доступной с numpy.linalg.Например, я попробовал следующее:

m1 = np.asarray([[1,2],[3,4],[5,6],[7,8]])

m2 = np.asarray([[9,10],[11,12],[13,14],[15,16]])


solution = np.linalg.lstsq(m1, m2)[0]

Значение solution равно:

array([[-7., -8.],
   [ 8.,  9.]])

Что означает этот вывод?Я не могу визуализировать / понять этот результат.

1 Ответ

0 голосов
/ 18 февраля 2019

Я выйду на конечности.Метод возвращает m и c для уравнения y=mx+c.Когда вы передаете 2d массив для параметра b, вы получаете две подгонки - одну для первого столбца и одну для второго;как будто вы просили подгонки для двух разных наборов данных / векторов.

In [22]: sol
Out[22]: 
array([[-7., -8.],
       [ 8.,  9.]])

In [23]: sol[:,0], sol[:,1]
Out[23]: (array([-7.,  8.]), array([-8.,  9.]))

In [24]: np.linalg.lstsq(m1,m2[:,0])[0]
Out[24]: array([-7.,  8.])

In [25]: np.linalg.lstsq(m1,m2[:,1])[0]
Out[25]: array([-8.,  9.])


In [30]: np.linalg.lstsq(m1, np.array([9,11,13,15]))[0]
Out[30]: array([-7.,  8.])

In [31]: np.linalg.lstsq(m1, np.array([10,12,14,16]))[0]
Out[31]: array([-8.,  9.])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...