Search in sources :

Example 86 with Config

use of edu.neu.ccs.pyramid.configuration.Config in project pyramid by cheng-li.

the class AppBRGB method createBRPredictionConfig.

private static Config createBRPredictionConfig(Config config) {
    Config predictConfig = new Config();
    predictConfig.setString("input.validData", Paths.get(config.getString("output.folder"), "data_sets", config.getString("output.validFolder")).toString());
    predictConfig.setString("input.testData", Paths.get(config.getString("output.folder"), "data_sets", config.getString("output.testFolder")).toString());
    predictConfig.setString("input.calibrationData", Paths.get(config.getString("output.folder"), "data_sets", config.getString("output.calibrationFolder")).toString());
    predictConfig.setString("input.calibrationFolder", Paths.get(config.getString("output.folder"), "data_sets", config.getString("output.calibrationFolder")).toString());
    predictConfig.setString("output.dir", config.getString("output.folder"));
    predictConfig.setString("test", config.getString("test"));
    predictConfig.setString("validate", config.getString("validate"));
    predictConfig.setString("output.log", config.getString("output.log"));
    Config.copy(config, predictConfig, "output.calibratorFolder");
    Config.copy(config, predictConfig, "predict.mode");
    Config.copy(config, predictConfig, "predict.minSize");
    Config.copy(config, predictConfig, "predict.maxSize");
    predictConfig.setString("labelCalibrator", config.getString("calibrate.labelCalibrator"));
    predictConfig.setString("setCalibrator", config.getString("calibrate.setCalibrator"));
    Config.copy(config, predictConfig, "calibrate.target");
    Config.copy(config, predictConfig, "output.modelFolder");
    Config.copy(config, predictConfig, "threshold.targetValue");
    Config.copy(config, predictConfig, "threshold.targetMetric");
    config.copy(config, predictConfig, "threshold.name");
    Config.copy(config, predictConfig, "threshold.lowerBound");
    Config.copy(config, predictConfig, "threshold.upperBound");
    Config.copy(config, predictConfig, "report.showPredictionDetail");
    Config.copy(config, predictConfig, "report.rule.limit");
    Config.copy(config, predictConfig, "report.numDocsPerFile");
    Config.copy(config, predictConfig, "report.labelSetLimit");
    Config.copy(config, predictConfig, "report.classProbThreshold");
    Config.copy(config, predictConfig, "report.produceHTML");
    predictConfig.setString("dataSetType", "sparse_random");
    return predictConfig;
}
Also used : Config(edu.neu.ccs.pyramid.configuration.Config)

Example 87 with Config

use of edu.neu.ccs.pyramid.configuration.Config in project pyramid by cheng-li.

the class AppBRGB method createBRCalibrationConfig.

private static Config createBRCalibrationConfig(Config config) {
    Config calConfig = new Config();
    calConfig.setString("input.trainData", Paths.get(config.getString("output.folder"), "data_sets", config.getString("output.trainFolder")).toString());
    calConfig.setString("input.testData", Paths.get(config.getString("output.folder"), "data_sets", config.getString("output.testFolder")).toString());
    calConfig.setString("input.validData", Paths.get(config.getString("output.folder"), "data_sets", config.getString("output.validFolder")).toString());
    calConfig.setString("input.calibrationData", Paths.get(config.getString("output.folder"), "data_sets", config.getString("output.calibrationFolder")).toString());
    calConfig.setString("output.dir", config.getString("output.folder"));
    calConfig.setString("input.calibrationFolder", config.getString("output.calibrationFolder"));
    calConfig.setString("input.validFolder", config.getString("output.validFolder"));
    calConfig.setString("input.testFolder", config.getString("output.testFolder"));
    calConfig.setString("calibrate", config.getString("calibrate"));
    calConfig.setString("test", config.getString("test"));
    calConfig.setString("tuneThreshold", config.getString("tuneThreshold"));
    calConfig.setString("output.log", config.getString("output.log"));
    calConfig.setString("setPrior", "true");
    calConfig.setString("brProb", "true");
    calConfig.setString("expectedF1", "true");
    calConfig.setString("expectedPrecision", "true");
    calConfig.setString("expectedRecall", "true");
    calConfig.setString("card", "true");
    calConfig.setString("encodeLabel", "true");
    calConfig.setString("numCandidates", config.getString("calibrate.numCandidates"));
    calConfig.setString("numLeaves", config.getString("calibrate.reranker.numLeaves"));
    calConfig.setString("useInitialFeatures", config.getString("calibrate.reranker.useInitialFeatures"));
    calConfig.setString("featureFieldPrefix", config.getString("calibrate.reranker.featureFieldPrefix"));
    Config.copy(config, calConfig, "output.calibratorFolder");
    Config.copy(config, calConfig, "predict.mode");
    Config.copy(config, calConfig, "predict.minSize");
    Config.copy(config, calConfig, "predict.maxSize");
    calConfig.setString("labelCalibrator", config.getString("calibrate.labelCalibrator"));
    calConfig.setString("setCalibrator", config.getString("calibrate.setCalibrator"));
    Config.copy(config, calConfig, "calibrate.target");
    Config.copy(config, calConfig, "output.modelFolder");
    Config.copy(config, calConfig, "threshold.targetValue");
    Config.copy(config, calConfig, "threshold.targetMetric");
    Config.copy(config, calConfig, "threshold.name");
    Config.copy(config, calConfig, "threshold.lowerBound");
    Config.copy(config, calConfig, "threshold.upperBound");
    calConfig.setString("dataSetType", "sparse_random");
    return calConfig;
}
Also used : Config(edu.neu.ccs.pyramid.configuration.Config)

Example 88 with Config

use of edu.neu.ccs.pyramid.configuration.Config in project pyramid by cheng-li.

the class AppBRGB method main.

public static void main(String[] args) throws Exception {
    if (args.length != 1) {
        throw new IllegalArgumentException("Please specify a properties file.");
    }
    Config config = new Config(args[0]);
    Logger logger = Logger.getAnonymousLogger();
    String logFile = config.getString("output.log");
    FileHandler fileHandler = null;
    if (!logFile.isEmpty()) {
        new File(logFile).getParentFile().mkdirs();
        // todo should append?
        fileHandler = new FileHandler(logFile, true);
        java.util.logging.Formatter formatter = new SimpleFormatter();
        fileHandler.setFormatter(formatter);
        logger.addHandler(fileHandler);
        logger.setUseParentHandlers(false);
    }
    logger.info(config.toString());
    if (fileHandler != null) {
        fileHandler.close();
    }
    File output = new File(config.getString("output.folder"));
    output.mkdirs();
    Config app1Config = createApp1Config(config);
    Config app2Config = createGBConfig(config);
    Config calConfig = createBRCalibrationConfig(config);
    Config predictConfig = createBRPredictionConfig(config);
    Config autoConfig = createBRAutomationConfig(config);
    App1.main(app1Config);
    BRGB.main(app2Config);
    BRCalibration.main(calConfig);
    BRPrediction.reportValid(predictConfig);
    BRAutomation.tuneThreshold(autoConfig);
    BRPrediction.reportTest(predictConfig);
    BRAutomation.showTestPerformance(autoConfig);
}
Also used : Config(edu.neu.ccs.pyramid.configuration.Config) SimpleFormatter(java.util.logging.SimpleFormatter) Logger(java.util.logging.Logger) File(java.io.File) FileHandler(java.util.logging.FileHandler)

Example 89 with Config

use of edu.neu.ccs.pyramid.configuration.Config in project pyramid by cheng-li.

the class AppCombSUM method main.

public static void main(String[] args) throws Exception {
    if (args.length != 1) {
        throw new IllegalArgumentException("Please specify a properties file.");
    }
    Config config = new Config(args[0]);
    Logger logger = Logger.getAnonymousLogger();
    String logFile = config.getString("output.log");
    FileHandler fileHandler = null;
    if (!logFile.isEmpty()) {
        new File(logFile).getParentFile().mkdirs();
        // todo should append?
        fileHandler = new FileHandler(logFile, true);
        Formatter formatter = new SimpleFormatter();
        fileHandler.setFormatter(formatter);
        logger.addHandler(fileHandler);
        logger.setUseParentHandlers(false);
    }
    logger.info(config.toString());
    File output = new File(config.getString("output.folder"));
    output.mkdirs();
    if (config.getBoolean("calibrate")) {
        calibrate(config, logger);
    }
    if (config.getBoolean("validate")) {
        report(config, config.getString("validFolder"));
    }
    if (config.getBoolean("tuneThreshold")) {
        tuneThreshold(config, logger);
    }
    if (config.getBoolean("test")) {
        report(config, config.getString("testFolder"));
        testAutomation(config, logger);
    }
    if (fileHandler != null) {
        fileHandler.close();
    }
}
Also used : Config(edu.neu.ccs.pyramid.configuration.Config) SimpleFormatter(java.util.logging.SimpleFormatter) Formatter(java.util.logging.Formatter) SimpleFormatter(java.util.logging.SimpleFormatter) Logger(java.util.logging.Logger) File(java.io.File) FileHandler(java.util.logging.FileHandler)

Example 90 with Config

use of edu.neu.ccs.pyramid.configuration.Config in project pyramid by cheng-li.

the class BRLREN method main.

public static void main(String[] args) throws Exception {
    if (args.length != 1) {
        throw new IllegalArgumentException("Please specify a properties file.");
    }
    Config config = new Config(args[0]);
    main(config);
}
Also used : Config(edu.neu.ccs.pyramid.configuration.Config)

Aggregations

Config (edu.neu.ccs.pyramid.configuration.Config)119 File (java.io.File)68 Collectors (java.util.stream.Collectors)40 FileUtils (org.apache.commons.io.FileUtils)40 Paths (java.nio.file.Paths)39 IntStream (java.util.stream.IntStream)37 Pair (edu.neu.ccs.pyramid.util.Pair)36 Serialization (edu.neu.ccs.pyramid.util.Serialization)35 StopWatch (org.apache.commons.lang3.time.StopWatch)34 MLMeasures (edu.neu.ccs.pyramid.eval.MLMeasures)33 BufferedWriter (java.io.BufferedWriter)32 FileWriter (java.io.FileWriter)32 java.util (java.util)32 edu.neu.ccs.pyramid.dataset (edu.neu.ccs.pyramid.dataset)31 MultiLabelClassifier (edu.neu.ccs.pyramid.multilabel_classification.MultiLabelClassifier)29 EarlyStopper (edu.neu.ccs.pyramid.optimization.EarlyStopper)28 PrintUtil (edu.neu.ccs.pyramid.util.PrintUtil)26 edu.neu.ccs.pyramid.multilabel_classification.cbm (edu.neu.ccs.pyramid.multilabel_classification.cbm)25 ListUtil (edu.neu.ccs.pyramid.util.ListUtil)25 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)22