Python PyCharm中的错误,但不是Jupyter实验室:numpy.linalg.linalgeror:SVD未在线性最小二乘中收敛
我想比较回归模型。CatBoostRegressor、DecisionTreeRegressor和RandomForestRegressor都可以正常工作。 LinearRelation有问题:在带有Python PyCharm中的错误,但不是Jupyter实验室:numpy.linalg.linalgeror:SVD未在线性最小二乘中收敛,python,machine-learning,scikit-learn,linear-regression,Python,Machine Learning,Scikit Learn,Linear Regression,我想比较回归模型。CatBoostRegressor、DecisionTreeRegressor和RandomForestRegressor都可以正常工作。 LinearRelation有问题:在带有model3.fit()的行中出现错误消息: raise LinAlgError("SVD did not converge in Linear Least Squares") numpy.linalg.LinAlgError: SVD did not converge in L
model3.fit()
的行中出现错误消息:
raise LinAlgError("SVD did not converge in Linear Least Squares")
numpy.linalg.LinAlgError: SVD did not converge in Linear Least Squares
这个错误只发生在PyCharm,而不是Jupyter实验室。我也很困惑,因为我在这一行中没有使用numpy。
这是什么意思
这是我的代码:
model3 = LinearRegression()
# training model3
model3.fit(
X_train_ns_m3.drop(['PARCEL','address'], axis=1),
y_train_ns_m3)
错误可能与您的数据有关,因此更改数据可能会解决问题。您自己没有使用NumPy,但是
model3.fit
正在内部调用NumPy。如果您感到好奇,请参阅线性回归的解释。您将看到,找到线性回归的一种方法是通过奇异值分解(SVD),这似乎是model.fit
所使用的方法。请注意,错误之后出现的任何代码都与问题无关(从未执行),因此不应包括在此处,因为它只会造成不必要的混乱(编辑掉)@darcamo:当问题是我的数据(顺便说一句,没有inf或NaN值)时,为什么它在jupyter实验室工作,而在PyCharm中不工作?我没有一个精确的答案。可能您在PyCharm和JupyterLab中使用了不同的环境,并且由于精度或其他原因,SVD被认为在一个环境中收敛,但在另一个环境中不收敛。关键是,您的代码和PyCharm都没有问题(但是请检查PyCharm和JupylerLab是否使用不同的环境)。从问题中的信息,我只能得出结论,这是由于数据,使用不同的数据可以解决问题。@darcamo:PyCharm和JupyterLab中的环境似乎是一样的。它都是“Python3.8”,具有相同的包。现在我在一个新的.py文件中复制了完整的Model3,它在PyCharm中工作。我完全被这搞糊涂了。模型1和模型2是否可能是此错误的原因?