【发布时间】:2021-03-15 00:23:01
【问题描述】:
我得到了上述错误,尽管我在尝试使用 np.linalg.lstsq 进行线性回归时检查了我没有缺失值或无限值...有什么想法吗?我递归地进行这些回归,我打印了 X 和 Y 的形状,并且总是相同,但它会在特定迭代中引发错误
---> 17 betas = np.linalg.lstsq(X,Y,rcond=None)[0]
18
19 res = Y - X.dot(betas)
<__array_function__ internals> in lstsq(*args, **kwargs)
~\anaconda3\lib\site-packages\numpy\linalg\linalg.py in lstsq(a, b, rcond)
2257 # lapack can't handle n_rhs = 0 - so allocate the array one larger in that axis
2258 b = zeros(b.shape[:-2] + (m, n_rhs + 1), dtype=b.dtype)
-> 2259 x, resids, rank, s = gufunc(a, b, rcond, signature=signature, extobj=extobj)
2260 if m == 0:
2261 x[...] = 0
~\anaconda3\lib\site-packages\numpy\linalg\linalg.py in _raise_linalgerror_lstsq(err, flag)
107
108 def _raise_linalgerror_lstsq(err, flag):
--> 109 raise LinAlgError("SVD did not converge in Linear Least Squares")
110
111 def get_linalg_error_extobj(callback):
LinAlgError: SVD did not converge in Linear Least Squares
【问题讨论】: