【问题标题】:How to fix: cannot import name 'logsumexp'如何解决:无法导入名称“logsumexp”
【发布时间】:2019-11-02 02:45:47
【问题描述】:

我正在研究 Jupyter 笔记本。我的代码工作正常,但后来我为其他项目安装了 sklearn,现在我当前的代码停止工作。它突然开始显示“无法导入名称'logsumexp'”错误。

我已经尝试升级 sklearn、scikit-learn 和 statsmodels。有人建议回滚到 scikit 0.18.02 模型会有所帮助,但这也不起作用。我认为这个链接解释了错误'https://docs.scipy.org/doc/scipy-0.19.1/reference/generated/scipy.misc.logsumexp.html'的原因,但我仍然不知道如何解决它。

这些是我当前的版本

scikit-learn 0.21.2
scipy 1.3.0
sklearn 0.0
统计模型 0.9.0

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm
from statsmodels.tsa.api import ExponentialSmoothing, SimpleExpSmoothing, Holt
import statsmodels.api as sm
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-9-de89bb760177> in <module>
      3 import matplotlib.pyplot as plt
      4 from matplotlib import cm
----> 5 from statsmodels.tsa.api import ExponentialSmoothing, SimpleExpSmoothing, Holt
      6 import statsmodels.api as sm

~/.local/lib/python3.6/site-packages/statsmodels/tsa/api.py in <module>
     23 from .statespace.varmax import VARMAX
     24 from .statespace.dynamic_factor import DynamicFactor
---> 25 from .regime_switching.markov_regression import MarkovRegression
     26 from .regime_switching.markov_autoregression import MarkovAutoregression
     27 from .holtwinters import ExponentialSmoothing, SimpleExpSmoothing, Holt

~/.local/lib/python3.6/site-packages/statsmodels/tsa/regime_switching/markov_regression.py in <module>
     11 import statsmodels.base.wrapper as wrap
     12 
---> 13 from statsmodels.tsa.regime_switching import markov_switching
     14 
     15 

~/.local/lib/python3.6/site-packages/statsmodels/tsa/regime_switching/markov_switching.py in <module>
     13 from statsmodels.compat.collections import OrderedDict
     14 
---> 15 from scipy.misc import logsumexp
     16 from statsmodels.base.data import PandasData
     17 import statsmodels.tsa.base.tsa_model as tsbase

ImportError: cannot import name 'logsumexp'

【问题讨论】:

  • 尝试将from scipy.misc import logsumexp改为from scipy.special import logsumexp

标签: ubuntu scikit-learn jupyter-notebook statsmodels sklearn-pandas


【解决方案1】:

我引用Github issue的答案:

statsmodels 0.9SciPy 1.3.0 不兼容。当前master分支兼容,下个版本兼容。选项是降级 SciPy,安装在 virtual- or conda-envSciPy 1.2 中,或者使用下面提供的代码从主分支安装

pip install --upgrade git+https://github.com/statsmodels/statsmodels

【讨论】:

    【解决方案2】:

    升级包:

    statsmodel 0.10.1 上不会发生这种情况

    pip install -U scikit-learn scipy statsmodels
    

    如果您每次都想要一个稳定的环境,我建议使用 conda pinned 版本,而不是升级单个包。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-17
      • 2018-09-07
      • 1970-01-01
      • 1970-01-01
      • 2021-07-19
      • 1970-01-01
      • 1970-01-01
      • 2022-06-30
      相关资源
      最近更新 更多