parser.add_argument("parameters_path", help="Parameters output", type=str)
parser.add_argument('-j',
                    '--jitter',
                    help="Jitter on/off",
                    action='store_true')
parser.add_argument("--with_l2_regularization",
                    action='store_true',
                    help="Enable L2 regularization")

args = parser.parse_args()

logging.info("Loading dataset...")
dataset_df = pd.read_csv(args.dataset)
smote = SMOTE(random_state=0, k_neighbors=args.k_neighbors)
smote_resample = build_resample_regression_dataset_func(smote,
                                                        stepsize=args.stepsize,
                                                        jitter=args.jitter)


class ExperimentData(TFExperiment):
    def load_dataset(self):
        X = dataset_df.drop("year_0", axis=1).values
        y = dataset_df["year_0"].values
        return (X, y)

    def preprocess(self, X, y):
        return smote_resample(X, y)


logging.info(
    "Running grid search for learning rate and # of neurons %s(num trials = %d, num_epochs = %d)...",
    **Evaluation method:** {}-fold cross validation
    **Optimization method:** SGD
    Parameters:
    * num_neurons_p = {} — number of neurons in the hidden layer
    * learning_rate_p = {} — learning rate
    * momentum = {} — momentum
    * l2_reg = {} — L2 regularization
    * discretization_stepsize = {} — discretization step size
    * k_neighbors = {} — number of neighbors for ADASYN
    * jitter = {} — jitter on/off""".format(
    args.num_folds, params["num_neurons_p"],
    params["learning_rate_p"], params["momentum_p"], params["l2_reg_p"], args.stepsize, args.k_neighbors, args.jitter)

logging.info(experiment_description)
adasyn = ADASYN(random_state=0, n_neighbors=args.k_neighbors)
adasyn_resample = build_resample_regression_dataset_func(adasyn, args.stepsize, jitter=args.jitter)
class Experiment(TFExperiment):
    def load_dataset(self):
        X = dataset_df.drop("year_0", axis=1).values
        y = dataset_df["year_0"].values
        return (X, y)

    def build_model(self):
        model = build_1layer_perceptron(
            params["num_neurons_p"], params["learning_rate_p"], params["momentum_p"], params["l2_reg_p"]
        )
        return model

    def preprocess(self, X, y):
        return adasyn_resample(X, y)
Exemple #3
0
    Using randomized resampling with jitter to balance the dataset.

    **Evaluation method:** {}-fold cross validation
    **Optimization method:** SGD
    Parameters:
    * num_neurons_p = {} — number of neurons in the hidden layer
    * learning_rate_p = {} — learning rate
    * momentum = {} — momentum
    * l2_reg = {} — L2 regularization
    * discretization_stepsize = {} — discretization step size""".format(
    args.num_folds, params["num_neurons_p"], params["learning_rate_p"],
    params["momentum_p"], params["l2_reg_p"], args.stepsize)

logging.info(experiment_description)
ros = RandomOverSampler(random_state=0)
random_resample = build_resample_regression_dataset_func(
    ros, stepsize=args.stepsize)


class Experiment(TFExperiment):
    def load_dataset(self):
        X = dataset_df.drop("year_0", axis=1).values
        y = dataset_df["year_0"].values
        return (X, y)

    def build_model(self):
        model = build_1layer_perceptron(params["num_neurons_p"],
                                        params["learning_rate_p"],
                                        params["momentum_p"],
                                        params["l2_reg_p"])
        return model