def fit(cfg_dict, x_train, y_train, x_test, y_test): # fit __spec__ = None model = Tree_Model(cfg_dict, x_train, y_train, x_test, y_test) model_name = cfg_dict['train']['model'] if model_name == 'lightgbm': bst = model.lgb_fit() elif model_name == 'xgboost': if cfg_dict['train']['if_grid_search'] == 'True': print('GS_CV......') model.GS_CV_xgb(int(cfg_dict['train']['grid_search_group'])) print('GS_CV finished!') return 0, 0, 0 bst = model.xgb_fit() elif model_name == 'catboost': bst = model.cat_fit() else: bst = 0 print('model name error') sys.exit() if bst == 'gscv': sys.exit() return bst
时间: 2024-04-18 14:30:08 浏览: 94
cfg.zip_cfg_cfg to parser
这段代码定义了一个名为 fit 的函数,用于训练模型。
首先,在函数中创建了一个 Tree_Model 的实例 model,该实例用于模型的训练和预测。
接着,代码从配置参数 cfg_dict 中获取了模型的名称,保存在 model_name 变量中。
然后,根据 model_name 的取值,选择不同的模型进行训练和预测。如果 model_name 为 'lightgbm',则调用 model 的 lgb_fit 方法进行 LightGBM 模型的训练;如果 model_name 为 'xgboost',则根据配置参数 cfg_dict['train']['if_grid_search'] 的取值判断是否进行网格搜索,若为 'True' 则调用 model 的 GS_CV_xgb 方法进行 XGBoost 模型的网格搜索交叉验证,否则调用 model 的 xgb_fit 方法进行 XGBoost 模型的训练;如果 model_name 为 'catboost',则调用 model 的 cat_fit 方法进行 CatBoost 模型的训练;否则打印错误信息并退出程序。
接下来,根据模型训练的结果,将训练好的模型保存在 bst 变量中。
最后,根据 bst 的取值判断是否进行了网格搜索交叉验证,若是则退出程序。
函数返回 bst 变量,即训练好的模型。
阅读全文