Skip to content
jphall663Public

About

Materials for a technical, nuts-and-bolts course about increasing transparency, fairness, robustness, and security in machine learning.

Resources

Stars

38 stars

Watchers

5 watching

Forks

Repository files navigation

GWU_DNSC 6330: Course Outline

Materials for a technical, nuts-and-bolts course about increasing transparency, fairness, robustness, and security in machine learning.

  • Lecture 1: Explainable Machine Learning Models
  • Lecture 2: Post-hoc Explanation
  • Lecture 3: Bias Testing and Remediation
  • Lecture 4: Machine Learning Security
  • Lecture 5: Machine Learning Model Debugging
  • Lecture 6: Foundation Models for Tabular Data
  • Lecture 7: Responsible Machine Learning Best Practices

Corrections or suggestions? Please file a GitHub issue.


Preliminary Materials

Lecture 1: Explainable Machine Learning Models

Explainable EBM output. Source: Simple Explainable Boosting Machine Example

Lecture 1 Class Materials


Lecture 2: Post-hoc Explanation

A decision tree surrogate model forms a flow chart of a more complex monotonic GBM Source: Global and Local Explanations of a Constrained Model

Lecture 2 Class Materials


Lecture 3: Bias Testing and Remediation

Two hundred neural networks from a random grid search trained on the UCI Credit Card Default dataset Source: Lecture 3 Notes

Lecture 3 Class Materials


Lecture 4: Machine Learning Security

A cheatsheet for ML attacks Source: Responsible Machine Learning

Lecture 4 Class Materials


Lecture 5: Machine Learning Model Debugging

Residuals for an important feature betray a serious problem in a machine learning model. Source: Real-World Strategies for Model Debugging

Lecture 5 Class Materials


Lecture 6: Foundation Models for Tabular Data

Source:

Lecture 6 Class Materials


Lecture 7: Responsible Machine Learning Best Practices

A responsible machine learning workflow

A Responsible Machine Learning Workflow Diagram. Source: Information, 11(3) (March 2020).

Lecture 7 Class Materials


Using the Course Software

Most lecture software examples use H2O-3.

Run notebooks from the repository root so they can find course data and the util package. Install uv, Visual Studio Code, and the Python and Jupyter extensions. The course environment uses Python 3.11 and dependencies recorded in pyproject.toml and uv.lock.

Set up the H2O-3 environment

The default course environment uses H2O-3 with NumPy 1. Install a 64-bit Java Development Kit (JDK) using a package manager or OpenJDK distribution for your operating system, then set JAVA_HOME to its installation directory. H2O-3 3.46 lists Java 8–17 as supported; OpenJDK build 27 has also worked with these course notebooks, but is outside H2O's published support range (H2O-3 requirements).

On macOS and Linux:

uv python install 3.11
uv sync
export JAVA_HOME=/path/to/java/home
code .

On Windows PowerShell:

$env:JAVA_HOME = "C:\Path\To\Java\Home"
uv python install 3.11
uv sync
code .

For these notebooks, select the Python 3.11 environment in .venv as the notebook kernel (.venv/bin/python on macOS/Linux; .venv\Scripts\python.exe on Windows).

Other course notebooks

For notebooks that do not use H2O-3, create a separate NumPy 2 environment. Do not install the course and legacy-h2o groups into the same environment.

On macOS and Linux:

UV_PROJECT_ENVIRONMENT=.venv-numpy2 uv sync --group course --group notebook-execution --no-default-groups
code .

On Windows PowerShell:

$env:UV_PROJECT_ENVIRONMENT = ".venv-numpy2"
uv sync --group course --group notebook-execution --no-default-groups
code .

Select the Python 3.11 environment in .venv-numpy2 as the notebook kernel (.venv-numpy2/bin/python on macOS/Linux; .venv-numpy2\Scripts\python.exe on Windows). On macOS, install the XGBoost OpenMP runtime once with brew install libomp. Linux distributions generally provide the OpenMP runtime through their system packages. Windows users need the Microsoft Visual C++ Redistributable for XGBoost examples.

To use JupyterLab in the default H2O-3 environment, run uv run jupyter lab from the repository root.

See the VS Code Jupyter guide for kernel selection details.

Licenses

The software is licensed under the MIT License. Course content is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC BY-NC-SA 4.0).

About

Materials for a technical, nuts-and-bolts course about increasing transparency, fairness, robustness, and security in machine learning.

Resources

Stars

38 stars

Watchers

5 watching

Forks

Releases

Packages

Used by

Contributors

Languages