Evalml: Не удается запустить AutoML на наборе данных Iris

Созданный на 23 июл. 2020  ·  3Комментарии  ·  Источник: alteryx/evalml

Запуск evalml 0.11.2. Похоже, что из AutoMLSearch была удалена возможность устанавливать для проверки данных значение False, что ранее позволяло решить эту проблему.


TypeError Traceback (последний вызов последним)
в
1 automl = AutoMLSearch (objective = "log_loss_multi", max_pipelines = 5, problem_type = "multiclass")
2
----> 3 авт. Поиск (X, y)

~ .conda \ envs \ evalml_test_1.0 \ lib \ site-packages \ evalml \ automl \ automl_search.py ​​в поиске (self, X, y, data_checks, feature_types, raise_errors, show_iteration_plot)
316
317 data_checks = self._validate_data_checks (data_checks)
-> 318 data_check_results = data_checks.validate (X, y)
319
320, если len (data_check_results)> 0:

~ .conda \ envs \ evalml_test_1.0 \ lib \ site-packages \ evalml \ data_checks \ data_checks.py в validate (self, X, y)
33 сообщения = []
34 для data_check в self.data_checks:
---> 35 messages_new = data_check.validate (X, y)
36 messages.extend (messages_new)
37 ответных сообщений

~ .conda \ envs \ evalml_test_1.0 \ lib \ site-packages \ evalml \ data_checks \ label_leakage_data_check.py в validate (self, X, y)
53, если len (X.columns) == 0:
54 возврат []
---> 55 corrs = {label: abs (y.corr (col)) для метки, col в X.iteritems (), если abs (y.corr (col))> = self.pct_corr_threshold}
56
57 high_corr_cols = {ключ: значение для ключа, значение в corrs.items (), если значение> = self.pct_corr_threshold}

~ .conda \ envs \ evalml_test_1.0 \ lib \ site-packages \ evalml \ data_checks \ label_leakage_data_check.py в(.0)
53, если len (X.columns) == 0:
54 возврат []
---> 55 corrs = {label: abs (y.corr (col)) для метки, col в X.iteritems (), если abs (y.corr (col))> = self.pct_corr_threshold}
56
57 high_corr_cols = {ключ: значение для ключа, значение в corrs.items (), если значение> = self.pct_corr_threshold}

~ .conda \ envs \ evalml_test_1.0 \ lib \ site-packages \ pandas \ core \ series.py в corr (self, other, method, min_periods)
2252, если метод в ["pearson", "spearman", "kendall"] или вызываемый (метод):
2253 возврат nanops.nancorr (
-> 2254 this.values, other.values, method = method, min_periods = min_periods
2255)
2256

~ .conda \ envs \ evalml_test_1.0 \ lib \ site-packages \ pandas \ core \ nanops.py в _f ( args, * kwargs)
67 попыток:
68 с np.errstate (invalid = "ignore"):
---> 69 return f ( args, * kwargs)
70 кроме ValueError как e:
71 # мы хотим преобразовать массив объектов

~ .conda \ envs \ evalml_test_1.0 \ lib \ site-packages \ pandas \ core \ nanops.py в nancorr (a, b, method, min_periods)
1238
1239 f = get_corr_func (метод)
-> 1240 возврат f (a, b)
1241
1242

~ .conda \ envs \ evalml_test_1.0 \ lib \ site-packages \ pandas \ core \ nanops.py в _pearson (a, b)
1254
1255 def _pearson (a, b):
-> 1256 return np.corrcoef (a, b) [0, 1]
1257
1258 def _kendall (a, b):

<__ array_function__ internals> в corrcoef ( args, * kwargs)

~ .conda \ envs \ evalml_test_1.0 \ lib \ site-packages \ numpy \ lib \ function_base.py в corrcoef (x, y, rowvar, bias, ddof)
2524 warnings.warn ('bias и ddof не действуют и устарели',
2525 DeprecationWarning, stacklevel = 3)
-> 2526 c = cov (x, y, rowvar)
2527 попыток:
2528 d = диаг (c)

<__ array_function__ internals> в cov ( args, * kwargs)

~ .conda \ envs \ evalml_test_1.0 \ lib \ site-packages \ numpy \ lib \ function_base.py в cov (m, y, rowvar, bias, ddof, fweights, aweights)
2429 w * = вес
2430
-> 2431 в среднем, w_sum = среднее (X, ось = 1, веса = w, возвращено = True)
2432 w_sum = w_sum [0]
2433

<__ array_function__ internals> в среднем ( args, * kwargs)

~ .conda \ envs \ evalml_test_1.0 \ lib \ site-packages \ numpy \ lib \ function_base.py в среднем (a, ось, веса, возвращено)
391
392, если весов нет:
-> 393 avg = a.mean (ось)
394 scl = avg.dtype.type (a.size / avg.size)
Еще 395:

~ .conda \ envs \ evalml_test_1.0 \ lib \ site-packages \ numpy \ core_methods.py в _mean (a, axis, dtype, out, keepdims)
152, если isinstance (ret, mu.ndarray):
153 ret = um.true_divide (
-> 154 ret, rcount, out = ret, casting = 'unsafe', subok = False)
155, если is_float16_result и out равно None:
156 ret = arr.dtype.type (рет)

TypeError: неподдерживаемые типы операндов для /: 'str' и 'int'

При запуске он делает что-то немного другое - поиск выполняется вместо сбоя с трассировкой стека, но все оценки для всех конвейеров равны nan.

Оптимизация для мультикласса с потерей журнала.
Чем меньше балл, тем лучше.

Поиск до 4-х трубопроводов.
Допустимые семейства моделей: random_forest, xgboost, linear_model, catboost

(1/4) Режим Baseline MultiClass Classificati ... Прошедшее: 00 : 00
Запуск перекрестной проверки
Ошибка в PipelineBase.score при оценке цели Log Loss Multiclass: ufunc 'isnan' не поддерживается для входных типов, и входные данные не могут быть безопасно приведены к каким-либо поддерживаемым типам в соответствии с правилом приведения «безопасно»
Ошибка в PipelineBase.score при оценке цели Log Loss Multiclass: ufunc 'isnan' не поддерживается для входных типов, и входные данные не могут быть безопасно приведены к каким-либо поддерживаемым типам в соответствии с правилом приведения «безопасно»
Ошибка в PipelineBase.score при оценке цели Log Loss Multiclass: ufunc 'isnan' не поддерживается для входных типов, и входные данные не могут быть безопасно приведены к каким-либо поддерживаемым типам в соответствии с правилом приведения «безопасно»
Завершенная перекрестная проверка - среднее значение Log Loss Multiclass: nan
(2/4) CatBoost Classifier w / Simple Imputer Elapsed: 00:00
Запуск перекрестной проверки
Ошибка в PipelineBase.score при оценке цели Log Loss Multiclass: ufunc 'isnan' не поддерживается для входных типов, и входные данные не могут быть безопасно приведены к каким-либо поддерживаемым типам в соответствии с правилом приведения «безопасно»
Ошибка в PipelineBase.score при оценке цели Log Loss Multiclass: ufunc 'isnan' не поддерживается для входных типов, и входные данные не могут быть безопасно приведены к каким-либо поддерживаемым типам в соответствии с правилом приведения «безопасно»
Ошибка в PipelineBase.score при оценке цели Log Loss Multiclass: ufunc 'isnan' не поддерживается для входных типов, и входные данные не могут быть безопасно приведены к каким-либо поддерживаемым типам в соответствии с правилом приведения «безопасно»
Завершение перекрестной проверки - среднее значение Log Loss Multiclass: nan
(3/4) XGBoost Classifier w / Simple Imputer Elapsed: 00:02 (3)
Запуск перекрестной проверки
Ошибка в PipelineBase.score при оценке цели Log Loss Multiclass: ufunc 'isnan' не поддерживается для входных типов, и входные данные не могут быть безопасно приведены к каким-либо поддерживаемым типам в соответствии с правилом приведения «безопасно»
Ошибка в PipelineBase.score при оценке цели Log Loss Multiclass: ufunc 'isnan' не поддерживается для входных типов, и входные данные не могут быть безопасно приведены к каким-либо поддерживаемым типам в соответствии с правилом приведения «безопасно»
Ошибка в PipelineBase.score при оценке цели Log Loss Multiclass: ufunc 'isnan' не поддерживается для входных типов, и входные данные не могут быть безопасно приведены к каким-либо поддерживаемым типам в соответствии с правилом приведения «безопасно»
Завершение перекрестной проверки - среднее значение Log Loss Multiclass: nan
(4/4) Классификатор случайных лесов с простым Im ... Прошло : 00:02
Запуск перекрестной проверки
Ошибка в PipelineBase.score при оценке цели Log Loss Multiclass: ufunc 'isnan' не поддерживается для входных типов, и входные данные не могут быть безопасно приведены к каким-либо поддерживаемым типам в соответствии с правилом приведения «безопасно»
Ошибка в PipelineBase.score при оценке цели Log Loss Multiclass: ufunc 'isnan' не поддерживается для входных типов, и входные данные не могут быть безопасно приведены к каким-либо поддерживаемым типам в соответствии с правилом приведения «безопасно»
Ошибка в PipelineBase.score при оценке цели Log Loss Multiclass: ufunc 'isnan' не поддерживается для входных типов, и входные данные не могут быть безопасно приведены к каким-либо поддерживаемым типам в соответствии с правилом приведения «безопасно»
Завершенная перекрестная проверка - среднее значение Log Loss Multiclass: nan

Поиск завершен после 00:02
Лучший конвейер: Mode Baseline Multiclass Classification Pipeline
Лучший мультикласс логических потерь в конвейере: nan
ToolId 3: инструмент AutoML готов
Завершено за 14,397 секунды

Типы данных pandas одинаковы в обеих средах.

sepal.length float64
sepal.width float64
petal.length float64
petal.width float64
объект класса
dtype: объект

Блокнот Jupyter использует Python 3.7.3, а инструмент - 3.6.8.

Все 3 Комментарий

@SydneyAyx : да, мы изменили механизм отключения проверки данных в 0.11.2:

automl.search(..., data_checks=None, ...)

Обратите внимание, что мы должны добавить это в раздел руководства пользователя.

Пожалуйста, попробуйте, и если это все еще не решит вашу проблему, давайте поговорим еще раз.

Если это решит проблему, я помню, что # 828 был ранее зарегистрирован для отслеживания этого. И мы закрыли это в пользу # 645, которая в настоящее время находится в разработке. Однако я не уверен, что # 645 действительно решит основную проблему. Так что оставим его открытым.

Ах, я запутался насчет временной шкалы: # 932 был объединен на прошлой неделе и исправляет эту проблему! Я просто запустил репродуктор, который написал в # 828, чтобы подтвердить это. Следующий выпуск ( 0.12.0 , следующий вторник) будет включать исправление.

Я оставлю это открытым и закрою, когда мы выпустим этот релиз.

Исправлено в v0.12.0 которое только что погасло!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги