2017-09-13 1 views
0

내가, 전체 역 추적 TypeError가를 던졌습니다 spark_sklearn형식 오류 : 적합() 인수 ** 매핑을해야합니다 후하지 NoneType

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) 

에서 샘플 코드를 실행하려고 :

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 
+0

그것은이어야합니다 교차 - 확인되는 추정의 맞춤 방법에 여분의 PARAMS을 통과하지 않을 경우 수동으로 빈 딕셔너리에 clf.fit_params을 설정하는 것입니다 instal 문제. 추가 정보 (예 : python 버전, spark-sklearn 버전)를 제공해주십시오. 귀하의 PYTHONPATH 환경은 그에 따라 설정되어 있습니까? 문제를 재현 할 수있는 충분한 정보를 누군가가 가지고 있는지 확인해야합니다. –

+0

공식에 정의 된''sc''가없고 문서 문자열은 [내부 코드] (https://github.com/databricks/spark-sklearn/blob/3dc69d95b082d59cb5b19a56fe0b4f16b8d8c0c5/python/)와 호환되지 않습니다. spark_sklearn.GridSearchCV의 spark_sklearn/grid_search.py ​​# L25). 나를 위해 그것을 사용하지 않을 강한 이유. – sascha

+0

파이썬 2.7에서도 같은 문제가 있습니다. – user1753235

답변

0

내 스크립트를 실행하는 데 동일한 문제가 있음을 발견했습니다.
spark_sklearn 0.2.0을 사용하고 있습니까? 며칠 동안 0.2.1 버전을 사용할 수 있으며이 패키지를 업데이트 한 후에 똑같은 오류가 발생했습니다.

당신은 터미널에서 시도 할 수는 :

pip uninstall spark-sklearn
pip install spark-sklearn==0.2.0

그것은 나를 위해 작동합니다. 행운을 빕니다 !


0

이 문제에 사용되지 않는 API를 배우기 scikit의의 사용이 sklearn을 촉발 할 예정이다 0.19.0을 scikit을 배우기.

는 지금 해결 방법은

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)