tI не удается использовать GridSearchCV с использованием классификаторов KNeighbors. Я получаю следующее сообщение об ошибке при выдаче grid.fit (dataImp, у):scikit learn GridSearchCV on KNeighbors
TypeError: «Init() получила неожиданный аргумент ключевого слова„р“»
Ошибки при используются способность восстановления любых данных , Данные, на которые даны ссылки, являются лишь фиктивными данными для теста.
Код для воспроизведения ниже:
from sklearn.grid_search import GridSearchCV
from sklearn import cross_validation
from sklearn import neighbors
import numpy as np
dataImpNew = np.transpose(np.atleast_2d(np.arange(20.)))*np.arange(20.)
yNew = np.sign(np.arange(-5.5,14))
nFolds = 4
random_state = 1234
metrics = ['minkowski','euclidean','manhattan']
weights = ['uniform','distance'] #10.0**np.arange(-5,4)
numNeighbors = np.arange(5,10)
param_grid = dict(metric=metrics,weights=weights,n_neighbors=numNeighbors)
cv = cross_validation.StratifiedKFold(yNew,nFolds)
grid = GridSearchCV(neighbors.KNeighborsClassifier(),param_grid=param_grid,cv=cv)
grid.fit(dataImpNew,yNew)
Полного Trackback:
Traceback (most recent call last):
File "/home/pjvalla/testDir/test.py", line 25, in <module>
grid.fit(dataImpNew,yNew)
File "/usr/lib/python2.7/dist-packages/sklearn/grid_search.py", line 596, in fit
return self._fit(X, y, ParameterGrid(self.param_grid))
File "/usr/lib/python2.7/dist-packages/sklearn/grid_search.py", line 378, in _fit
for parameters in parameter_iterable
File "/usr/lib/python2.7/dist-packages/joblib/parallel.py", line 653, in __call__
self.dispatch(function, args, kwargs)
File "/usr/lib/python2.7/dist-packages/joblib/parallel.py", line 400, in dispatch
job = ImmediateApply(func, args, kwargs)
File "/usr/lib/python2.7/dist-packages/joblib/parallel.py", line 138, in __init__
self.results = func(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/sklearn/cross_validation.py", line 1239, in _fit_and_score
estimator.fit(X_train, y_train, **fit_params)
File "/usr/lib/python2.7/dist-packages/sklearn/neighbors/base.py", line 628, in fit
return self._fit(X)
File "/usr/lib/python2.7/dist-packages/sklearn/neighbors/base.py", line 217, in _fit
**self.effective_metric_kwds_)
File "binary_tree.pxi", line 1062, in sklearn.neighbors.kd_tree.BinaryTree.__init__ (sklearn/neighbors/kd_tree.c:8380)
File "dist_metrics.pyx", line 280, in sklearn.neighbors.dist_metrics.DistanceMetric.get_metric (sklearn/neighbors/dist_metrics.c:4066)
TypeError: __init__() got an unexpected keyword argument 'p'
Я отредактировал исходное сообщение, чтобы включить полную трассировку. Также обновлен исходный код. Спасибо за быструю обратную связь. –
Итак, я обновил scikit-learn от 0.15.1 до 0.15.2, и скрипт больше не терпит неудачу. –