Skip to content

jozieLamp/DP_Rule_Learning_for_CDSS

Repository files navigation

DP-RuL: Differentially-Private Rule Learning for Clinical Decision Support Systems

Folder Breakdown:

  • Data: Raw data and the learned STL rules.
    • The three main datasets are the ICU data, Sepsis and T1D. Synthetic is a test ruleset I made to evaluate the protocol.
    • If you want to see the actual rules, go to Dataset/Best/PatientNum for example to see the first patient's rules for ICU go to ICU/Best/1000Rules.txt. (Each number is a client identifier / Patient ID).
  • MCTS: Monte Carlo Tree Search code
    • MCTS.py is a template search method (with no privacy)
    • MCTS_Baseline.py is the baseline search method with privacy where the budget per query is the same for all queries (Reference this one!).
    • MCTS_Coverage.py is a failed expoloration of adapting the MCTS search (Don't use this one)
  • MetricCalculation: Contains the experimental code- specifically the code to compute the Coverage and Rule Quality experiments
  • Paper: Contains graphs and images used in the Qualifying Exam Report
  • Param_Results: Experimental Results folder for the parameters
  • QueryExploration: Leftover code from when I was playing around with different search methods (not relevant)
  • Results: Old Experimental results from the baseline and coverage adapted methods
  • RuleTemplate: Contains the code for the rule template data structure
    • RuleTemplate.py is the object class that contains the rule tree we search
    • RuleTree.py allows for printing of the rule template tree (just allows for easier manipulation and analysis of the tree, but don't need to use)
  • STLTree: STL Grammar object definitions
  • SignalTemporalLogic: Allows grammar parsing and analysis. Includes a tokenizer, lexer, parser and method(s) to traverse the STL grammar

Important Files:

  • Client.py is the code that contains the functions run by each individual (local) client
  • Server.py is the central server that is sending queries to the clients and collects and aggregates the rule structures
  • Main.py is the main runner pipineline (use this one to run the code, this runs the nonprivate version)
  • Run_Experiments_Private.py runs a set of experiments with different privacy budgets using the baseline privacy version (MCTS_Baseline) <-- this is probably the main one to look at
  • params.py is the script containing the parameters needed to run the protocol

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published