Неверная ошибка параметра при выполнении метода поиска Grid Scikit-Scirect -- python-2.7 поле с участием machine-learning поле с участием scikit-learn поле с участием grid-search поле с участием hyperparameters пол Связанный проблема

Invalid parameter error when doing python scikit-learn grid-search method


0
vote

проблема

русский

Я пытаюсь узнать, как найти оптимальные гиперпараметры в классификации деревьев решений с использованием метода GridSearchCV () от Scikit-Suart.

Проблема в том, что это нормально, если я указываю только один параметр параметров, это нормально, как в следующем:

 <код> print(__doc__)  # Code source: Gael Varoquaux # Modified for documentation by Jaques Grobler # License: BSD 3 clause  from sklearn import datasets from sklearn.grid_search import GridSearchCV from sklearn.tree import DecisionTreeClassifier  # define classifier dt = DecisionTreeClassifier()  # import some data to play with iris = datasets.load_iris() X = iris.data[:, :2]  # we only take the first two features. y = iris.target  # define parameter values that should be searched min_samples_split_options = range(2, 4)  # create a parameter grid: map the parameter names to the values that should be saved param_grid_dt = dict(min_samples_split= min_samples_split_options) # for DT  # instantiate the grid grid = GridSearchCV(dt, param_grid_dt, cv=10, scoring='accuracy')  # fit the grid with param grid.fit(X, y)  # view complete results grid.grid_scores_  '''# examine results from first tuple print grid.grid_scores_[0].parameters print grid.grid_scores_[0].cv_validation_scores print grid.grid_scores_[0].mean_validation_score'''  # examine the best model print '*******Final results*********' print grid.best_score_ print grid.best_params_ print grid.best_estimator_   

Результат:

 <код> None *******Final results********* 0.68 {'min_samples_split': 3} DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=None,             max_features=None, max_leaf_nodes=None, min_samples_leaf=1,             min_samples_split=3, min_weight_fraction_leaf=0.0,             presort=False, random_state=None, splitter='best')   

Но когда я добавляю параметры еще одного параметра в смеси, он дает мне ошибку «Неверный параметр», следующим образом:

 <код> print(__doc__)   # Code source: Gael Varoquaux # Modified for documentation by Jaques Grobler # License: BSD 3 clause  from sklearn import datasets from sklearn.grid_search import GridSearchCV from sklearn.tree import DecisionTreeClassifier  # define classifier dt = DecisionTreeClassifier()  # import some data to play with iris = datasets.load_iris() X = iris.data[:, :2]  # we only take the first two features. y = iris.target  # define parameter values that should be searched max_depth_options = range(10, 251) # for DT min_samples_split_options = range(2, 4)  # create a parameter grid: map the parameter names to the values that should be saved param_grid_dt = dict(max_depth=max_depth_options, min_sample_split=min_samples_split_options) # for DT  # instantiate the grid grid = GridSearchCV(dt, param_grid_dt, cv=10, scoring='accuracy')  # fit the grid with param grid.fit(X, y)  '''# view complete results grid.grid_scores_  # examine results from first tuple print grid.grid_scores_[0].parameters print grid.grid_scores_[0].cv_validation_scores print grid.grid_scores_[0].mean_validation_score  # examine the best model print '*******Final results*********' print grid.best_score_ print grid.best_params_ print grid.best_estimator_'''   

Результат:

 <код> None Traceback (most recent call last):   File "C:UsersKubiKDesktopGridSearch_ex6.py", line 31, in <module>     grid.fit(X, y)   File "C:UsersKubiKAnaconda2libsite-packagessklearngrid_search.py", line 804, in fit     return self._fit(X, y, ParameterGrid(self.param_grid))   File "C:UsersKubiKAnaconda2libsite-packagessklearngrid_search.py", line 553, in _fit     for parameters in parameter_iterable   File "C:UsersKubiKAnaconda2libsite-packagessklearnexternalsjoblibparallel.py", line 800, in __call__     while self.dispatch_one_batch(iterator):   File "C:UsersKubiKAnaconda2libsite-packagessklearnexternalsjoblibparallel.py", line 658, in dispatch_one_batch     self._dispatch(tasks)   File "C:UsersKubiKAnaconda2libsite-packagessklearnexternalsjoblibparallel.py", line 566, in _dispatch     job = ImmediateComputeBatch(batch)   File "C:UsersKubiKAnaconda2libsite-packagessklearnexternalsjoblibparallel.py", line 180, in __init__     self.results = batch()   File "C:UsersKubiKAnaconda2libsite-packagessklearnexternalsjoblibparallel.py", line 72, in __call__     return [func(*args, **kwargs) for func, args, kwargs in self.items]   File "C:UsersKubiKAnaconda2libsite-packagessklearncross_validation.py", line 1520, in _fit_and_score     estimator.set_params(**parameters)   File "C:UsersKubiKAnaconda2libsite-packagessklearnase.py", line 270, in set_params     (key, self.__class__.__name__)) ValueError: Invalid parameter min_sample_split for estimator DecisionTreeClassifier. Check the list of available parameters with `estimator.get_params().keys()`. [Finished in 0.3s]   
Английский оригинал

I am trying to learn how to find the optimal hyperparameters in decision trees classifier using the GridSearchCV() method from scikit-learn.

The problem is it is fine if I am specifying just one parameter's options, it is fine as in the following:

print(__doc__)  # Code source: Gael Varoquaux # Modified for documentation by Jaques Grobler # License: BSD 3 clause  from sklearn import datasets from sklearn.grid_search import GridSearchCV from sklearn.tree import DecisionTreeClassifier  # define classifier dt = DecisionTreeClassifier()  # import some data to play with iris = datasets.load_iris() X = iris.data[:, :2]  # we only take the first two features. y = iris.target  # define parameter values that should be searched min_samples_split_options = range(2, 4)  # create a parameter grid: map the parameter names to the values that should be saved param_grid_dt = dict(min_samples_split= min_samples_split_options) # for DT  # instantiate the grid grid = GridSearchCV(dt, param_grid_dt, cv=10, scoring='accuracy')  # fit the grid with param grid.fit(X, y)  # view complete results grid.grid_scores_  '''# examine results from first tuple print grid.grid_scores_[0].parameters print grid.grid_scores_[0].cv_validation_scores print grid.grid_scores_[0].mean_validation_score'''  # examine the best model print '*******Final results*********' print grid.best_score_ print grid.best_params_ print grid.best_estimator_ 

Result:

None *******Final results********* 0.68 {'min_samples_split': 3} DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=None,             max_features=None, max_leaf_nodes=None, min_samples_leaf=1,             min_samples_split=3, min_weight_fraction_leaf=0.0,             presort=False, random_state=None, splitter='best') 

But when I add another parameters' options into the mix, it gives me an "invalid parameter" error, as follows:

print(__doc__)   # Code source: Gael Varoquaux # Modified for documentation by Jaques Grobler # License: BSD 3 clause  from sklearn import datasets from sklearn.grid_search import GridSearchCV from sklearn.tree import DecisionTreeClassifier  # define classifier dt = DecisionTreeClassifier()  # import some data to play with iris = datasets.load_iris() X = iris.data[:, :2]  # we only take the first two features. y = iris.target  # define parameter values that should be searched max_depth_options = range(10, 251) # for DT min_samples_split_options = range(2, 4)  # create a parameter grid: map the parameter names to the values that should be saved param_grid_dt = dict(max_depth=max_depth_options, min_sample_split=min_samples_split_options) # for DT  # instantiate the grid grid = GridSearchCV(dt, param_grid_dt, cv=10, scoring='accuracy')  # fit the grid with param grid.fit(X, y)  '''# view complete results grid.grid_scores_  # examine results from first tuple print grid.grid_scores_[0].parameters print grid.grid_scores_[0].cv_validation_scores print grid.grid_scores_[0].mean_validation_score  # examine the best model print '*******Final results*********' print grid.best_score_ print grid.best_params_ print grid.best_estimator_''' 

Result:

None Traceback (most recent call last):   File "C:UsersKubiKDesktopGridSearch_ex6.py", line 31, in <module>     grid.fit(X, y)   File "C:UsersKubiKAnaconda2libsite-packagessklearngrid_search.py", line 804, in fit     return self._fit(X, y, ParameterGrid(self.param_grid))   File "C:UsersKubiKAnaconda2libsite-packagessklearngrid_search.py", line 553, in _fit     for parameters in parameter_iterable   File "C:UsersKubiKAnaconda2libsite-packagessklearnexternalsjoblibparallel.py", line 800, in __call__     while self.dispatch_one_batch(iterator):   File "C:UsersKubiKAnaconda2libsite-packagessklearnexternalsjoblibparallel.py", line 658, in dispatch_one_batch     self._dispatch(tasks)   File "C:UsersKubiKAnaconda2libsite-packagessklearnexternalsjoblibparallel.py", line 566, in _dispatch     job = ImmediateComputeBatch(batch)   File "C:UsersKubiKAnaconda2libsite-packagessklearnexternalsjoblibparallel.py", line 180, in __init__     self.results = batch()   File "C:UsersKubiKAnaconda2libsite-packagessklearnexternalsjoblibparallel.py", line 72, in __call__     return [func(*args, **kwargs) for func, args, kwargs in self.items]   File "C:UsersKubiKAnaconda2libsite-packagessklearncross_validation.py", line 1520, in _fit_and_score     estimator.set_params(**parameters)   File "C:UsersKubiKAnaconda2libsite-packagessklearnase.py", line 270, in set_params     (key, self.__class__.__name__)) ValueError: Invalid parameter min_sample_split for estimator DecisionTreeClassifier. Check the list of available parameters with `estimator.get_params().keys()`. [Finished in 0.3s] 
</div
              
 
 

Список ответов

3
 
vote
vote
Лучший ответ
 
<Р> Там опечатка в коде, он должен быть <код> global $user; if (in_array('authenticated user', $user->roles)) { //do stuff here } 0 не <код> global $user; if (in_array('authenticated user', $user->roles)) { //do stuff here } 1 .
 

There's a typo in your code, it should be min_samples_split not min_sample_split.

</div
 
 

Связанный проблема

-1  Ошибка задержания после разрыва генератора  ( Stopiteration error after breaking out of a generator ) 
Я пытаюсь прочитать двоичный файл кусок за раз. Каждый раз, когда генератор будет yeild 1024 байта данных. Когда я хочу остановить, я называю генератор с .sen...

1  Обновление Numpy версии  ( Upgrading numpy version ) 
У меня есть три насыпки в моей системе. Они находятся в /usr/local/lib/package2.7/dist-packages/numpy, ~ / anaconda2 / lib / python2.7 / site-packages / numpy...

1  Как найти данные из базы данных  ( How to find the data from database ) 
Я работаю над моим сценарием Python, чтобы получить список каналов и программ, когда я вытащил данные из базы данных sqlite3. Я использую переменную channel...

1  OSERROR Во время загрузки совмещенной библиотеки C Python (неопределенный символ: CheckedCalloc)  ( Oserror during loading of c shared library in python undefined symbolcheckedca ) 
Я хотел бы попросить некоторую помощь о следующей проблеме. Некоторые теория: я использую Ubuntu 12.04, Python2.7, и я пытаюсь загрузить Chaired Library (li...

1  Как установить по умолчанию ответ на кнопку с add_action_widget в Gtk.Dialog  ( How to set default response on button with add action widget in gtk dialog ) 
<Р> Я loocking для любой идеи, чтобы решить мою проблему <Р> Пожалуйста, смотрите последующий код. Это демо, чтобы объяснить, что о На самом деле мне нужно ис...

0  Глобальное имя не работает в Python  ( Global name not working in python ) 
Я кодирую программу, где я использую Curses, чтобы создать пользовательский интерфейс, и я получил ширину и высоту терминала через другую команду, и я хочу сд...

0  Запуск сценария Python со значениями от Views.py в Django  ( Running a python script with values from views py in django ) 
Я пытаюсь передать значение, которое я получил в просмотру .py файл в django в другой сценарий python, который я написал, но я понятия не имею, как это сделат...

51  Запросы Python «Пропасные зависимости от поддержки носков» при использовании SOCKS5 из терминала  ( Pythons requests missing dependencies for socks support when using socks5 fro ) 
Я пытаюсь взаимодействовать с API из My Python 2.7 Shell, используя пакет, который опирается на запросы Python. Вещь - это удаленный адрес блокируется моей се...

0  Создание функции хвоста: реверсирующие линии в файле  ( Making tail function reversing lines in a file ) 
Я пытаюсь определить функцию, которая выводит последние N строки в файле. Ниже приведена функция, похоже, в основном работает, кроме того, что первые две стро...

11  Локализация: Django-admin Compilemessages Skip Venv  ( Localization django admin compilemessages skip venv ) 
Я использую локализацию в Django 1.11 приложения. Я могу исключить папку виртуальной среды и <код> node_modules папку при добавлении сообщений в файле сооб...

0  Использование Selenium Python при взаимодействии с веб-сайтом вручную  ( Using selenium python while interacting with a website manually ) 
Обновление: Я создал пользовательский профиль с совместимым способом IE в качестве по умолчанию и получить ту же сообщение об ошибке, поэтому кажется что-то о...

2  Python: как распечатать символ из переменной с строкой Unicode  ( Pythonhow to print the character from a variable with unicode string ) 
Я практикую, как печатать Unicode в Python Мой вопрос: как можно редактировать код ниже, чтобы перевести на Unicode Чтобы распечатать результат всего за 201...

-5  Python Fizzizz  ( Python fizzbuzz ) 
Мне дали этот вопрос в Python: Внесите список номеров от пользователя и запустить Fizzbuzz в этом списке. Когда вы ведете через список, запомните правила:...

2  Скапировка не вызывает никакой другой функции после «__init__»  ( Scrapy not calling any other function after init ) 
ОС: Ubuntu 16.04 Стек - Scrapy 1.0.3 + Selenium Я довольно новичок в Scrape, и это может звучать очень простое, но в моем пауке только « init » выполняется. Л...

3  Установка Django на OSX  ( Django installation on osx ) 
<Сильные> ОС: OS X 10.7.5 У меня есть pyhton 3.3.2 установлен в папке приложений, и я использую простаистых сценариев Python. Я использовал ниже команду дл...