关于自动机器学习flaml训练时的一些报错

一、版本背景

flaml == 1.1.3

sciket-learn == 0.23.0

二、一路报错

2.1、SyntaxError: future feature annotations is not defined
Traceback (most recent call last):
  File "C:/Users/dell/Desktop/AI/run.py", line 151, in <module>
    model.autoMlArgs(queryDf,target)
  File "C:/Users/dell/Desktop/AI/run.py", line 61, in autoMlArgs
    from flaml import AutoML
  File "C:\Users\dell\Anaconda3\envs\modelEnv\lib\site-packages\flaml\__init__.py", line 2, in <module>
    from flaml.automl import AutoML, logger_formatter
  File "C:\Users\dell\Anaconda3\envs\modelEnv\lib\site-packages\flaml\automl\__init__.py", line 1, in <module>
    from flaml.automl.automl import AutoML, AutoMLState, SearchState, logger_formatter, size
  File "C:\Users\dell\Anaconda3\envs\modelEnv\lib\site-packages\flaml\automl\automl.py", line 5
    from __future__ import annotations
    ^
SyntaxError: future feature annotations is not defined
2.2、解决SyntaxError: future feature annotations is not defined

进入到flaml的automl下的automl.py文件。找到from __future__ import annotations,注释即可(网上搜索这一行代码是需要升级python版本到3.7才能正常执行)

2.3、ImportError: cannot import name 'StratifiedGroupKFold'
Traceback (most recent call last):
  File "C:/Users/dell/Desktop/AI/run.py", line 151, in <module>
    model.autoMlArgs(queryDf,target)
  File "C:/Users/dell/Desktop/AI/run.py", line 61, in autoMlArgs
    from flaml import AutoML
  File "C:\Users\dell\Anaconda3\envs\modelEnv\lib\site-packages\flaml\__init__.py", line 2, in <module>
    from flaml.automl import AutoML, logger_formatter
  File "C:\Users\dell\Anaconda3\envs\modelEnv\lib\site-packages\flaml\automl\__init__.py", line 1, in <module>
    from flaml.automl.automl import AutoML, AutoMLState, SearchState, logger_formatter, size
  File "C:\Users\dell\Anaconda3\envs\modelEnv\lib\site-packages\flaml\automl\automl.py", line 14, in <module>
    from sklearn.model_selection import (
ImportError: cannot import name 'StratifiedGroupKFold'

2.4、解决ImportError: cannot import name 'StratifiedGroupKFold'

原因是flaml版本太高了,卸载重装flaml为0.10.0即可

pip install flaml==0.10.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

2.5、xgboost.core.XGBoostError: C:/Users/xxx/learner.cc:567: Check failed:mparam_.num_feature != 0 (0 vs. 0) : 0 feature is supplied. Are you using raw Booster interface?
Traceback (most recent call last):
  File "C:/Users/dell/Desktop/AI/run.py", line 65, in <module>
    autoMl.fit(queryDf, target.values, **settings)
  File "C:\Users\dell\Anaconda3\envs\modelEnv\lib\site-packages\flaml\automl.py", line 2275, in fit
    self._search()
  File "C:\Users\dell\Anaconda3\envs\modelEnv\lib\site-packages\flaml\automl.py", line 2771, in _search
    self._search_sequential()
  File "C:\Users\dell\Anaconda3\envs\modelEnv\lib\site-packages\flaml\automl.py", line 2594, in _search_sequential
    use_ray=False,
  File "C:\Users\dell\Anaconda3\envs\modelEnv\lib\site-packages\flaml\tune\tune.py", line 452, in run
    result = evaluation_function(trial_to_run.config)
  File "C:\Users\dell\Anaconda3\envs\modelEnv\lib\site-packages\flaml\automl.py", line 280, in _compute_with_config_base
    state.fit_kwargs,
  File "C:\Users\dell\Anaconda3\envs\modelEnv\lib\site-packages\flaml\ml.py", line 592, in compute_estimator
    fit_kwargs=fit_kwargs,
  File "C:\Users\dell\Anaconda3\envs\modelEnv\lib\site-packages\flaml\ml.py", line 501, in evaluate_model_CV
    fit_kwargs=fit_kwargs,
  File "C:\Users\dell\Anaconda3\envs\modelEnv\lib\site-packages\flaml\ml.py", line 400, in get_val_loss
    estimator.fit(X_train, y_train, budget, **fit_kwargs)
  File "C:\Users\dell\Anaconda3\envs\modelEnv\lib\site-packages\flaml\model.py", line 1201, in fit
    return super().fit(X_train, y_train, budget, **kwargs)
  File "C:\Users\dell\Anaconda3\envs\modelEnv\lib\site-packages\flaml\model.py", line 972, in fit
    **kwargs,
  File "C:\Users\dell\Anaconda3\envs\modelEnv\lib\site-packages\flaml\model.py", line 152, in _fit
    model.fit(X_train, y_train, **kwargs)
  File "C:\Users\dell\Anaconda3\envs\modelEnv\lib\site-packages\xgboost\core.py", line 422, in inner_f
    return f(**kwargs)
  File "C:\Users\dell\Anaconda3\envs\modelEnv\lib\site-packages\xgboost\sklearn.py", line 915, in fit
    callbacks=callbacks)
  File "C:\Users\dell\Anaconda3\envs\modelEnv\lib\site-packages\xgboost\training.py", line 235, in train
    early_stopping_rounds=early_stopping_rounds)
  File "C:\Users\dell\Anaconda3\envs\modelEnv\lib\site-packages\xgboost\training.py", line 102, in _train_internal
    bst.update(dtrain, i, obj)
  File "C:\Users\dell\Anaconda3\envs\modelEnv\lib\site-packages\xgboost\core.py", line 1282, in update
    dtrain.handle))
  File "C:\Users\dell\Anaconda3\envs\modelEnv\lib\site-packages\xgboost\core.py", line 189, in _check_call
    raise XGBoostError(py_str(_LIB.XGBGetLastError()))
xgboost.core.XGBoostError: [14:26:20] C:/Users/Administrator/workspace/xgboost-win64_release_1.3.0/src/learner.cc:567: Check failed: mparam_.num_feature != 0 (0 vs. 0) : 0 feature is supplied.  Are you using raw Booster interface?

1)、可能是特征数过少?直接在fit的 estimator_list 里指定训练模型的范围,不勾选xgboost即可。

2)、修改传入fit里的x和y的类型。我之前是直接传的dataframe,改为dataframe.values即可。(暂时不太理解)

三、总结

暂时先写这么多问题,后续如果有新的问题会更新本文章。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值