Hierarchical Ensemble Methods for Directed Acyclic Graphs

An implementation of several Hierarchical Ensemble Methods (HEMs) for Directed Acyclic Graphs (DAGs). 'HEMDAG' package: 1) reconciles flat predictions with the topology of the ontology; 2) can enhance the predictions of virtually any flat learning methods by taking into account the hierarchical relationships between ontology classes; 3) provides biologically meaningful predictions that always obey the true-path-rule, the biological and logical rule that governs the internal coherence of biomedical ontologies; 4) is specifically designed for exploiting the hierarchical relationships of DAG-structured taxonomies, such as the Human Phenotype Ontology (HPO) or the Gene Ontology (GO), but can be safely applied to tree-structured taxonomies as well (as FunCat), since trees are DAGs; 5) scales nicely both in terms of the complexity of the taxonomy and in the cardinality of the examples; 6) provides several utility functions to process and analyze graphs; 7) provides several performance metrics to evaluate HEMs algorithms. (Marco Notaro, Max Schubach, Peter N. Robinson and Giorgio Valentini (2017) ).


HEMDAG 2.4.8

  • fixed a minor bug in Do.GPAV.holdout;
  • improved pacakge description;

HEMDAG 2.4.7

  • fixed degenerate case in precision.at.all.recall.levels.single.class (labels are all negatives/positives);
  • fixed degenerate case in precision.at.given.recall.levels.over.classes (labels in a fold are all negatives/positives);
  • fixed degenerate case in do.stratified.cv.data.single.class (sampling of the labels with just one positive/negative);
  • added input variable compute.performance to the following high level functions:
    • Do.TPR.DAG and Do.TPR.DAG.holdout;
    • Do.HTD and Do.HTD.holdout;
    • Do.GPAV and Do.GPAV.holdout;
    • Do.heuristic.methods and Do.heuristic.methods.holdout;
  • improved manual;

HEMDAG 2.3.6

  • added lexicographical.topological.sort;
  • fixed minor bugs;
  • improved manual;

HEMDAG 2.2.5

  • precision-recall performance computed through precrec package:
    • added precision.at.all.recall.levels.single.class;
    • PXR.at.multiple.recall.levels.over.classes substituted with precision.at.given.recall.levels.over.classes;
  • improved IO functions: the extension of the input or output file can be or plain text (.txt) or compressed (.gz);
  • fixed minor bugs;
  • improved manual;

HEMDAG 2.2.4

  • fixed CRAN Package Check Results: removed unneeded header and define from GPAV C++ source code

HEMDAG 2.2.3

  • Added GPAV algorithm (Burdakov et al., Journal of Computational Mathematics, 2006 -- link);
  • Embedded GPAV algorithm in the top-down step of the functions TPR.DAG, Do.TPR.DAG and Do.TPR.DAG.holdout;
  • Some functions have been defunct. To know the defunct functions just typing in the R environment: help("HEMDAG-defunct");
  • improved manual;
  • Added Alessandro Petrini as author for his contribution in writing the C++ code of GPAV algorithm;

HEMDAG 2.1.3

  • various fixes from 2.1.2

HEMDAG 2.1.2

  • Improved performance metrics:

    • added compute.Fmeasure.multilabel;
    • added PXR.at.multiple.recall.levels.over.classes;
    • all the performance metrics (AUPRC, AUROC, FMM, PXR) can be computed either one-shot or averaged across folds;
  • Improved the high-level hierarchical ensemble functions:

    • embedded the new performance metric functions;
    • added the parameter metric: maximization by FMAX or PRC (see manual for further details);
    • added some checkers (warning/stop messages) to make the library more user-friendly;
  • improved manual;

HEMDAG 2.0.1

  • fixed bug in do.stratified.cv.data.single.class;

HEMDAG 2.0.0

  • Added TPR-DAG: function gathering several hierarchical ensemble variants;

  • Added Do.TPR.DAG: high-level function to run TPR-DAG cross-validated experiments;

  • Added Do.TPR.DAG.holdout: high-level functions to run TPR-DAG holdout experiments;

  • The following TPR-DAG and DESCENS high-level functions were removed:

    • Do.tpr.threshold.free;
    • Do.tpr.threshold.cv;
    • Do.tpr.weighted.threshold.free.cv;
    • Do.tpr.weighted.threshold.cv;
    • Do.descens.threshold.free;
    • Do.descens.threshold.cv;
    • Do.descens.weighted.threshold.free.cv;
    • Do.descens.tau.cv;
    • Do.descens.weighted.threshold.cv;
    • Do.tpr.threshold.free.holdout;
    • Do.tpr.threshold.holdout;
    • Do.tpr.weighted.threshold.free.holdout;
    • Do.tpr.weighted.threshold.holdout;
    • Do.descens.threshold.free.holdout;
    • Do.descens.threshold.holdout;
    • Do.descens.weighted.threshold.free.holdout;
    • Do.descens.tau.holdout;
    • Do.descens.weighted.threshold.holdout;

NOTE: all the removed functions can be run opportunely setting the input parameters of the new high-level function Do.TPR.DAG (for cross-validated experiments) and Do.TPR.DAG.holdout (for hold-out experiments);

  • improved manual;

HEMDAG 1.1.1

  • Added DESCENS algorithm;
  • Added Heuristic Methods MAX, AND, OR (Obozinski et al., Genome Biology, 2008 -- link);
  • Added tupla.matrix function;
  • improved manual;
  • Added link to the GitHub repository HPOparser (link);
  • Added CITATION file;

HEMDAG 1.0.0


Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


2.7.4 by Marco Notaro, 10 months ago

https://hemdag.readthedocs.io https://github.com/marconotaro/hemdag https://anaconda.org/bioconda/r-hemdag

Report a bug at https://github.com/marconotaro/hemdag/issues

Browse source code at https://github.com/cran/HEMDAG

Authors: Marco Notaro [aut, cre] , Alessandro Petrini [ctb] , Giorgio Valentini [aut]

Documentation:   PDF Manual  

GPL (>= 3) license

Imports graph, RBGL, precrec, preprocessCore, methods, plyr, foreach, doParallel, parallel

Suggests Rgraphviz, testthat

See at CRAN