Ejemplo n.º 1
0
    def fit(self, X, y):
        from xgboost import XGBRegressor
        if not KAGGLE:
            from OptimizedOffsetRegressor import DigitizedOptimizedOffsetRegressor

        self.xgb = XGBRegressor(objective=self.objective,
                                learning_rate=self.learning_rate,
                                min_child_weight=self.min_child_weight,
                                subsample=self.subsample,
                                colsample_bytree=self.colsample_bytree,
                                max_depth=self.max_depth,
                                n_estimators=self.n_estimators,
                                nthread=self.nthread,
                                missing=0.0,
                                seed=self.seed)
        from OptimizedOffsetRegressor import FullDigitizedOptimizedOffsetRegressor
        self.off = FullDigitizedOptimizedOffsetRegressor(
            n_buckets=self.n_buckets,
            #                       basinhopping=True,
            initial_params=self.initial_params,
            minimizer=self.minimizer,
            scoring=self.scoring)

        self.xgb.fit(X, y)

        tr_y_hat = self.xgb.predict(
            X, ntree_limit=self.xgb.booster().best_iteration)
        print('Train score is:', -self.scoring(tr_y_hat, y))
        self.off.fit(tr_y_hat, y)
        print("Offsets:", self.off.params)

        return self
    def __call__(self, i, te_y_hat, ytest):
        print('XGB[{}] Test score is:'.format(i + 1), -self.scoring(te_y_hat, ytest))

        from OptimizedOffsetRegressor import FullDigitizedOptimizedOffsetRegressor
        off = FullDigitizedOptimizedOffsetRegressor(n_buckets=self.n_buckets,
                       basinhopping=True,
                       initial_params=self.initial_params,
                       minimizer=self.minimizer,
                       scoring=self.scoring)
        off.fit(te_y_hat, ytest)
        print("Offsets[{}]:".format(i + 1), off.params)

        return off
Ejemplo n.º 3
0
    def __call__(self, i, te_y_hat, ytest):
        print('XGB[{}] Test score is:'.format(i + 1),
              -self.scoring(te_y_hat, ytest))

        from OptimizedOffsetRegressor import FullDigitizedOptimizedOffsetRegressor
        off = FullDigitizedOptimizedOffsetRegressor(
            n_buckets=self.n_buckets,
            basinhopping=True,
            initial_params=self.initial_params,
            minimizer=self.minimizer,
            scoring=self.scoring)
        off.fit(te_y_hat, ytest)
        print("Offsets[{}]:".format(i + 1), off.params)

        return off
    def fit(self, X, y):
        from xgboost import XGBRegressor
        if not KAGGLE:
            from OptimizedOffsetRegressor import DigitizedOptimizedOffsetRegressor

        self.xgb = XGBRegressor(
                       objective=self.objective,
                       learning_rate=self.learning_rate,
                       min_child_weight=self.min_child_weight,
                       subsample=self.subsample,
                       colsample_bytree=self.colsample_bytree,
                       max_depth=self.max_depth,
                       n_estimators=self.n_estimators,
                       nthread=self.nthread,
                       missing=0.0,
                       seed=self.seed)
        from OptimizedOffsetRegressor import FullDigitizedOptimizedOffsetRegressor
        self.off = FullDigitizedOptimizedOffsetRegressor(n_buckets=self.n_buckets,
#                       basinhopping=True,
                       initial_params=self.initial_params,
                       minimizer=self.minimizer,
                       scoring=self.scoring)

        self.xgb.fit(X, y)

        tr_y_hat = self.xgb.predict(X,
                                    ntree_limit=self.xgb.booster().best_iteration)
        print('Train score is:', -self.scoring(tr_y_hat, y))
        self.off.fit(tr_y_hat, y)
        print("Offsets:", self.off.params)

        return self
class PrudentialRegressorFO(BaseEstimator, RegressorMixin):
    def __init__(self,
                objective='reg:linear',
                learning_rate=0.045,
                min_child_weight=50,
                subsample=0.8,
                colsample_bytree=0.7,
                max_depth=7,
                n_estimators=700,
                nthread=-1,
                seed=0,
                n_buckets=8,
                initial_params=[-1.5, -2.6, -3.6, -1.2, -0.8, 0.04, 0.7, 3.6,
                                #1., 2., 3., 4., 5., 6., 7.
                                ],
                minimizer='BFGS',
                scoring=NegQWKappaScorer):

        self.objective = objective
        self.learning_rate = learning_rate
        self.min_child_weight = min_child_weight
        self.subsample = subsample
        self.colsample_bytree = colsample_bytree
        self.max_depth = max_depth
        self.n_estimators = n_estimators
        self.nthread = nthread
        self.seed = seed
        self.n_buckets = n_buckets
        self.initial_params = initial_params
        self.minimizer = minimizer
        self.scoring = scoring

        return


    def fit(self, X, y):
        from xgboost import XGBRegressor
        if not KAGGLE:
            from OptimizedOffsetRegressor import DigitizedOptimizedOffsetRegressor

        self.xgb = XGBRegressor(
                       objective=self.objective,
                       learning_rate=self.learning_rate,
                       min_child_weight=self.min_child_weight,
                       subsample=self.subsample,
                       colsample_bytree=self.colsample_bytree,
                       max_depth=self.max_depth,
                       n_estimators=self.n_estimators,
                       nthread=self.nthread,
                       missing=0.0,
                       seed=self.seed)
        from OptimizedOffsetRegressor import FullDigitizedOptimizedOffsetRegressor
        self.off = FullDigitizedOptimizedOffsetRegressor(n_buckets=self.n_buckets,
#                       basinhopping=True,
                       initial_params=self.initial_params,
                       minimizer=self.minimizer,
                       scoring=self.scoring)

        self.xgb.fit(X, y)

        tr_y_hat = self.xgb.predict(X,
                                    ntree_limit=self.xgb.booster().best_iteration)
        print('Train score is:', -self.scoring(tr_y_hat, y))
        self.off.fit(tr_y_hat, y)
        print("Offsets:", self.off.params)

        return self


    def predict(self, X):
        from numpy import clip
        te_y_hat = self.xgb.predict(X, ntree_limit=self.xgb.booster().best_iteration)
        return clip(self.off.predict(te_y_hat), 1, 8)

    pass
Ejemplo n.º 6
0
class PrudentialRegressorFO(BaseEstimator, RegressorMixin):
    def __init__(
            self,
            objective='reg:linear',
            learning_rate=0.045,
            min_child_weight=50,
            subsample=0.8,
            colsample_bytree=0.7,
            max_depth=7,
            n_estimators=700,
            nthread=-1,
            seed=0,
            n_buckets=8,
            initial_params=[
                -1.5,
                -2.6,
                -3.6,
                -1.2,
                -0.8,
                0.04,
                0.7,
                3.6,
                #1., 2., 3., 4., 5., 6., 7.
            ],
            minimizer='BFGS',
            scoring=NegQWKappaScorer):

        self.objective = objective
        self.learning_rate = learning_rate
        self.min_child_weight = min_child_weight
        self.subsample = subsample
        self.colsample_bytree = colsample_bytree
        self.max_depth = max_depth
        self.n_estimators = n_estimators
        self.nthread = nthread
        self.seed = seed
        self.n_buckets = n_buckets
        self.initial_params = initial_params
        self.minimizer = minimizer
        self.scoring = scoring

        return

    def fit(self, X, y):
        from xgboost import XGBRegressor
        if not KAGGLE:
            from OptimizedOffsetRegressor import DigitizedOptimizedOffsetRegressor

        self.xgb = XGBRegressor(objective=self.objective,
                                learning_rate=self.learning_rate,
                                min_child_weight=self.min_child_weight,
                                subsample=self.subsample,
                                colsample_bytree=self.colsample_bytree,
                                max_depth=self.max_depth,
                                n_estimators=self.n_estimators,
                                nthread=self.nthread,
                                missing=0.0,
                                seed=self.seed)
        from OptimizedOffsetRegressor import FullDigitizedOptimizedOffsetRegressor
        self.off = FullDigitizedOptimizedOffsetRegressor(
            n_buckets=self.n_buckets,
            #                       basinhopping=True,
            initial_params=self.initial_params,
            minimizer=self.minimizer,
            scoring=self.scoring)

        self.xgb.fit(X, y)

        tr_y_hat = self.xgb.predict(
            X, ntree_limit=self.xgb.booster().best_iteration)
        print('Train score is:', -self.scoring(tr_y_hat, y))
        self.off.fit(tr_y_hat, y)
        print("Offsets:", self.off.params)

        return self

    def predict(self, X):
        from numpy import clip
        te_y_hat = self.xgb.predict(
            X, ntree_limit=self.xgb.booster().best_iteration)
        return clip(self.off.predict(te_y_hat), 1, 8)

    pass