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_statsmodels_glm_inverse_squared_link_func(): estimator = utils.StatsmodelsSklearnLikeWrapper( sm.GLM, dict(init=dict( family=sm.families.Tweedie( sm.families.links.Power(-2))), fit=dict(maxiter=1))) estimator = estimator.fit([[1], [2]], [0.1, 0.2]) assembler = assemblers.StatsmodelsModelAssemblerSelector(estimator) actual = assembler.assemble() expected = ast.BinNumExpr( ast.NumVal(1.0), ast.SqrtExpr( ast.BinNumExpr( ast.NumVal(0.0), ast.BinNumExpr( ast.FeatureRef(0), ast.NumVal(15.1237331741), ast.BinNumOpType.MUL), ast.BinNumOpType.ADD)), ast.BinNumOpType.DIV) assert utils.cmp_exprs(actual, expected)
def test_statsmodels_glm_cloglog_link_func(): estimator = utils.StatsmodelsSklearnLikeWrapper( sm.GLM, dict(init=dict( family=sm.families.Binomial(sm.families.links.cloglog())), fit=dict(maxiter=1))) estimator = estimator.fit([[1], [2]], [0.1, 0.2]) assembler = assemblers.StatsmodelsGLMModelAssembler(estimator) actual = assembler.assemble() expected = ast.BinNumExpr( ast.NumVal(1.0), ast.ExpExpr( ast.BinNumExpr( ast.NumVal(0.0), ast.ExpExpr( ast.BinNumExpr( ast.NumVal(0.0), ast.BinNumExpr(ast.FeatureRef(0), ast.NumVal(-0.8914468745), ast.BinNumOpType.MUL), ast.BinNumOpType.ADD)), ast.BinNumOpType.SUB)), ast.BinNumOpType.SUB) assert utils.cmp_exprs(actual, expected)
def test_statsmodels_glm_negative_power_link_func(): estimator = utils.StatsmodelsSklearnLikeWrapper( sm.GLM, dict(init=dict( family=sm.families.Tweedie( sm.families.links.Power(-3))), fit=dict(maxiter=1))) estimator = estimator.fit([[1], [2]], [0.1, 0.2]) assembler = assemblers.StatsmodelsModelAssemblerSelector(estimator) actual = assembler.assemble() expected = ast.BinNumExpr( ast.NumVal(1.0), ast.PowExpr( ast.BinNumExpr( ast.NumVal(0.0), ast.BinNumExpr( ast.FeatureRef(0), ast.NumVal(71.0542398846), ast.BinNumOpType.MUL), ast.BinNumOpType.ADD), ast.NumVal(0.3333333333)), ast.BinNumOpType.DIV) assert utils.cmp_exprs(actual, expected)
def test_statsmodels_glm_negativebinomial_link_func(): estimator = utils.StatsmodelsSklearnLikeWrapper( sm.GLM, dict(init=dict( family=sm.families.NegativeBinomial( sm.families.links.nbinom())), fit=dict(maxiter=1))) estimator = estimator.fit([[1], [2]], [0.1, 0.2]) assembler = assemblers.StatsmodelsModelAssemblerSelector(estimator) actual = assembler.assemble() expected = ast.BinNumExpr( ast.NumVal(-1.0), ast.BinNumExpr( ast.NumVal(1.0), ast.ExpExpr( ast.BinNumExpr( ast.NumVal(0.0), ast.BinNumExpr( ast.NumVal(0.0), ast.BinNumExpr( ast.FeatureRef(0), ast.NumVal(-1.1079583217), ast.BinNumOpType.MUL), ast.BinNumOpType.ADD), ast.BinNumOpType.SUB)), ast.BinNumOpType.SUB), ast.BinNumOpType.DIV) assert utils.cmp_exprs(actual, expected)
def test_statsmodels_glm_cauchy_link_func(): estimator = utils.StatsmodelsSklearnLikeWrapper( sm.GLM, dict(init=dict( family=sm.families.Binomial( sm.families.links.cauchy())), fit=dict(maxiter=1))) estimator = estimator.fit([[1], [2]], [0.1, 0.2]) assembler = assemblers.StatsmodelsModelAssemblerSelector(estimator) actual = assembler.assemble() expected = ast.BinNumExpr( ast.NumVal(0.5), ast.BinNumExpr( ast.AtanExpr( ast.BinNumExpr( ast.NumVal(0.0), ast.BinNumExpr( ast.FeatureRef(0), ast.NumVal(-0.7279996905393095), ast.BinNumOpType.MUL), ast.BinNumOpType.ADD)), ast.NumVal(3.141592653589793), ast.BinNumOpType.DIV), 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.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)
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.0932673973), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(1), ast.NumVal(0.0480819091), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(2), ast.NumVal(-0.0063734439), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(3), ast.NumVal(2.7510656855), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(4), ast.NumVal(-3.0836268637), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(5), ast.NumVal(5.9605290000), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(6), ast.NumVal(-0.0077880716), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(7), ast.NumVal(-0.9685365627), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(8), ast.NumVal(0.1688777882), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(9), ast.NumVal(-0.0092446419), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(10), ast.NumVal(-0.3924930042), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(11), ast.NumVal(0.01506511708295605), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(12), ast.NumVal(-0.4177000096), 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_glm_unknown_link_func(): class ValidPowerLink(sm.families.links.Power): pass estimator = utils.StatsmodelsSklearnLikeWrapper( sm.GLM, dict(init=dict(family=sm.families.Tweedie(ValidPowerLink(2))), fit=dict(maxiter=1))) estimator = estimator.fit([[1], [2]], [0.1, 0.2]) assembler = assemblers.StatsmodelsModelAssemblerSelector(estimator) assembler.assemble()
def test_statsmodels_glm_identity_link_func(): estimator = utils.StatsmodelsSklearnLikeWrapper( sm.GLM, dict(init=dict(family=sm.families.Tweedie(sm.families.links.Power(1))), fit=dict(maxiter=1))) estimator = estimator.fit([[1], [2], [3]], [0.1, 0.2, 0.2]) assembler = assemblers.StatsmodelsModelAssemblerSelector(estimator) actual = assembler.assemble() expected = ast.BinNumExpr( ast.NumVal(0.0), ast.BinNumExpr(ast.FeatureRef(0), ast.NumVal(0.0791304348), ast.BinNumOpType.MUL), ast.BinNumOpType.ADD) assert utils.cmp_exprs(actual, expected)
def test_statsmodels_glm_log_link_func(): estimator = utils.StatsmodelsSklearnLikeWrapper( sm.GLM, dict(init=dict(family=sm.families.Poisson(sm.families.links.log())), fit=dict(maxiter=1))) estimator = estimator.fit([[1], [2]], [0.1, 0.2]) assembler = assemblers.StatsmodelsModelAssemblerSelector(estimator) actual = assembler.assemble() expected = ast.ExpExpr( ast.BinNumExpr( ast.NumVal(0.0), ast.BinNumExpr(ast.FeatureRef(0), ast.NumVal(-1.0242053933), ast.BinNumOpType.MUL), ast.BinNumOpType.ADD)) assert utils.cmp_exprs(actual, expected)
def test_statsmodels_w_const(): estimator = utils.StatsmodelsSklearnLikeWrapper( sm.GLS, dict(init=dict(fit_intercept=True))) _, __, estimator = utils.get_regression_model_trainer()(estimator) assembler = assemblers.StatsmodelsModelAssemblerSelector(estimator) actual = assembler.assemble() feature_weight_mul = [ ast.BinNumExpr(ast.FeatureRef(0), ast.NumVal(-0.1086131135490779), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(1), ast.NumVal(0.046461486329934965), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(2), ast.NumVal(0.027432259970185422), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(3), ast.NumVal(2.6160671309537693), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(4), ast.NumVal(-17.51793656329748), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(5), ast.NumVal(3.7674418196771957), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(6), ast.NumVal(-2.1581753172923886e-05), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(7), ast.NumVal(-1.4711768622633619), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(8), ast.NumVal(0.29567671400629103), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(9), ast.NumVal(-0.012233831527258853), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(10), ast.NumVal(-0.9220356453705244), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(11), ast.NumVal(0.009038220462695548), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(12), ast.NumVal(-0.5425830337142312), ast.BinNumOpType.MUL), ] expected = assemblers.utils.apply_op_to_expressions( ast.BinNumOpType.ADD, ast.NumVal(36.36708074657767), *feature_weight_mul) assert utils.cmp_exprs(actual, expected)
def test_statsmodels_w_const(): estimator = utils.StatsmodelsSklearnLikeWrapper( sm.GLS, dict(init=dict(fit_intercept=True))) _, __, estimator = utils.get_regression_model_trainer()(estimator) assembler = assemblers.StatsmodelsModelAssemblerSelector(estimator) actual = assembler.assemble() feature_weight_mul = [ ast.BinNumExpr(ast.FeatureRef(0), ast.NumVal(-0.1085910250), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(1), ast.NumVal(0.0441988987), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(2), ast.NumVal(0.0174669054), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(3), ast.NumVal(2.8323210870), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(4), ast.NumVal(-18.4837486980), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(5), ast.NumVal(3.8354955484), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(6), ast.NumVal(0.0001409165), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(7), ast.NumVal(-1.5040340047), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(8), ast.NumVal(0.3106174852), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(9), ast.NumVal(-0.0123066500), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(10), ast.NumVal(-0.9736183985), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(11), ast.NumVal(0.0094039648), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(12), ast.NumVal(-0.5203427347), ast.BinNumOpType.MUL), ] expected = assemblers.utils.apply_op_to_expressions( ast.BinNumOpType.ADD, ast.NumVal(37.1353468527), *feature_weight_mul) assert utils.cmp_exprs(actual, expected)
def test_statsmodels_w_const(): estimator = utils.StatsmodelsSklearnLikeWrapper( sm.GLS, dict(init=dict(fit_intercept=True))) _, __, estimator = utils.get_regression_model_trainer()(estimator) assembler = assemblers.StatsmodelsModelAssemblerSelector(estimator) actual = assembler.assemble() feature_weight_mul = [ ast.BinNumExpr(ast.FeatureRef(0), ast.NumVal(-0.1082106941), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(1), ast.NumVal(0.0444969007), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(2), ast.NumVal(0.0189847585), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(3), ast.NumVal(2.7998640040), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(4), ast.NumVal(-16.7498366967), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(5), ast.NumVal(3.9040863643), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(6), ast.NumVal(0.0014333844), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(7), ast.NumVal(-1.4436181595), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(8), ast.NumVal(0.2868165881), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(9), ast.NumVal(-0.0118539736), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(10), ast.NumVal(-0.9449930750), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(11), ast.NumVal(0.0083181952), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(12), ast.NumVal(-0.5415938640), ast.BinNumOpType.MUL), ] expected = assemblers.utils.apply_op_to_expressions( ast.BinNumOpType.ADD, ast.NumVal(35.5746356887), *feature_weight_mul) assert utils.cmp_exprs(actual, expected)
def test_statsmodels_wo_const(): estimator = utils.StatsmodelsSklearnLikeWrapper(sm.GLS, {}) _, __, estimator = utils.get_regression_model_trainer()(estimator) assembler = assemblers.StatsmodelsModelAssemblerSelector(estimator) actual = assembler.assemble() feature_weight_mul = [ ast.BinNumExpr(ast.FeatureRef(0), ast.NumVal(-0.0926871267), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(1), ast.NumVal(0.0482139967), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(2), ast.NumVal(-0.0075524567), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(3), ast.NumVal(2.9965313383), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(4), ast.NumVal(-3.0877925575), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(5), ast.NumVal(5.9546630146), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(6), ast.NumVal(-0.0073548271), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(7), ast.NumVal(-0.9828206079), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(8), ast.NumVal(0.1727389546), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(9), ast.NumVal(-0.0094218658), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(10), ast.NumVal(-0.3931071261), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(11), ast.NumVal(0.0149656744), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(12), ast.NumVal(-0.4133835832), 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_wo_const(): estimator = utils.StatsmodelsSklearnLikeWrapper(sm.GLS, {}) _, __, estimator = utils.get_regression_model_trainer()(estimator) assembler = assemblers.StatsmodelsModelAssemblerSelector(estimator) actual = assembler.assemble() feature_weight_mul = [ ast.BinNumExpr(ast.FeatureRef(0), ast.NumVal(-0.09519078450227643), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(1), ast.NumVal(0.048952926782237956), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(2), ast.NumVal(0.007485539189808044), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(3), ast.NumVal(2.7302631809978273), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(4), ast.NumVal(-2.5078200782168034), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(5), ast.NumVal(5.891794660307579), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(6), ast.NumVal(-0.008663096157185936), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(7), ast.NumVal(-0.9742684875268565), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(8), ast.NumVal(0.1591703441858682), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(9), ast.NumVal(-0.009351831548409096), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(10), ast.NumVal(-0.36395034626096245), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(11), ast.NumVal(0.014529018124980565), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(12), ast.NumVal(-0.437443877026267), 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_wo_const(): estimator = utils.StatsmodelsSklearnLikeWrapper(sm.GLS, {}) _, __, estimator = utils.get_regression_model_trainer()(estimator) assembler = assemblers.StatsmodelsModelAssemblerSelector(estimator) actual = assembler.assemble() feature_weight_mul = [ ast.BinNumExpr(ast.FeatureRef(0), ast.NumVal(-0.0940752519), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(1), ast.NumVal(0.0461122112), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(2), ast.NumVal(-0.0034800646), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(3), ast.NumVal(2.9669908485), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(4), ast.NumVal(-2.1264724710), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(5), ast.NumVal(5.9738064897), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(6), ast.NumVal(-0.0062638276), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(7), ast.NumVal(-0.9385894841), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(8), ast.NumVal(0.1568975632), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(9), ast.NumVal(-0.0091548228), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(10), ast.NumVal(-0.3949784315), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(11), ast.NumVal(0.0135685532), ast.BinNumOpType.MUL), ast.BinNumExpr(ast.FeatureRef(12), ast.NumVal(-0.4392385223), 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)
regression(linear_model.OrthogonalMatchingPursuitCV()), regression( linear_model.PassiveAggressiveRegressor(random_state=RANDOM_SEED)), regression( linear_model.RANSACRegressor( base_estimator=tree.ExtraTreeRegressor(**TREE_PARAMS), random_state=RANDOM_SEED)), regression(linear_model.Ridge(random_state=RANDOM_SEED)), regression(linear_model.RidgeCV()), regression(linear_model.SGDRegressor(random_state=RANDOM_SEED)), regression(linear_model.TheilSenRegressor(random_state=RANDOM_SEED)), # Statsmodels Linear Regression regression( utils.StatsmodelsSklearnLikeWrapper( sm.GLS, dict(init=dict(sigma=np.eye( len(utils.get_regression_model_trainer().y_train)) + 1)))), regression( utils.StatsmodelsSklearnLikeWrapper( sm.GLS, dict(init=dict(sigma=np.eye( len(utils.get_regression_model_trainer().y_train)) + 1), fit_regularized=STATSMODELS_LINEAR_REGULARIZED_PARAMS))), regression( utils.StatsmodelsSklearnLikeWrapper( sm.GLSAR, dict(init=dict(fit_intercept=True, rho=3)))), regression( utils.StatsmodelsSklearnLikeWrapper( sm.GLSAR, dict(iterative_fit=dict(maxiter=2)))), regression( utils.StatsmodelsSklearnLikeWrapper(
regression(linear_model.OrthogonalMatchingPursuitCV()), regression( linear_model.PassiveAggressiveRegressor(random_state=RANDOM_SEED)), regression( linear_model.RANSACRegressor( base_estimator=tree.ExtraTreeRegressor(**TREE_PARAMS), random_state=RANDOM_SEED)), regression(linear_model.Ridge(random_state=RANDOM_SEED)), regression(linear_model.RidgeCV()), regression(linear_model.SGDRegressor(random_state=RANDOM_SEED)), regression(linear_model.TheilSenRegressor(random_state=RANDOM_SEED)), # Statsmodels Linear Regression regression( utils.StatsmodelsSklearnLikeWrapper( sm.GLS, dict(init=dict(sigma=np.eye( len(utils.get_regression_model_trainer().y_train)) + 1)))), regression( utils.StatsmodelsSklearnLikeWrapper( sm.GLS, dict(init=dict(sigma=np.eye( len(utils.get_regression_model_trainer().y_train)) + 1), fit_regularized=STATSMODELS_LINEAR_REGULARIZED_PARAMS))), regression( utils.StatsmodelsSklearnLikeWrapper( sm.GLSAR, dict(init=dict(fit_intercept=True, rho=3)))), regression( utils.StatsmodelsSklearnLikeWrapper( sm.GLSAR, dict(iterative_fit=dict(maxiter=2)))), regression( utils.StatsmodelsSklearnLikeWrapper(
random_state=RANDOM_SEED)), regression(linear_model.Ridge(random_state=RANDOM_SEED)), regression(linear_model.RidgeCV()), regression(linear_model.SGDRegressor(random_state=RANDOM_SEED)), regression(linear_model.TheilSenRegressor(random_state=RANDOM_SEED)), regression(linear_model.TweedieRegressor(power=0.0)), regression(linear_model.TweedieRegressor(power=1.0)), regression(linear_model.TweedieRegressor(power=1.5)), regression(linear_model.TweedieRegressor(power=2.0)), regression(linear_model.TweedieRegressor(power=3.0)), # Statsmodels Linear Regression classification_binary( utils.StatsmodelsSklearnLikeWrapper( sm.GLM, dict(fit_constrained=dict(constraints=( np.eye(utils.get_binary_classification_model_trainer(). X_train.shape[-1])[0], [1]))))), classification_binary( utils.StatsmodelsSklearnLikeWrapper( sm.GLM, dict(fit_regularized=STATSMODELS_LINEAR_REGULARIZED_PARAMS))), classification_binary( utils.StatsmodelsSklearnLikeWrapper( sm.GLM, dict(init=dict( family=sm.families.Binomial(sm.families.links.cauchy())), fit=dict(maxiter=2)))), classification_binary( utils.StatsmodelsSklearnLikeWrapper( sm.GLM,