{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 5. Using Data-Driven Models" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In addition to the physics-based modeling functionalities described so far, ProgPy also includes a framework for implementing data-driven models. \n", "\n", "A data-driven model is a model where the behavior is learned from data. In ProgPy, data-driven models derive from the parent class `progpy.data_models.DataModel`. A common example of a data-driven model is one that uses neural networks (e.g., `progpy.data_models.LSTMStateTransitionModel`). \n", "\n", "Some data-driven methodologies we will be exploring in this section include [Long Short-Term Memory (LSTM)](https://nasa.github.io/progpy/api_ref/progpy/DataModel.html?highlight=surrogate#lstmstatetransitionmodel), [Dynamic Mode Decomposition (DMD)](https://nasa.github.io/progpy/api_ref/progpy/DataModel.html?highlight=surrogate#dmdmodel), and [Polynomial Chaos Expansion (PCE)](https://nasa.github.io/progpy/api_ref/progpy/DataModel.html?highlight=surrogate#polynomialchaosexpansion). The data-driven architecture also includes [surrogate models](https://nasa.github.io/progpy/api_ref/progpy/DataModel.html?highlight=surrogate#from-another-prognosticsmodel-i-e-surrogate), which can be used to create models that approximate the original/higher-fidelity models, generally resulting in a less accurate model that is more computationally efficient.\n", "\n", "For more information, refer to the [`DataModel` documentation](https://nasa.github.io/progpy/api_ref/progpy/DataModel.html).\n", "\n", "Before we get started, make sure to install the data-driven dependencies using the following command:\n", "\n", "`pip install 'progpy[datadriven]'`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Table of Contents\n", "\n", "* [General Use](#General-Use)\n", " * [Building a New Model from Data](#Building-a-New-Model-from-Data)\n", " * [Surrogate Models](#Surrogate-models)\n", "* [Long Short-Term Memory (LSTM)](#Long-Short-Term-Memory-(LSTM))\n", "* [Dynamic Mode Decomposition (DMD)](#Dynamic-Mode-Decomposition-(DMD))\n", "* [Polynomial Chaos Expansion (PCE)](#Polynomial-Chaos-Expansion-(PCE))\n", "* [Extending](#Extending)\n", "* [Conclusion](#Conclusion)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## General Use" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Building a New Model from Data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**A version of this notebook will be added in release v1.9**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Surrogate Models" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**A version of this notebook will be added in release v1.9**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Long Short-Term Memory (LSTM)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**A version of this notebook will be added in release v1.9**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Dynamic Mode Decomposition (DMD)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**A version of this notebook will be added in release v1.9**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Polynomial Chaos Expansion (PCE)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**A version of this notebook will be added in release v1.9**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Extending" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**A version of this notebook will be added in release v1.9**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Conclusion" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this section, we were able to look at various ways to use data-driven models. The next section __[06 Combining Models](06_Combining%20Models.ipynb)__ examines how prognostics models can be combined." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3.11.0 64-bit", "language": "python", "name": "python3" }, "language_info": { "name": "python", "version": "3.12.0" }, "orig_nbformat": 4, "vscode": { "interpreter": { "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" } } }, "nbformat": 4, "nbformat_minor": 2 }