python-3.x - pandas_ml 坏了吗?
问题描述
版本信息和问题如下所示。我想知道 pandas_ml 是坏了还是我做错了什么。为什么我无法导入 pandas_ml?
基本信息:sklearn、pandas_ml 和 python 的版本如下:
Python 3.8.2
scikit-learn 0.23.0
pandas-ml 0.6.1
问题:
import pandas_ml as pdml
返回以下错误:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-47-79d5f9d2381c> in <module>
----> 1 import pandas_ml as pdml
2 #from pandas_ml import ModelFrame
3 #mf = pdml.ModelFrame(df.to_dict())
4 #mf.head()
d:\program files\python38\lib\site-packages\pandas_ml\__init__.py in <module>
1 #!/usr/bin/env python
2
----> 3 from pandas_ml.core import ModelFrame, ModelSeries # noqa
4 from pandas_ml.tools import info # noqa
5 from pandas_ml.version import version as __version__ # noqa
d:\program files\python38\lib\site-packages\pandas_ml\core\__init__.py in <module>
1 #!/usr/bin/env python
2
----> 3 from pandas_ml.core.frame import ModelFrame # noqa
4 from pandas_ml.core.series import ModelSeries # noqa
d:\program files\python38\lib\site-packages\pandas_ml\core\frame.py in <module>
8
9 import pandas_ml.imbaccessors as imbaccessors
---> 10 import pandas_ml.skaccessors as skaccessors
11 import pandas_ml.smaccessors as smaccessors
12 import pandas_ml.snsaccessors as snsaccessors
d:\program files\python38\lib\site-packages\pandas_ml\skaccessors\__init__.py in <module>
13 from pandas_ml.skaccessors.linear_model import LinearModelMethods # noqa
14 from pandas_ml.skaccessors.manifold import ManifoldMethods # noqa
---> 15 from pandas_ml.skaccessors.metrics import MetricsMethods # noqa
16 from pandas_ml.skaccessors.model_selection import ModelSelectionMethods # noqa
17 from pandas_ml.skaccessors.neighbors import NeighborsMethods # noqa
d:\program files\python38\lib\site-packages\pandas_ml\skaccessors\metrics.py in <module>
254 _true_pred_methods = (_classification_methods + _regression_methods
255 + _cluster_methods)
--> 256 _attach_methods(MetricsMethods, _wrap_target_pred_func, _true_pred_methods)
257
258
d:\program files\python38\lib\site-packages\pandas_ml\core\accessor.py in _attach_methods(cls, wrap_func, methods)
91
92 for method in methods:
---> 93 _f = getattr(module, method)
94 if hasattr(cls, method):
95 raise ValueError("{0} already has '{1}' method".format(cls, method))
AttributeError: module 'sklearn.metrics' has no attribute 'jaccard_similarity_score'
解决方案
看来确实如此。情况如下:
尽管该功能jaccard_similarity_score
未在文档中的可用sklearn.metrics
功能中显示,但在 v0.22.2(源代码)之前它仍然存在(因此可用) jaccard_score
。但是在最新的 v0.23的源代码中,它已经被删除了,只剩下了jaccard_score
。
这意味着仍然可以通过简单地将 scikit-learn 降级到 v.0.22.2 来使用 pandas-ml。但不幸的是,这也不起作用,引发不同的错误:
!pip install pandas-ml
# Successfully installed enum34-1.1.10 pandas-ml-0.6.1
import sklearn
sklearn.__version__
# '0.22.2.post1'
import pandas_ml as pdml
[...]
AttributeError: module 'sklearn.preprocessing' has no attribute 'Imputer'
我想只要回溯到足够多的时间(他们的Github 存储库中的最后一次提交是在 2019 年 3 月),就有可能找到一个可以使用它的 scikit-learn 版本,但不确定是否值得大惊小怪。无论如何,他们甚至在他们的需求文件中都没有提到 scikit-learn(更不用说它的任何特定版本) ,这似乎不是一个合理的做法,整个项目似乎都被放弃了。
推荐阅读
- php - 升级到 PHP 7.1 警告:在第 76 行的 .../themeXX/includes/includes.php 中遇到非数字值
- google-sheets - Google 表格 - 查询:参考单元格而不是实际查询
- dojo - Episerver/CMS & Dojo/Aspect——如何在 Dojo 中捕获 revert to publish 事件?
- ms-access - 访问阅读彻底的 UTF-8 编码
- ruby - 如何在没有类信息的情况下进行 YAML 转储?
- netty - 通道关闭时,Netty Server 不发送所有数据
- amazon-web-services - 将资源从一个 VM 移动到另一个 VM?
- windows - DJI Windows SDK - 媒体访问
- shell - 多个条件的 AWK 命令打印不同的列
- python - 如何使用 python 打开硬件纹理?