版本信息和发行如下。我想知道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'
答案 0 :(得分:3)
看来确实如此。情况如下:
尽管documentation的jaccard_similarity_score
的可用sklearn.metrics
中未显示功能jaccard_score
,但直到v0.22.2({{ 3}})和source code之一。但是在jaccard_score
的源代码中,它已被删除,仅剩下!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'
。
这意味着仅通过将scikit-learn降级到v.0.22.2,仍然可以使用pandas-ml。但不幸的是,这也不起作用,并抛出另一个错误:
@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Container(
width: 100,
child: TextFormField(
keyboardType: TextInputType.number,
initialValue: "11",
textAlign: TextAlign.center,
decoration: InputDecoration(labelText: "Width"),
),
),
Container(
width: 100,
child: TextFormField(
keyboardType: TextInputType.number,
initialValue: "22",
textAlign: TextAlign.center,
decoration: InputDecoration(labelText: "Height"),
),
),
],
),
),
);
}
我想可以通过充分回顾来找到一个适用于它的scikit学习版本(他们的latest v0.23中的最后一次提交是在2019年3月),但不确定是否值得大惊小怪。无论如何,他们甚至没有在他们的Github repo中提到scikit-learn(更不用说它的任何特定版本了),这似乎并不合理,整个项目似乎都被放弃了。
答案 1 :(得分:0)
因此,在为此花费了一些时间和精力之后,我开始工作了,并且意识到Python中的break概念相当模糊。这将取决于您尝试使用的库及其依赖项的组合。较早的版本都可用并且可以使用,但是有时,找到正确的软件包版本组合可以使一切正常运行,这是一个反复尝试的过程。
我从本练习中学到的另一件事是,在使用python进行编程时,拥有在创建和管理虚拟环境方面的专业知识的重要性。
在我的案例中,我从一些朋友的试用中得到了帮助,发现pandas_ml
适用于python 3.7
。以下给出的是pip freeze
输出,可使用pandas_ml
和imbalanced-learn
库之类的库来为机器学习和深度学习工作建立可靠的虚拟环境,其中可能还包括其他一些具有最近几年没有新版本。
要使用正确版本的软件包创建可确保pandas_ml
和imbalanced-learn
库正常工作的工作环境,请在Python 3.7
上创建具有以下配置的环境。
backcall==0.1.0
colorama==0.4.3
cycler==0.10.0
decorator==4.4.2
enum34==1.1.10
imbalanced-learn==0.4.3
ipykernel==5.2.1
ipython==7.14.0
ipython-genutils==0.2.0
jedi==0.17.0
joblib==0.15.0
jupyter-client==6.1.3
jupyter-core==4.6.3
kiwisolver==1.2.0
matplotlib==3.2.1
numpy==1.15.4
pandas==0.24.2
pandas-ml==0.6.1
parso==0.7.0
pickleshare==0.7.5
prompt-toolkit==3.0.5
Pygments==2.6.1
pyparsing==2.4.7
python-dateutil==2.8.1
pytz==2020.1
pywin32==227
pyzmq==19.0.1
scikit-learn==0.20.0
scipy==1.3.3
six==1.14.0
threadpoolctl==2.0.0
tornado==6.0.4
traitlets==4.3.3
wcwidth==0.1.9
希望这可以帮助正在寻找正确版本的库的人使用pandas_ml和不平衡学习包在python中设置其机器和深度学习环境。