Evalml: IrisデータセットでのAutoMLの実行が失敗する

作成日 2020年07月23日  ·  3コメント  ·  ソース: alteryx/evalml

evalml0.11.2を実行しています。 データチェックをFalseに設定するオプションがAutoMLSearchから削除されたようです。これは、以前はこの問題の回避策でした。


TypeErrorトレースバック(最後の最後の呼び出し)

1 automl = AutoMLSearch(objective = "log_loss_multi"、max_pipelines = 5、problem_type = "multiclass")
2
----> 3 automl.search(X、y)

〜.conda \ envs \ evalml_test_1.0 \ lib \ site-packages \ evalml \ automl \ automl_search.py​​ in search(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
len(data_check_results)> 0の場合は320:

〜.conda \ envs \ evalml_test_1.0 \ lib \ site-packages \ evalml \ data_checks \ data_checks.py in validate(self、X、y)
33メッセージ= []
self.data_checksのdata_checkの場合は34:
---> 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 in validate(self、X、y)
53 if len(X.columns)== 0:
54リターン[]
---> 55 corrs = {label:abs(y.corr(col))for label、col in X.iteritems()if abs(y.corr(col))> = self.pct_corr_threshold}
56
57highly_corr_cols = {キー:キーの値、値> = self.pct_corr_thresholdの場合はcorrs.items()の値}

〜.conda \ envs \ evalml_test_1.0 \ lib \ site-packages \ evalml \ data_checks \ label_leakage_data_check.py in(.0)
53 if len(X.columns)== 0:
54リターン[]
---> 55 corrs = {label:abs(y.corr(col))for label、col in X.iteritems()if abs(y.corr(col))> = self.pct_corr_threshold}
56
57highly_corr_cols = {キー:キーの値、値> = self.pct_corr_thresholdの場合はcorrs.items()の値}

〜.conda \ envs \ evalml_test_1.0 \ lib \ site-packages \ pandas \ core \ series.py in corr(self、other、method、min_periods)
["pearson"、 "spearman"、 "kendall"]またはcallable(method)のメソッドの場合は2252:
2253 return 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 in _f( args、* kwargs)
67試してみてください:
68 with np.errstate(invalid = "ignore"):
---> 69 return f( args、* kwargs)
eとしてのValueErrorを除く70:
71#オブジェクト配列を変換したい

〜.conda \ envs \ evalml_test_1.0 \ lib \ site-packages \ pandas \ core \ nanops.py in nancorr(a、b、method、min_periods)
1238
1239 f = get_corr_func(method)
-> 1240 return f(a、b)
1241
1242

〜.conda \ envs \ evalml_test_1.0 \ lib \ site-packages \ pandas \ core \ nanops.py in _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> in corrcoef( args、* kwargs)

〜.conda \ envs \ evalml_test_1.0 \ lib \ site-packages \ numpy \ lib \ function_base.py in corrcoef(x、y、rowvar、bias、ddof)
2524 warnings.warn( 'biasとddofは効果がなく、非推奨です'、
2525 DeprecationWarning、stacklevel = 3)
-> 2526 c = cov(x、y、rowvar)
2527試してみてください:
2528 d = diag(c)

<__ array_function__ internals> in cov( args、* kwargs)

〜.conda \ envs \ evalml_test_1.0 \ lib \ site-packages \ numpy \ lib \ function_base.py in cov(m、y、rowvar、bias、ddof、fweights、aweights)
2429 w * = aweights
2430
-> 2431 avg、w_sum = average(X、axis = 1、weights = w、returned = 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、axis、weights、returned)
391
重みがNoneの場合は392:
-> 393 avg = a.mean(axis)
394 scl = avg.dtype.type(a.size / avg.size)
395その他:

〜.conda \ envs \ evalml_test_1.0 \ lib \ site-packages \ numpy \ core_methods.py in _mean(a、axis、dtype、out、keepdims)
152 if isinstance(ret、mu.ndarray):
153 ret = um.true_divide(
-> 154 ret、rcount、out = ret、casting = 'unsafe'、subok = False)
is_float16_resultでoutがNoneの場合は155:
156 ret = arr.dtype.type(ret)

TypeError:/のサポートされていないオペランドタイプ: 'str'および 'int'

実行すると少し異なる動作をします。検索はスタックトレースで失敗する代わりに実行されますが、すべてのパイプラインのすべてのスコアはnanです。

ログ損失マルチクラスの最適化。
スコアが低いほど良いです。

最大4つのパイプラインを検索します。
許可されるモデルファミリ:random_forest、xgboost、linear_model、catboost

(1/4)モードベースラインマルチクラス分類...経過:00 :00
相互検証の開始
目的のログ損失マルチクラスのスコアリング中にPipelineBase.scoreでエラーが発生しました:ufunc'isnan 'は入力タイプでサポートされておらず、キャストルール' 'safe' 'に従って、サポートされているタイプに入力を安全に強制変換できませんでした
目的のログ損失マルチクラスのスコアリング中にPipelineBase.scoreでエラーが発生しました:ufunc'isnan 'は入力タイプでサポートされておらず、キャストルール' 'safe' 'に従って、サポートされているタイプに入力を安全に強制変換できませんでした
目的のログ損失マルチクラスのスコアリング中にPipelineBase.scoreでエラーが発生しました:ufunc'isnan 'は入力タイプでサポートされておらず、キャストルール' 'safe' 'に従って、サポートされているタイプに入力を安全に強制変換できませんでした
クロス検証が終了しました-平均ログ損失マルチクラス:nan
(2/4)単純代入器付きCatBoost分類子経過:00 :00
相互検証の開始
目的のログ損失マルチクラスのスコアリング中にPipelineBase.scoreでエラーが発生しました:ufunc'isnan 'は入力タイプでサポートされておらず、キャストルール' 'safe' 'に従って、サポートされているタイプに入力を安全に強制変換できませんでした
目的のログ損失マルチクラスのスコアリング中にPipelineBase.scoreでエラーが発生しました:ufunc'isnan 'は入力タイプでサポートされておらず、キャストルール' 'safe' 'に従って、サポートされているタイプに入力を安全に強制変換できませんでした
目的のログ損失マルチクラスのスコアリング中にPipelineBase.scoreでエラーが発生しました:ufunc'isnan 'は入力タイプでサポートされておらず、キャストルール' 'safe' 'に従って、サポートされているタイプに入力を安全に強制変換できませんでした
クロス検証が終了しました-平均ログ損失マルチクラス:nan
(3/4)XGBoost Classifier w / Simple Imputer Elapsed:00 :02
相互検証の開始
目的のログ損失マルチクラスのスコアリング中にPipelineBase.scoreでエラーが発生しました:ufunc'isnan 'は入力タイプでサポートされておらず、キャストルール' 'safe' 'に従って、サポートされているタイプに入力を安全に強制変換できませんでした
目的のログ損失マルチクラスのスコアリング中にPipelineBase.scoreでエラーが発生しました:ufunc'isnan 'は入力タイプでサポートされておらず、キャストルール' 'safe' 'に従って、サポートされているタイプに入力を安全に強制変換できませんでした
目的のログ損失マルチクラスのスコアリング中にPipelineBase.scoreでエラーが発生しました:ufunc'isnan 'は入力タイプでサポートされておらず、キャストルール' 'safe' 'に従って、サポートされているタイプに入力を安全に強制変換できませんでした
クロス検証が終了しました-平均ログ損失マルチクラス:nan
(4/4)単純なImを使用したランダムフォレスト分類子...経過:00 :02
相互検証の開始
目的のログ損失マルチクラスのスコアリング中にPipelineBase.scoreでエラーが発生しました:ufunc'isnan 'は入力タイプでサポートされておらず、キャストルール' 'safe' 'に従って、サポートされているタイプに入力を安全に強制変換できませんでした
目的のログ損失マルチクラスのスコアリング中にPipelineBase.scoreでエラーが発生しました:ufunc'isnan 'は入力タイプでサポートされておらず、キャストルール' 'safe' 'に従って、サポートされているタイプに入力を安全に強制変換できませんでした
目的のログ損失マルチクラスのスコアリング中にPipelineBase.scoreでエラーが発生しました:ufunc'isnan 'は入力タイプでサポートされておらず、キャストルール' 'safe' 'に従って、サポートされているタイプに入力を安全に強制変換できませんでした
クロス検証が終了しました-平均ログ損失マルチクラス:nan

00:02以降に検索が終了しました
最適なパイプライン:モードベースラインマルチクラス分類パイプライン
最高のパイプラインログ損失マルチクラス:nan
ToolId 3:AutoMLツールが完了しました
14.397秒で終了

パンダのデータ型は両方の環境で同じです。

sepal.length float64
sepal.width float64
petal.length float64
petal.width float64
クラスオブジェクト
dtype:オブジェクト

JupyterノートブックはPython3.7.3を使用しており、ツールは3.6.8です。

bug

全てのコメント3件

@SydneyAyxデータチェックを無効にするメカニズムを変更しました:

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

これをユーザーガイドセクションに追加する必要があることに注意してください。

それでも問題が解決しない場合は、もう一度話しましょう。

それで問題が解決する場合は、これを追跡するために#828が以前に提出されたことを覚えています。 そして、現在進行中の#645を支持して、それを閉じました。 ただし、#645が根本的な問題を実際に修正するかどうかはわかりません。 それでは、開いたままにしておきましょう。

ああ、私はタイムラインについて混乱しました:#932は先週マージされ、この問題を修正しました! これを確認するために、#828で書いたリプロデューサーを実行しました。 次のリリース( 0.12.0 、次の火曜日)には修正が含まれます。

このリリースを出すときは、これを開いたままにして閉じます。

出たばかりのv0.12.0で修正されました!

このページは役に立ちましたか?
0 / 5 - 0 評価