def test_regression_random_forest(): estimator = lightgbm.LGBMRegressor(boosting_type="rf", n_estimators=2, random_state=1, max_depth=1, subsample=0.7, subsample_freq=1) utils.get_regression_model_trainer()(estimator) assembler = assemblers.LightGBMModelAssembler(estimator) actual = assembler.assemble() expected = ast.BinNumExpr( ast.BinNumExpr( ast.IfExpr( ast.CompExpr(ast.FeatureRef(12), ast.NumVal(5.200000000000001), ast.CompOpType.GT), ast.NumVal(20.195681040256623), ast.NumVal(38.30000037757679)), ast.IfExpr( ast.CompExpr(ast.FeatureRef(5), ast.NumVal(6.853000000000001), ast.CompOpType.GT), ast.NumVal(36.14745794219976), ast.NumVal(19.778245570310993)), ast.BinNumOpType.ADD), ast.NumVal(0.5), ast.BinNumOpType.MUL) assert utils.cmp_exprs(actual, expected)
def test_regression_random_forest(): estimator = lightgbm.LGBMRegressor(boosting_type="rf", n_estimators=2, random_state=1, max_depth=1, subsample=0.7, subsample_freq=1) utils.get_regression_model_trainer()(estimator) assembler = assemblers.LightGBMModelAssembler(estimator) actual = assembler.assemble() expected = ast.BinNumExpr( ast.BinNumExpr( ast.BinNumExpr( ast.NumVal(0), ast.IfExpr( ast.CompExpr(ast.FeatureRef(5), ast.NumVal(6.954000000000001), ast.CompOpType.GT), ast.NumVal(37.24347877367631), ast.NumVal(19.936999995530854)), ast.BinNumOpType.ADD), ast.IfExpr( ast.CompExpr(ast.FeatureRef(5), ast.NumVal(6.971500000000001), ast.CompOpType.GT), ast.NumVal(38.48600037864964), ast.NumVal(20.183783757300255)), ast.BinNumOpType.ADD), ast.NumVal(0.5), ast.BinNumOpType.MUL) assert utils.cmp_exprs(actual, expected)
def test_regression(): estimator = lightgbm.LGBMRegressor(n_estimators=2, random_state=1, max_depth=1) utils.get_regression_model_trainer()(estimator) assembler = assemblers.LightGBMModelAssembler(estimator) actual = assembler.assemble() expected = ast.SubroutineExpr( ast.BinNumExpr( ast.BinNumExpr( ast.NumVal(0), ast.SubroutineExpr( ast.IfExpr( ast.CompExpr(ast.FeatureRef(5), ast.NumVal(6.918), ast.CompOpType.GT), ast.NumVal(24.011454621684155), ast.NumVal(22.289277544391084))), ast.BinNumOpType.ADD), ast.SubroutineExpr( ast.IfExpr( ast.CompExpr(ast.FeatureRef(12), ast.NumVal(9.63), ast.CompOpType.GT), ast.NumVal(-0.49461212269771115), ast.NumVal(0.7174324413014594))), ast.BinNumOpType.ADD)) assert utils.cmp_exprs(actual, expected)
def test_regression_random_forest(): estimator = lgb.LGBMRegressor(boosting_type="rf", n_estimators=2, random_state=1, max_depth=1, subsample=0.7, subsample_freq=1) utils.get_regression_model_trainer()(estimator) assembler = LightGBMModelAssembler(estimator) actual = assembler.assemble() expected = ast.BinNumExpr( ast.BinNumExpr( ast.IfExpr( ast.CompExpr(ast.FeatureRef(12), ast.NumVal(9.605), ast.CompOpType.GT), ast.NumVal(17.398543657369768), ast.NumVal(29.851408659650296)), ast.IfExpr( ast.CompExpr(ast.FeatureRef(5), ast.NumVal(6.888), ast.CompOpType.GT), ast.NumVal(37.2235298136268), ast.NumVal(19.948122884684025)), ast.BinNumOpType.ADD), ast.NumVal(0.5), ast.BinNumOpType.MUL) assert utils.cmp_exprs(actual, expected)
def test_maybe_sqr_output_transform(): estimator = lightgbm.LGBMRegressor(n_estimators=2, random_state=1, max_depth=1, reg_sqrt=True, objective="regression_l1") utils.get_regression_model_trainer()(estimator) assembler = assemblers.LightGBMModelAssembler(estimator) actual = assembler.assemble() raw_output = ast.IdExpr(ast.BinNumExpr( ast.IfExpr( ast.CompExpr(ast.FeatureRef(12), ast.NumVal(9.905), ast.CompOpType.GT), ast.NumVal(4.5658116817), ast.NumVal(4.6620790482)), ast.IfExpr( ast.CompExpr(ast.FeatureRef(12), ast.NumVal(9.77), ast.CompOpType.GT), ast.NumVal(-0.0340889740), ast.NumVal(0.0543687153)), ast.BinNumOpType.ADD), to_reuse=True) expected = ast.BinNumExpr(ast.AbsExpr(raw_output), raw_output, ast.BinNumOpType.MUL) assert utils.cmp_exprs(actual, expected)
def test_regression_random_forest(): estimator = lightgbm.LGBMRegressor(boosting_type="rf", n_estimators=2, random_state=1, max_depth=1, subsample=0.7, subsample_freq=1) utils.get_regression_model_trainer()(estimator) assembler = assemblers.LightGBMModelAssembler(estimator) actual = assembler.assemble() expected = ast.BinNumExpr( ast.BinNumExpr( ast.IfExpr( ast.CompExpr(ast.FeatureRef(12), ast.NumVal(5.200000000000001), ast.CompOpType.GT), ast.NumVal(20.206688945020474), ast.NumVal(38.30000037757679)), ast.IfExpr( ast.CompExpr(ast.FeatureRef(5), ast.NumVal(6.837500000000001), ast.CompOpType.GT), ast.NumVal(36.40634951405711), ast.NumVal(19.57067132709245)), ast.BinNumOpType.ADD), ast.NumVal(0.5), ast.BinNumOpType.MUL) assert utils.cmp_exprs(actual, expected)
def test_exp_output_transform(): estimator = lightgbm.LGBMRegressor(n_estimators=2, random_state=1, max_depth=1, objective="poisson") utils.get_regression_model_trainer()(estimator) assembler = assemblers.LightGBMModelAssembler(estimator) actual = assembler.assemble() expected = ast.ExpExpr( ast.BinNumExpr( ast.IfExpr( ast.CompExpr( ast.FeatureRef(5), ast.NumVal(6.918), ast.CompOpType.GT), ast.NumVal(3.1480683932), ast.NumVal(3.1101554907)), ast.IfExpr( ast.CompExpr( ast.FeatureRef(12), ast.NumVal(9.63), ast.CompOpType.GT), ast.NumVal(-0.0111969636), ast.NumVal(0.0160298303)), ast.BinNumOpType.ADD)) assert utils.cmp_exprs(actual, expected)
def test_regression_saved_without_feature_names(): base_score = 0.6 estimator = xgboost.XGBRegressor(n_estimators=2, random_state=1, max_depth=1, base_score=base_score) utils.get_regression_model_trainer()(estimator) with utils.tmp_dir() as tmp_dirpath: filename = os.path.join(tmp_dirpath, "tmp.file") estimator.save_model(filename) estimator = xgboost.XGBRegressor(base_score=base_score) estimator.load_model(filename) assembler = assemblers.XGBoostModelAssemblerSelector(estimator) actual = assembler.assemble() expected = ast.SubroutineExpr( ast.BinNumExpr( ast.BinNumExpr( ast.NumVal(base_score), ast.SubroutineExpr( ast.IfExpr( ast.CompExpr(ast.FeatureRef(12), ast.NumVal(9.72500038), ast.CompOpType.GTE), ast.NumVal(1.6614188), ast.NumVal(2.91697121))), ast.BinNumOpType.ADD), ast.SubroutineExpr( ast.IfExpr( ast.CompExpr(ast.FeatureRef(5), ast.NumVal(6.94099998), ast.CompOpType.GTE), ast.NumVal(3.33810854), ast.NumVal(1.71813202))), ast.BinNumOpType.ADD)) assert utils.cmp_exprs(actual, expected)
def test_regression_random_forest(): base_score = 0.6 estimator = xgboost.XGBRFRegressor(n_estimators=2, random_state=1, max_depth=1, base_score=base_score) utils.get_regression_model_trainer()(estimator) assembler = assemblers.XGBoostModelAssemblerSelector(estimator) actual = assembler.assemble() expected = ast.BinNumExpr( ast.NumVal(base_score), ast.BinNumExpr( ast.IfExpr( ast.CompExpr( ast.FeatureRef(5), ast.NumVal(6.94099998), ast.CompOpType.GTE), ast.NumVal(18.1008453), ast.NumVal(9.60167599)), ast.IfExpr( ast.CompExpr( ast.FeatureRef(5), ast.NumVal(6.79699993), ast.CompOpType.GTE), ast.NumVal(17.780262), ast.NumVal(9.51712894)), ast.BinNumOpType.ADD), ast.BinNumOpType.ADD) assert utils.cmp_exprs(actual, expected)
def test_regression(): base_score = 0.6 estimator = xgboost.XGBRegressor(n_estimators=2, random_state=1, max_depth=1, base_score=base_score) utils.get_regression_model_trainer()(estimator) assembler = assemblers.XGBoostModelAssemblerSelector(estimator) actual = assembler.assemble() expected = ast.BinNumExpr( ast.NumVal(base_score), ast.BinNumExpr( ast.IfExpr( ast.CompExpr( ast.FeatureRef(12), ast.NumVal(9.725), ast.CompOpType.GTE), ast.NumVal(4.98425627), ast.NumVal(8.75091362)), ast.IfExpr( ast.CompExpr( ast.FeatureRef(5), ast.NumVal(6.941), ast.CompOpType.GTE), ast.NumVal(8.34557438), ast.NumVal(3.9141891)), ast.BinNumOpType.ADD), ast.BinNumOpType.ADD) assert utils.cmp_exprs(actual, expected)
def test_regression_best_ntree_limit(): base_score = 0.6 estimator = xgb.XGBRegressor(n_estimators=3, random_state=1, max_depth=1, base_score=base_score) utils.get_regression_model_trainer()(estimator) estimator.get_booster().best_ntree_limit = 2 assembler = XGBoostModelAssemblerSelector(estimator) actual = assembler.assemble() expected = ast.BinNumExpr( ast.NumVal(base_score), ast.BinNumExpr( ast.IfExpr( ast.CompExpr(ast.FeatureRef(12), ast.NumVal(9.72500038), ast.CompOpType.GTE), ast.NumVal(4.995625019073486), ast.NumVal(8.715502738952637)), ast.IfExpr( ast.CompExpr(ast.FeatureRef(5), ast.NumVal(6.94099998), ast.CompOpType.GTE), ast.NumVal(8.309040069580078), ast.NumVal(3.930694580078125)), ast.BinNumOpType.ADD), ast.BinNumOpType.ADD) assert utils.cmp_exprs(actual, expected)
def test_maybe_sqr_output_transform(): estimator = lgb.LGBMRegressor(n_estimators=2, random_state=1, max_depth=1, reg_sqrt=True, objective="regression_l1") utils.get_regression_model_trainer()(estimator) assembler = LightGBMModelAssembler(estimator) actual = assembler.assemble() raw_output = ast.IdExpr(ast.BinNumExpr( ast.IfExpr( ast.CompExpr(ast.FeatureRef(12), ast.NumVal(9.725), ast.CompOpType.GT), ast.NumVal(4.569350528717041), ast.NumVal(4.663526439666748)), ast.IfExpr( ast.CompExpr(ast.FeatureRef(12), ast.NumVal(11.655), ast.CompOpType.GT), ast.NumVal(-0.04462450027465819), ast.NumVal(0.033305134773254384)), ast.BinNumOpType.ADD), to_reuse=True) expected = ast.BinNumExpr(ast.AbsExpr(raw_output), raw_output, ast.BinNumOpType.MUL) assert utils.cmp_exprs(actual, expected)
def test_regression_random_forest(): base_score = 0.6 estimator = xgb.XGBRFRegressor(n_estimators=2, random_state=1, max_depth=1, base_score=base_score) utils.get_regression_model_trainer()(estimator) assembler = XGBoostModelAssemblerSelector(estimator) actual = assembler.assemble() expected = ast.BinNumExpr( ast.NumVal(base_score), ast.BinNumExpr( ast.IfExpr( ast.CompExpr(ast.FeatureRef(5), ast.NumVal(6.94099998), ast.CompOpType.GTE), ast.NumVal(18.38124656677246), ast.NumVal(9.772658348083496)), ast.IfExpr( ast.CompExpr(ast.FeatureRef(12), ast.NumVal(9.539999961853027), ast.CompOpType.GTE), ast.NumVal(8.342499732971191), ast.NumVal(15.027499198913574)), ast.BinNumOpType.ADD), ast.BinNumOpType.ADD) assert utils.cmp_exprs(actual, expected)
def test_regression_saved_without_feature_names(): base_score = 0.6 estimator = xgb.XGBRegressor(n_estimators=2, random_state=1, max_depth=1, base_score=base_score) utils.get_regression_model_trainer()(estimator) with utils.tmp_dir() as tmp_dirpath: filename = tmp_dirpath / "tmp.file" estimator.save_model(filename) estimator = xgb.XGBRegressor(base_score=base_score) estimator.load_model(filename) assembler = XGBoostModelAssemblerSelector(estimator) actual = assembler.assemble() expected = ast.BinNumExpr( ast.NumVal(base_score), ast.BinNumExpr( ast.IfExpr( ast.CompExpr(ast.FeatureRef(12), ast.NumVal(9.72500038), ast.CompOpType.GTE), ast.NumVal(4.995625019073486), ast.NumVal(8.715502738952637)), ast.IfExpr( ast.CompExpr(ast.FeatureRef(5), ast.NumVal(6.94099998), ast.CompOpType.GTE), ast.NumVal(8.309040069580078), ast.NumVal(3.930694580078125)), ast.BinNumOpType.ADD), ast.BinNumOpType.ADD) assert utils.cmp_exprs(actual, expected)
def test_regression_random_forest(): base_score = 0.6 estimator = xgboost.XGBRFRegressor(n_estimators=2, random_state=1, max_depth=1, base_score=base_score) utils.get_regression_model_trainer()(estimator) assembler = assemblers.XGBoostModelAssemblerSelector(estimator) actual = assembler.assemble() expected = ast.SubroutineExpr( ast.BinNumExpr( ast.BinNumExpr( ast.NumVal(0.6), ast.SubroutineExpr( ast.IfExpr( ast.CompExpr(ast.FeatureRef(5), ast.NumVal(6.8375001), ast.CompOpType.GTE), ast.NumVal(17.3671646), ast.NumVal(9.48354053))), ast.BinNumOpType.ADD), ast.SubroutineExpr( ast.IfExpr( ast.CompExpr(ast.FeatureRef(12), ast.NumVal(9.72500038), ast.CompOpType.GTE), ast.NumVal(8.31587982), ast.NumVal(14.7766275))), ast.BinNumOpType.ADD)) assert utils.cmp_exprs(actual, expected)
def test_regression(): base_score = 0.6 estimator = xgboost.XGBRegressor(n_estimators=2, random_state=1, max_depth=1, base_score=base_score) utils.get_regression_model_trainer()(estimator) assembler = assemblers.XGBoostModelAssemblerSelector(estimator) actual = assembler.assemble() expected = ast.SubroutineExpr( ast.BinNumExpr( ast.BinNumExpr( ast.NumVal(base_score), ast.SubroutineExpr( ast.IfExpr( ast.CompExpr(ast.FeatureRef(12), ast.NumVal(9.72500038), ast.CompOpType.GTE), ast.NumVal(1.6614188), ast.NumVal(2.91697121))), ast.BinNumOpType.ADD), ast.SubroutineExpr( ast.IfExpr( ast.CompExpr(ast.FeatureRef(5), ast.NumVal(6.94099998), ast.CompOpType.GTE), ast.NumVal(3.33810854), ast.NumVal(1.71813202))), ast.BinNumOpType.ADD)) assert utils.cmp_exprs(actual, expected)
def _prepare_pickled_model(tmp_path): p = tmp_path / "model.pickle" estimator = linear_model.LinearRegression() utils.get_regression_model_trainer()(estimator) p.write_bytes(pickle.dumps(estimator)) return p
def _get_pickled_trained_model(): estimator = linear_model.LinearRegression() utils.get_regression_model_trainer()(estimator) infile = io.BytesIO() pickle.dump(estimator, infile) infile.seek(0) return infile
def test_linear_model(): # Default updater ("shotgun") is nondeterministic estimator = xgboost.XGBRegressor(n_estimators=2, random_state=1, updater="coord_descent", feature_selector="shuffle", booster="gblinear") utils.get_regression_model_trainer()(estimator) assembler = assemblers.XGBoostModelAssemblerSelector(estimator) actual = assembler.assemble() feature_weight_mul = [ ast.BinNumExpr(ast.FeatureRef(0), ast.NumVal(-0.154567), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(1), ast.NumVal(0.0815865), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(2), ast.NumVal(-0.0979713), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(3), ast.NumVal(4.80472), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(4), ast.NumVal(1.35478), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(5), ast.NumVal(0.327222), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(6), ast.NumVal(0.0610654), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(7), ast.NumVal(0.46989), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(8), ast.NumVal(-0.0674318), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(9), ast.NumVal(-0.000506212), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(10), ast.NumVal(0.0732867), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(11), ast.NumVal(0.0108842), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(12), ast.NumVal(-0.140096), ast.BinNumOpType.MUL), ] expected = ast.BinNumExpr( ast.NumVal(0.5), assemblers.utils.apply_op_to_expressions(ast.BinNumOpType.ADD, ast.NumVal(11.138), *feature_weight_mul), ast.BinNumOpType.ADD) assert utils.cmp_exprs(actual, expected)
def test_linear_model(): # Default updater ("shotgun") is nondeterministic estimator = xgboost.XGBRegressor(n_estimators=2, random_state=1, updater="coord_descent", feature_selector="shuffle", booster="gblinear") utils.get_regression_model_trainer()(estimator) assembler = assemblers.XGBoostModelAssemblerSelector(estimator) actual = assembler.assemble() feature_weight_mul = [ ast.BinNumExpr(ast.FeatureRef(0), ast.NumVal(-0.151436), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(1), ast.NumVal(0.084474), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(2), ast.NumVal(-0.10035), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(3), ast.NumVal(4.71537), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(4), ast.NumVal(1.39071), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(5), ast.NumVal(0.330592), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(6), ast.NumVal(0.0610453), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(7), ast.NumVal(0.476255), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(8), ast.NumVal(-0.0677851), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(9), ast.NumVal(-0.000543615), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(10), ast.NumVal(0.0717916), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(11), ast.NumVal(0.010832), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(12), ast.NumVal(-0.139375), ast.BinNumOpType.MUL), ] expected = ast.BinNumExpr( ast.NumVal(0.5), assemblers.utils.apply_op_to_expressions(ast.BinNumOpType.ADD, ast.NumVal(11.1287), *feature_weight_mul), ast.BinNumOpType.ADD) assert utils.cmp_exprs(actual, expected)
def test_linear_model(): estimator = xgboost.XGBRegressor(n_estimators=2, random_state=1, feature_selector="shuffle", booster="gblinear") utils.get_regression_model_trainer()(estimator) assembler = assemblers.XGBoostModelAssemblerSelector(estimator) actual = assembler.assemble() feature_weight_mul = [ ast.BinNumExpr(ast.FeatureRef(0), ast.NumVal(-0.00999326), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(1), ast.NumVal(0.0520094), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(2), ast.NumVal(0.10447), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(3), ast.NumVal(0.17387), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(4), ast.NumVal(0.691745), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(5), ast.NumVal(0.296357), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(6), ast.NumVal(0.0288206), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(7), ast.NumVal(0.417822), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(8), ast.NumVal(0.0551116), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(9), ast.NumVal(0.00242449), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(10), ast.NumVal(0.109585), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(11), ast.NumVal(0.00744202), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(12), ast.NumVal(0.0731089), ast.BinNumOpType.MUL), ] expected = ast.SubroutineExpr( ast.BinNumExpr( ast.NumVal(0.5), assemblers.utils.apply_op_to_expressions(ast.BinNumOpType.ADD, ast.NumVal(3.13109), *feature_weight_mul), ast.BinNumOpType.ADD)) assert utils.cmp_exprs(actual, expected)
def test_statsmodels_unknown_constant_position(): estimator = utils.StatsmodelsSklearnLikeWrapper( sm.GLS, dict(init=dict(hasconst=True))) _, __, estimator = utils.get_regression_model_trainer()(estimator) assembler = assemblers.StatsmodelsModelAssemblerSelector(estimator) assembler.assemble()
def test_regression(): estimator = lgb.LGBMRegressor(n_estimators=2, random_state=1, max_depth=1) utils.get_regression_model_trainer()(estimator) assembler = LightGBMModelAssembler(estimator) actual = assembler.assemble() expected = ast.BinNumExpr( ast.IfExpr( ast.CompExpr(ast.FeatureRef(12), ast.NumVal(9.725), ast.CompOpType.GT), ast.NumVal(22.030283219508686), ast.NumVal(23.27840740210207)), ast.IfExpr( ast.CompExpr(ast.FeatureRef(5), ast.NumVal(6.8375), ast.CompOpType.GT), ast.NumVal(1.2777791671888081), ast.NumVal(-0.2686772850549309)), ast.BinNumOpType.ADD) assert utils.cmp_exprs(actual, expected)
def test_regression(): estimator = lightgbm.LGBMRegressor(n_estimators=2, random_state=1, max_depth=1) utils.get_regression_model_trainer()(estimator) assembler = assemblers.LightGBMModelAssembler(estimator) actual = assembler.assemble() expected = ast.BinNumExpr( ast.IfExpr( ast.CompExpr(ast.FeatureRef(5), ast.NumVal(6.837500000000001), ast.CompOpType.GT), ast.NumVal(23.961356387224317), ast.NumVal(22.32858336612959)), ast.IfExpr( ast.CompExpr(ast.FeatureRef(12), ast.NumVal(9.725000000000003), ast.CompOpType.GT), ast.NumVal(-0.5031712645462916), ast.NumVal(0.6885501354513913)), ast.BinNumOpType.ADD) assert utils.cmp_exprs(actual, expected)
def test_lightning_regression(): estimator = AdaGradRegressor(random_state=1) utils.get_regression_model_trainer()(estimator) assembler = assemblers.SklearnLinearModelAssembler(estimator) actual = assembler.assemble() feature_weight_mul = [ ast.BinNumExpr(ast.FeatureRef(0), ast.NumVal(-0.0961163452), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(1), ast.NumVal(0.1574398180), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(2), ast.NumVal(-0.0251799219), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(3), ast.NumVal(0.1975142192), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(4), ast.NumVal(0.1189621635), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(5), ast.NumVal(1.2977018274), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(6), ast.NumVal(0.1192977978), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(7), ast.NumVal(0.0331955333), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(8), ast.NumVal(0.1433964513), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(9), ast.NumVal(0.0014943531), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(10), ast.NumVal(0.3116036672), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(11), ast.NumVal(0.0258421936), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(12), ast.NumVal(-0.7386996349), ast.BinNumOpType.MUL), ] expected = assemblers.utils.apply_op_to_expressions( ast.BinNumOpType.ADD, ast.NumVal(0.0), *feature_weight_mul) assert utils.cmp_exprs(actual, expected)
def test_lightning_regression(): estimator = AdaGradRegressor(random_state=1) utils.get_regression_model_trainer()(estimator) assembler = assemblers.SklearnLinearModelAssembler(estimator) actual = assembler.assemble() feature_weight_mul = [ ast.BinNumExpr(ast.FeatureRef(0), ast.NumVal(-0.08558826944690746), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(1), ast.NumVal(0.0803724696787377), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(2), ast.NumVal(-0.03516743076774846), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(3), ast.NumVal(0.26469178947134087), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(4), ast.NumVal(0.15651985221012488), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(5), ast.NumVal(1.5186399078028587), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(6), ast.NumVal(0.10089874009193693), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(7), ast.NumVal(-0.011426237067026246), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(8), ast.NumVal(0.0861987777487293), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(9), ast.NumVal(-0.0057791506839322574), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(10), ast.NumVal(0.3357752757550913), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(11), ast.NumVal(0.020189965076849486), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(12), ast.NumVal(-0.7390647599317609), ast.BinNumOpType.MUL), ] expected = assemblers.utils.apply_op_to_expressions( ast.BinNumOpType.ADD, ast.NumVal(0.0), *feature_weight_mul) assert utils.cmp_exprs(actual, expected)
def test_lightning_regression(): estimator = AdaGradRegressor(random_state=1) utils.get_regression_model_trainer()(estimator) assembler = assemblers.SklearnLinearModelAssembler(estimator) actual = assembler.assemble() feature_weight_mul = [ ast.BinNumExpr(ast.FeatureRef(0), ast.NumVal(-0.0610645819), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(1), ast.NumVal(0.0856563713), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(2), ast.NumVal(-0.0562044566), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(3), ast.NumVal(0.2804204925), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(4), ast.NumVal(0.1359261760), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(5), ast.NumVal(1.6307305501), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(6), ast.NumVal(0.0866147265), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(7), ast.NumVal(-0.0726894150), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(8), ast.NumVal(0.0435440193), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(9), ast.NumVal(-0.0077364839), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(10), ast.NumVal(0.2902775116), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(11), ast.NumVal(0.0229879957), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(12), ast.NumVal(-0.7614706871), ast.BinNumOpType.MUL), ] expected = assemblers.utils.apply_op_to_expressions( ast.BinNumOpType.ADD, ast.NumVal(0.0), *feature_weight_mul) assert utils.cmp_exprs(actual, expected)
def test_exp_output_transform(): estimator = lightgbm.LGBMRegressor(n_estimators=2, random_state=1, max_depth=1, objective="poisson") utils.get_regression_model_trainer()(estimator) assembler = assemblers.LightGBMModelAssembler(estimator) actual = assembler.assemble() expected = ast.ExpExpr( ast.BinNumExpr( ast.IfExpr( ast.CompExpr(ast.FeatureRef(5), ast.NumVal(6.8375), ast.CompOpType.GT), ast.NumVal(3.1481886430), ast.NumVal(3.1123367238)), ast.IfExpr( ast.CompExpr(ast.FeatureRef(12), ast.NumVal(9.725), ast.CompOpType.GT), ast.NumVal(-0.0113689739), ast.NumVal(0.0153551274)), ast.BinNumOpType.ADD)) assert utils.cmp_exprs(actual, expected)
def test_statsmodels_processmle(): estimator = utils.StatsmodelsSklearnLikeWrapper( ProcessMLE, dict(init=dict( exog_scale=np.ones( (len(utils.get_regression_model_trainer().y_train), 2)), exog_smooth=np.ones( (len(utils.get_regression_model_trainer().y_train), 2)), exog_noise=np.ones( (len(utils.get_regression_model_trainer().y_train), 2)), time=np.kron( np.ones( len(utils.get_regression_model_trainer().y_train) // 3), np.arange(3)), groups=np.kron( np.arange( len(utils.get_regression_model_trainer().y_train) // 3), np.ones(3))), fit=dict(maxiter=1))) _, __, estimator = utils.get_regression_model_trainer()(estimator) assembler = assemblers.ProcessMLEModelAssembler(estimator) actual = assembler.assemble() feature_weight_mul = [ ast.BinNumExpr(ast.FeatureRef(0), ast.NumVal(-0.0980302102110356), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(1), ast.NumVal(0.04863869398287732), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(2), ast.NumVal(0.009514054355147874), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(3), ast.NumVal(2.977113829322681), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(4), ast.NumVal(-2.6048073854474705), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(5), ast.NumVal(5.887987153279099), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(6), ast.NumVal(-0.008183580358672775), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(7), ast.NumVal(-0.996428929917054), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(8), ast.NumVal(0.1618353156581333), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(9), ast.NumVal(-0.009213049690188308), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(10), ast.NumVal(-0.3634816838591863), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(11), ast.NumVal(0.014700492832969888), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(12), ast.NumVal(-0.4384298738156768), ast.BinNumOpType.MUL), ] expected = assemblers.utils.apply_op_to_expressions( ast.BinNumOpType.ADD, ast.NumVal(0.0), *feature_weight_mul) assert utils.cmp_exprs(actual, expected)
def test_statsmodels_processmle(): estimator = utils.StatsmodelsSklearnLikeWrapper( ProcessMLE, dict(init=dict( exog_scale=np.ones( (len(utils.get_regression_model_trainer().y_train), 2)), exog_smooth=np.ones( (len(utils.get_regression_model_trainer().y_train), 2)), exog_noise=np.ones( (len(utils.get_regression_model_trainer().y_train), 2)), time=np.kron( np.ones( len(utils.get_regression_model_trainer().y_train) // 3), np.arange(3)), groups=np.kron( np.arange( len(utils.get_regression_model_trainer().y_train) // 3), np.ones(3))), fit=dict(maxiter=1))) _, __, estimator = utils.get_regression_model_trainer()(estimator) assembler = assemblers.ProcessMLEModelAssembler(estimator) actual = assembler.assemble() feature_weight_mul = [ ast.BinNumExpr(ast.FeatureRef(0), ast.NumVal(-0.0915126856), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(1), ast.NumVal(0.0455368812), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(2), ast.NumVal(-0.0092227692), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(3), ast.NumVal(2.8566616798), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(4), ast.NumVal(-2.1208777964), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(5), ast.NumVal(5.9725253309), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(6), ast.NumVal(-0.0061566965), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(7), ast.NumVal(-0.9414114075), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(8), ast.NumVal(0.1522429507), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(9), ast.NumVal(-0.0092123938), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(10), ast.NumVal(-0.3928508764), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(11), ast.NumVal(0.0134405151), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(12), ast.NumVal(-0.4364996490), ast.BinNumOpType.MUL), ] expected = assemblers.utils.apply_op_to_expressions( ast.BinNumOpType.ADD, ast.NumVal(0.0), *feature_weight_mul) assert utils.cmp_exprs(actual, expected)