【问题标题】:TypeError: fit() argument after ** must be a mapping, not NoneTypeTypeError: ** 之后的 fit() 参数必须是映射,而不是 NoneType
【发布时间】:2017-09-15 14:52:59
【问题描述】:

我正在尝试运行spark_sklearn中的示例代码

from sklearn import svm, datasets
from pyspark import SparkContext
from spark_sklearn import GridSearchCV
iris = datasets.load_iris()
parameters = {'kernel':('linear', 'rbf'), 'C':[1, 10]}
svr = svm.SVC()
sc = SparkContext()
clf = GridSearchCV(sc, svr, parameters)
clf.fit(iris.data, iris.target)

抛出一个 TypeError,完整的回溯:

Traceback (most recent call last):
"<stdin>", line 1, in <module>
"spark_sklearn/grid_search.py", line 272, in fit
return self._fit(X, y, groups, ParameterGrid(self.param_grid))
"spark_sklearn/grid_search.py", line 400, in _fit
best_estimator.fit(X, y, **fit_params)
TypeError: fit() argument after ** must be a mapping, not NoneType

我查看了 repo 中的问题,但没有这样的东西。有人可以帮我解决这个问题吗?

Environment Info:
python 3.5.2
spark 2.2.0
spark_sklearn 0.2.0

【问题讨论】:

  • 一定是安装问题。请提供其他信息,例如:python 版本、spark-sklearn 的版本。您的 PYTHONPATH 环境是否已相应设置?等等。你必须确保任何人都有足够的信息来重现问题。
  • 没有定义sc(在官方示例中)并且文档字符串与spark_sklearn.GridSearchCV的internal code不兼容。对我来说,不使用它的理由很充分。
  • 我对 python 2.7 有同样的问题

标签: python apache-spark scikit-learn


【解决方案1】:

此问题是由于 spark-sklearn 使用了 scikit-learn 0.19.0 中已弃用的 scikit-learn API。

如果您不打算将任何额外的参数传递给正在交叉验证的估计器的 fit 方法,现在一种解决方法是手动将 clf.fit_params 设置为空字典

from sklearn import svm, datasets
from pyspark import SparkContext
from spark_sklearn import GridSearchCV
iris = datasets.load_iris()
parameters = {'kernel':('linear', 'rbf'), 'C':[1, 10]}
svr = svm.SVC()
sc = SparkContext()
clf = GridSearchCV(sc, svr, parameters)
clf.fit_params = {}
clf.fit(iris.data, iris.target)

【讨论】:

  • 设置为空字典 {} 效果很好。谢谢!
【解决方案2】:

我在运行我的脚本时发现了同样的问题。
你确定你有 spark_sklearn 0.2.0 吗? 0.2.1 版本可用了几天,在更新了这个包后,我遇到了完全相同的错误。

你可以在终端试试:

pip 卸载 spark-sklearn
pip install spark-sklearn==0.2.0

它对我有用。祝你好运 !


【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-13
    • 1970-01-01
    • 2021-01-27
    • 1970-01-01
    • 2015-11-28
    • 2016-10-14
    相关资源
    最近更新 更多