警告使用Scipy与熊猫

Dan*_*TIZ 5 python numpy scipy python-2.7 pandas

我正在使用Python 2.7来测试以下示例:

# importando pandas, numpy y matplotlib
import matplotlib as matplotlib
import scipy as scipy
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# importando los datasets de sklearn
from sklearn import datasets

boston = datasets.load_boston()
boston_df = pd.DataFrame(boston.data, columns=boston.feature_names)
boston_df['TARGET'] = boston.target
boston_df.head() # estructura de nuestro dataset.

from sklearn.linear_model import LinearRegression

rl = LinearRegression() # Creando el modelo.
rl.fit(boston.data, boston.target) # ajustando el modelo
list(zip(boston.feature_names, rl.coef_))

# haciendo las predicciones
predicciones = rl.predict(boston.data)
predicciones_df = pd.DataFrame(predicciones, columns=['Pred'])
predicciones_df.head() # predicciones de las primeras 5 lineas


np.mean(boston.target - predicciones)
Run Code Online (Sandbox Code Playgroud)

但回应是:

/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/scipy/linalg/basic.py:1018:RuntimeWarning:内部gelsd驱动程序lwork查询错误,未返回所需的iwork维度.这很可能是LAPACK bug 0038的结果,修复了LAPACK 3.2.2(2010年7月21日发布).回到'gelss'司机.warnings.warn(mesg,RuntimeWarning)

我使用Brew和PIP来安装Scipy.

我该如何解决?

ev-*_*-br 11

这是无害的,可以忽略.

警告的原因正是它所说的:macOS上的默认LAPACK有点旧,SciPy可以解决它所遇到的错误.

  • 虽然这个答案或多或少是正确的,但它引发了一些明显的后续问题:SciPy是否有任何*缺点可以回到'gelss'驱动程序(例如,性能低劣)?有没有办法实际修复警告中描述的问题(而不是通过升级LAPACK将其沉默为[建议如下](/sf/answers/3504665321/))?如果两个问题的答案都是"是"(并且我不知道是否),那么这个答案可能不是最佳方法,我们应该升级LAPACK. (2认同)
  • FWIW,自从在上面发表我的评论以来,我已经非常努力地安装了新版本的LAPACK,以使SciPy在编译过程中实际上可以检测到并使用它,但失败了。未来的读者,除非您缺乏我所不具备的深刻智慧,否则我建议您不要浪费精力,而应该忽略警告(如果使您感到困扰,则将其过滤掉)。如果您确实缺乏我所缺乏的深刻智慧,那么请启发我们所有人! (2认同)

小智 6

请尝试以下代码来解决问题:

import warnings

warnings.filterwarnings(action="ignore", module="scipy", message="^internal gelsd")
Run Code Online (Sandbox Code Playgroud)