{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Advanced regression method\n", "\n", "The library `scikit-learn` is a great machine-learning toolkit that provides a large collection of regression methods.\n", "By default, `chaospy` only support traditional least-square regression, but is also designed to work together with the various regression functions provided by `scikit-learn`.\n", "\n", "Because `scikit-learn` isn't a required dependency, you might need to install it first with e.g. `pip install scikit-learn`. When that is done, it should be importable:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "execution": { "iopub.execute_input": "2021-05-18T10:57:09.629873Z", "iopub.status.busy": "2021-05-18T10:57:09.629576Z", "iopub.status.idle": "2021-05-18T10:57:09.650187Z", "shell.execute_reply": "2021-05-18T10:57:09.649819Z" } }, "outputs": [], "source": [ "import sklearn" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As en example to follow, consider the following artificial case:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "execution": { "iopub.execute_input": "2021-05-18T10:57:09.652385Z", "iopub.status.busy": "2021-05-18T10:57:09.652106Z", "iopub.status.idle": "2021-05-18T10:57:09.660097Z", "shell.execute_reply": "2021-05-18T10:57:09.659804Z" } }, "outputs": [], "source": [ "import numpy\n", "import chaospy\n", "\n", "samples = numpy.linspace(0, 5, 50)\n", "numpy.random.seed(1000)\n", "noise = chaospy.Normal(0, 0.1).sample(50)\n", "evals = numpy.sin(samples) + noise" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "execution": { "iopub.execute_input": "2021-05-18T10:57:09.662153Z", "iopub.status.busy": "2021-05-18T10:57:09.661840Z", "iopub.status.idle": "2021-05-18T10:57:09.734652Z", "shell.execute_reply": "2021-05-18T10:57:09.734891Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from matplotlib import pyplot\n", "\n", "pyplot.rc(\"figure\", figsize=[15, 6])\n", "pyplot.scatter(samples, evals)\n", "pyplot.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Least squares regression\n", "\n", "By default, `chaospy` does not use `sklearn` (and can be used without `sklearn` being installed). Instead it uses `scipy.linalg.lstsq`, which is the ordinary least squares method, the classical regression problem by minimizing the residuals squared.\n", "\n", "In practice:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "execution": { "iopub.execute_input": "2021-05-18T10:57:09.737346Z", "iopub.status.busy": "2021-05-18T10:57:09.737077Z", "iopub.status.idle": "2021-05-18T10:57:09.819428Z", "shell.execute_reply": "2021-05-18T10:57:09.819132Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "text/plain": [ "polynomial(0.0921*q0**3-0.8798*q0**2+1.9153*q0-0.1982)" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "q0 = chaospy.variable()\n", "expansion = chaospy.polynomial([1, q0, q0**2, q0**3])\n", "\n", "fitted_polynomial = chaospy.fit_regression(\n", " expansion, samples, evals)\n", "\n", "pyplot.scatter(samples, evals)\n", "pyplot.plot(samples, fitted_polynomial(samples))\n", "pyplot.show()\n", "\n", "fitted_polynomial.round(4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Least squares regression is also supported by `sklearn`. So it is possible to get the same result using the `LinearRegression` model. For example:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "execution": { "iopub.execute_input": "2021-05-18T10:57:09.821861Z", "iopub.status.busy": "2021-05-18T10:57:09.821541Z", "iopub.status.idle": "2021-05-18T10:57:09.938825Z", "shell.execute_reply": "2021-05-18T10:57:09.938523Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "text/plain": [ "polynomial(0.0921*q0**3-0.8798*q0**2+1.9153*q0-0.1982)" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.linear_model import LinearRegression\n", "\n", "model = LinearRegression(fit_intercept=False)\n", "fitted_polynomial = chaospy.fit_regression(\n", " expansion, samples, evals, model=model)\n", "\n", "pyplot.scatter(samples, evals)\n", "pyplot.plot(samples, fitted_polynomial(samples))\n", "pyplot.show()\n", "\n", "fitted_polynomial.round(4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It is important to note that sklearn often does extra operations that may interfere with the compatibility of `chaospy`. Here `fit_intercept=False` ensures that an extra columns isn't added needlessly. An error will be raised if this is forgotten." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Single variable regression\n", "\n", "While in most cases least squares regression is sufficient, that is not always the case. For those deviating cases `scikit-learn` provides a set of alternative methods. Even though `chaospy` doesn't differentiate between single dimensional and multi-dimensional responses, `scikit-learn` do.\n", "\n", "The methods that support single dimensional responses are:\n", "\n", "* `least squares` -- Simple $L_2$ regression without any extra features.\n", "* `elastic net` -- $L_2$ regression with both $L_1$ and $L_2$ regularization terms.\n", "* `lasso` -- $L_2$ regression with an extra $L_1$ regularization term, and a preference for fewer non-zero terms.\n", "* `lasso lars` -- An implementation of `lasso` meant for high dimensional data.\n", "* `lars` -- $L_1$ regression well suited for high dimensional data.\n", "* `orthogonal matching pursuit` -- $L_2$ regression with enforced number of non-zero terms.\n", "* `ridge` -- $L_2$ regression with an $L_2$ regularization term.\n", "* `bayesian ridge` -- Same as `ridge`, but uses Bayesian probability to let data estimate the complexity parameter.\n", "* `auto relevant determination` -- Same as `bayesian ridge`, but also favors fewer non-zero terms." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "execution": { "iopub.execute_input": "2021-05-18T10:57:09.941641Z", "iopub.status.busy": "2021-05-18T10:57:09.941324Z", "iopub.status.idle": "2021-05-18T10:57:09.949411Z", "shell.execute_reply": "2021-05-18T10:57:09.949120Z" } }, "outputs": [], "source": [ "from sklearn import linear_model as lm\n", "\n", "kws = {\"fit_intercept\": False}\n", "univariate_models = {\n", " \"least squares\": lm.LinearRegression(**kws),\n", " \"elastic net\": lm.ElasticNet(alpha=0.1, **kws),\n", " \"lasso\": lm.Lasso(alpha=0.1, **kws),\n", " \"lasso lars\": lm.LassoLars(alpha=0.1, **kws),\n", " \"lars\": lm.Lars(**kws),\n", " \"orthogonal matching pursuit\":\n", " lm.OrthogonalMatchingPursuit(n_nonzero_coefs=3, **kws),\n", " \"ridge\": lm.Ridge(alpha=0.1, **kws),\n", " \"bayesian ridge\": lm.BayesianRidge(**kws),\n", " \"auto relevant determination\": lm.ARDRegression(**kws),\n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Again, as the polynomials already addresses the constant term, it is important to remember to include `fit_intercept=False` for each model.\n", "\n", "We can then create a fit for each of the univariate models:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "execution": { "iopub.execute_input": "2021-05-18T10:57:09.951676Z", "iopub.status.busy": "2021-05-18T10:57:09.951428Z", "iopub.status.idle": "2021-05-18T10:57:10.068710Z", "shell.execute_reply": "2021-05-18T10:57:10.068945Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "for label, model in univariate_models.items():\n", " \n", " fitted_polynomial = chaospy.fit_regression(\n", " expansion, samples, evals, model=model)\n", " pyplot.plot(samples, fitted_polynomial(samples))\n", "\n", "pyplot.scatter(samples, evals)\n", "pyplot.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Multi-variable regression\n", "\n", "This part of the tutorial uses the same example as the [problem formulation](../main_usage/problem_formulation.ipynb).\n", "In other words:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "execution": { "iopub.execute_input": "2021-05-18T10:57:10.070911Z", "iopub.status.busy": "2021-05-18T10:57:10.070642Z", "iopub.status.idle": "2021-05-18T10:57:12.133241Z", "shell.execute_reply": "2021-05-18T10:57:12.132899Z" } }, "outputs": [], "source": [ "from problem_formulation import (\n", " model_solver, joint, error_in_mean, error_in_variance)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The methods that support multi-label dimensional responses are:\n", "\n", "* `least squares` -- Simple $L_2$ regression without any extra features.\n", "* `elastic net` -- $L_2$ regression with both $L_1$ and $L_2$ regularization terms.\n", "* `lasso` -- $L_2$ regression with an extra $L_1$ regularization term, and a preference for fewer non-zero terms.\n", "* `lasso lars` -- An implementation of `lasso` meant for high dimensional data.\n", "* `orthogonal matching pursuit` -- $L_2$ regression with enforced number of non-zero terms.\n", "* `ridge` -- $L_2$ regression with an $L_2$ regularization term." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "execution": { "iopub.execute_input": "2021-05-18T10:57:12.136675Z", "iopub.status.busy": "2021-05-18T10:57:12.136287Z", "iopub.status.idle": "2021-05-18T10:57:12.145346Z", "shell.execute_reply": "2021-05-18T10:57:12.145005Z" } }, "outputs": [], "source": [ "multivariate_models = {\n", " \"least squares\": lm.LinearRegression(**kws),\n", " \"elastic net\": lm.MultiTaskElasticNet(alpha=0.2, **kws),\n", " \"lasso\": lm.MultiTaskLasso(alpha=0.2, **kws),\n", " \"lasso lars\": lm.LassoLars(alpha=0.2, **kws),\n", " \"lars\": lm.Lars(n_nonzero_coefs=3, **kws),\n", " \"orthogonal matching pursuit\": \\\n", " lm.OrthogonalMatchingPursuit(n_nonzero_coefs=3, **kws),\n", " \"ridge\": lm.Ridge(alpha=0.2, **kws),\n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To illustrate the difference between the methods, we do the simple error analysis:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "execution": { "iopub.execute_input": "2021-05-18T10:57:12.148869Z", "iopub.status.busy": "2021-05-18T10:57:12.148520Z", "iopub.status.idle": "2021-05-18T10:57:12.779940Z", "shell.execute_reply": "2021-05-18T10:57:12.780779Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "least squares 0.00003 0.00000 6\n", "elastic net 0.08373 0.02085 2\n", "lasso 0.01386 0.01541 2\n", "lasso lars 0.21168 0.02121 1\n", "lars 0.00061 0.00144 3\n", "orthogonal matching pursuit 0.00114 0.00060 3\n", "ridge 0.00819 0.00936 6\n" ] } ], "source": [ "import warnings\n", "warnings.filterwarnings(\"ignore\", category=RuntimeWarning)\n", "\n", "expansion = chaospy.generate_expansion(2, joint)\n", "samples = joint.sample(50)\n", "evals = numpy.array([model_solver(sample) for sample in samples.T])\n", "\n", "for label, model in multivariate_models.items():\n", " \n", " fitted_polynomial, coeffs = chaospy.fit_regression(\n", " expansion, samples, evals, model=model, retall=True)\n", " \n", " self_evals = fitted_polynomial(*samples)\n", " error_mean_ = error_in_mean(chaospy.E(fitted_polynomial, joint))\n", " error_var_ = error_in_variance(chaospy.Var(fitted_polynomial, joint))\n", " count_non_zero = numpy.sum(numpy.any(coeffs, axis=-1))\n", " \n", " print(f\"{label:<30} {error_mean_:.5f} \" +\n", " f\"{error_var_:.5f} {count_non_zero}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It is worth noting that as some of the method removes coefficients, it can function at higher polynomial order than the saturate methods." ] } ], "metadata": { "jupytext": { "formats": "ipynb,py:percent" }, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.5" } }, "nbformat": 4, "nbformat_minor": 4 }