{"id":46069380,"url":"https://github.com/stdlib-js/ml-incr-sgd-regression","last_synced_at":"2026-03-01T13:01:29.784Z","repository":{"id":41373216,"uuid":"377248598","full_name":"stdlib-js/ml-incr-sgd-regression","owner":"stdlib-js","description":"Online regression via stochastic gradient descent (SGD).","archived":false,"fork":false,"pushed_at":"2026-02-08T05:37:45.000Z","size":3765,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-02-08T12:24:35.994Z","etag":null,"topics":["algorithm","gradient-descent","incremental","javascript","machine-learning","math","mathematics","ml","node","node-js","nodejs","online","prediction","regression","statistics","stats","stdlib"],"latest_commit_sha":null,"homepage":"https://github.com/stdlib-js/stdlib","language":"JavaScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stdlib-js.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["stdlib-js"],"open_collective":"stdlib","tidelift":"npm/@stdlib/stdlib"}},"created_at":"2021-06-15T17:47:36.000Z","updated_at":"2026-02-08T04:38:41.000Z","dependencies_parsed_at":"2024-01-16T15:42:01.402Z","dependency_job_id":"15bd21c4-7d74-42b9-bbaa-b659fc243b8c","html_url":"https://github.com/stdlib-js/ml-incr-sgd-regression","commit_stats":{"total_commits":55,"total_committers":1,"mean_commits":55.0,"dds":0.0,"last_synced_commit":"a708cf0feb885dbc52d6d8d72de2ac215c10ee8a"},"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"purl":"pkg:github/stdlib-js/ml-incr-sgd-regression","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stdlib-js%2Fml-incr-sgd-regression","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stdlib-js%2Fml-incr-sgd-regression/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stdlib-js%2Fml-incr-sgd-regression/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stdlib-js%2Fml-incr-sgd-regression/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stdlib-js","download_url":"https://codeload.github.com/stdlib-js/ml-incr-sgd-regression/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stdlib-js%2Fml-incr-sgd-regression/sbom","scorecard":{"id":848461,"data":{"date":"2025-08-11","repo":{"name":"github.com/stdlib-js/ml-incr-sgd-regression","commit":"ab12b43a5f2ec4bec742517738d232bbcce73a42"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.2,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"1 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Security-Policy","score":9,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Warn: One or no descriptive hints of disclosure, vulnerability, and/or timelines in security policy","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/cancel.yml:1","Warn: no topLevel permission defined: .github/workflows/close_pull_requests.yml:1","Warn: no topLevel permission defined: .github/workflows/examples.yml:1","Warn: no topLevel permission defined: .github/workflows/npm_downloads.yml:1","Warn: no topLevel permission defined: .github/workflows/productionize.yml:1","Warn: no topLevel permission defined: .github/workflows/publish.yml:1","Warn: no topLevel permission defined: .github/workflows/test.yml:1","Warn: no topLevel permission defined: .github/workflows/test_bundles.yml:1","Warn: no topLevel permission defined: .github/workflows/test_coverage.yml:1","Warn: no topLevel permission defined: .github/workflows/test_install.yml:1","Warn: no topLevel permission defined: .github/workflows/test_published_package.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Pinned-Dependencies","score":3,"reason":"dependency not pinned by hash detected -- score normalized to 3","details":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/productionize.yml:85: update your workflow using https://app.stepsecurity.io/secureworkflow/stdlib-js/ml-incr-sgd-regression/productionize.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/productionize.yml:275: update your workflow using https://app.stepsecurity.io/secureworkflow/stdlib-js/ml-incr-sgd-regression/productionize.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/productionize.yml:449: update your workflow using https://app.stepsecurity.io/secureworkflow/stdlib-js/ml-incr-sgd-regression/productionize.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/productionize.yml:457: update your workflow using https://app.stepsecurity.io/secureworkflow/stdlib-js/ml-incr-sgd-regression/productionize.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/productionize.yml:623: update your workflow using https://app.stepsecurity.io/secureworkflow/stdlib-js/ml-incr-sgd-regression/productionize.yml/main?enable=pin","Warn: npmCommand not pinned by hash: .github/workflows/examples.yml:58","Warn: npmCommand not pinned by hash: .github/workflows/examples.yml:58","Warn: npmCommand not pinned by hash: .github/workflows/examples.yml:58","Warn: npmCommand not pinned by hash: .github/workflows/productionize.yml:157","Warn: npmCommand not pinned by hash: .github/workflows/productionize.yml:157","Warn: npmCommand not pinned by hash: .github/workflows/productionize.yml:157","Warn: npmCommand not pinned by hash: .github/workflows/productionize.yml:165","Warn: npmCommand not pinned by hash: .github/workflows/productionize.yml:269","Warn: npmCommand not pinned by hash: .github/workflows/productionize.yml:269","Warn: npmCommand not pinned by hash: .github/workflows/productionize.yml:269","Warn: npmCommand not pinned by hash: .github/workflows/productionize.yml:436","Warn: npmCommand not pinned by hash: .github/workflows/productionize.yml:436","Warn: npmCommand not pinned by hash: .github/workflows/productionize.yml:436","Warn: npmCommand not pinned by hash: .github/workflows/productionize.yml:617","Warn: npmCommand not pinned by hash: .github/workflows/productionize.yml:617","Warn: npmCommand not pinned by hash: .github/workflows/productionize.yml:617","Warn: npmCommand not pinned by hash: .github/workflows/test.yml:76","Warn: npmCommand not pinned by hash: .github/workflows/test.yml:76","Warn: npmCommand not pinned by hash: .github/workflows/test.yml:76","Warn: npmCommand not pinned by hash: .github/workflows/test.yml:83","Warn: npmCommand not pinned by hash: .github/workflows/test_bundles.yml:72","Warn: npmCommand not pinned by hash: .github/workflows/test_coverage.yml:67","Warn: npmCommand not pinned by hash: .github/workflows/test_coverage.yml:67","Warn: npmCommand not pinned by hash: .github/workflows/test_coverage.yml:67","Warn: npmCommand not pinned by hash: .github/workflows/test_coverage.yml:74","Warn: npmCommand not pinned by hash: .github/workflows/test_install.yml:75","Warn: npmCommand not pinned by hash: .github/workflows/test_install.yml:75","Warn: npmCommand not pinned by hash: .github/workflows/test_install.yml:75","Warn: npmCommand not pinned by hash: .github/workflows/test_published_package.yml:93","Info:  31 out of  31 GitHub-owned GitHubAction dependencies pinned","Info:  19 out of  24 third-party GitHubAction dependencies pinned","Info:   0 out of  29 npmCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}}]},"last_synced_at":"2025-08-23T21:55:53.703Z","repository_id":41373216,"created_at":"2025-08-23T21:55:53.703Z","updated_at":"2025-08-23T21:55:53.703Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29969700,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T12:56:10.327Z","status":"ssl_error","status_checked_at":"2026-03-01T12:55:24.744Z","response_time":124,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algorithm","gradient-descent","incremental","javascript","machine-learning","math","mathematics","ml","node","node-js","nodejs","online","prediction","regression","statistics","stats","stdlib"],"created_at":"2026-03-01T13:01:29.031Z","updated_at":"2026-03-01T13:01:29.775Z","avatar_url":"https://github.com/stdlib-js.png","language":"JavaScript","funding_links":["https://github.com/sponsors/stdlib-js","https://opencollective.com/stdlib","https://tidelift.com/funding/github/npm/@stdlib/stdlib"],"categories":[],"sub_categories":[],"readme":"\u003c!--\n\n@license Apache-2.0\n\nCopyright (c) 2018 The Stdlib Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n   http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n--\u003e\n\n\n\u003cdetails\u003e\n  \u003csummary\u003e\n    About stdlib...\n  \u003c/summary\u003e\n  \u003cp\u003eWe believe in a future in which the web is a preferred environment for numerical computation. To help realize this future, we've built stdlib. stdlib is a standard library, with an emphasis on numerical and scientific computation, written in JavaScript (and C) for execution in browsers and in Node.js.\u003c/p\u003e\n  \u003cp\u003eThe library is fully decomposable, being architected in such a way that you can swap out and mix and match APIs and functionality to cater to your exact preferences and use cases.\u003c/p\u003e\n  \u003cp\u003eWhen you use stdlib, you can be absolutely certain that you are using the most thorough, rigorous, well-written, studied, documented, tested, measured, and high-quality code out there.\u003c/p\u003e\n  \u003cp\u003eTo join us in bringing numerical computing to the web, get started by checking us out on \u003ca href=\"https://github.com/stdlib-js/stdlib\"\u003eGitHub\u003c/a\u003e, and please consider \u003ca href=\"https://opencollective.com/stdlib\"\u003efinancially supporting stdlib\u003c/a\u003e. We greatly appreciate your continued support!\u003c/p\u003e\n\u003c/details\u003e\n\n# Online Regression\n\n[![NPM version][npm-image]][npm-url] [![Build Status][test-image]][test-url] [![Coverage Status][coverage-image]][coverage-url] \u003c!-- [![dependencies][dependencies-image]][dependencies-url] --\u003e\n\n\u003e Online regression via [Stochastic Gradient Descent][stochastic-gradient-descent].\n\n\u003csection class=\"installation\"\u003e\n\n## Installation\n\n```bash\nnpm install @stdlib/ml-incr-sgd-regression\n```\n\nAlternatively,\n\n-   To load the package in a website via a `script` tag without installation and bundlers, use the [ES Module][es-module] available on the [`esm`][esm-url] branch (see [README][esm-readme]).\n-   If you are using Deno, visit the [`deno`][deno-url] branch (see [README][deno-readme] for usage intructions).\n-   For use in Observable, or in browser/node environments, use the [Universal Module Definition (UMD)][umd] build available on the [`umd`][umd-url] branch (see [README][umd-readme]).\n\nThe [branches.md][branches-url] file summarizes the available branches and displays a diagram illustrating their relationships.\n\nTo view installation and usage instructions specific to each branch build, be sure to explicitly navigate to the respective README files on each branch, as linked to above.\n\n\u003c/section\u003e\n\n\u003csection class=\"usage\"\u003e\n\n## Usage\n\n```javascript\nvar incrSGDRegression = require( '@stdlib/ml-incr-sgd-regression' );\n```\n\n#### incrSGDRegression( \\[options] )\n\nCreates an online linear regression model fitted via [stochastic gradient descent][stochastic-gradient-descent]. The module performs [L2 regularization][l2-regularization] of the model coefficients, shrinking them towards zero by penalizing the squared [euclidean norm][euclidean-norm] of the coefficients.\n\n```javascript\nvar randu = require( '@stdlib/random-base-randu' );\nvar normal = require( '@stdlib/random-base-normal' );\nvar accumulator = incrSGDRegression();\n\nvar x1;\nvar x2;\nvar i;\nvar y;\n\n// Update model as data comes in...\nfor ( i = 0; i \u003c 100000; i++ ) {\n    x1 = randu();\n    x2 = randu();\n    y = (3.0 * x1) + (-3.0 * x2) + 2.0 + normal( 0.0, 1.0 );\n    accumulator( [ x1, x2 ], y );\n}\n```\n\nThe function accepts the following `options`:\n\n-   **learningRate**: `string` denoting the learning rate to use. Can be `constant`, `pegasos` or `basic`. Default: `basic`.\n-   **loss**: `string` denoting the loss function to use. Can be `squaredError`, `epsilonInsensitive` or `huber`. Default: `squaredError`.\n-   **epsilon**: insensitivity parameter. Default: `0.1`.\n-   **lambda**: regularization parameter. Default: `1e-3`.\n-   **eta0**: constant learning rate. Default: `0.02`.\n-   **intercept**: `boolean` indicating whether to include an intercept. Default: `true`.\n\n\u003c!-- run-disable --\u003e\n\n```javascript\nvar accumulator = incrSGDRegression({\n    'loss': 'squaredError',\n    'lambda': 1e-4\n});\n```\n\nThe `learningRate` decides how fast or slow the weights will be updated towards the optimal weights. Let `i` denote the current iteration of the algorithm (i.e. the number of data points having arrived). The possible learning rates are:\n\n|      Option     |        Definition       |\n| :-------------: | :---------------------: |\n| basic (default) | 1000.0 / ( i + 1000.0 ) |\n|     constant    |           eta0          |\n|     pegasos     |  1.0 / ( lambda \\* i )  |\n\nThe used loss function is specified via the `loss` option. The available options are:\n\n-   **epsilonInsensitive**: Penalty is the absolute value of the error whenever the absolute error exceeds epsilon and zero otherwise.\n-   **huber**: Squared-error loss for observations with error smaller than epsilon in magnitude, linear loss otherwise. Should be used in order to decrease the influence of outliers on the model fit.\n-   **squaredError**: Squared error loss, i.e. the squared difference of the observed and fitted values.\n\nThe `lambda` parameter determines the amount of shrinkage inflicted on the model coefficients:\n\n```javascript\nvar createRandom = require( '@stdlib/random-base-randu' ).factory;\n\nvar accumulator;\nvar coefs;\nvar opts;\nvar rand;\nvar x1;\nvar x2;\nvar i;\nvar y;\n\nopts = {\n    'seed': 23\n};\nrand = createRandom( opts );\n\naccumulator = incrSGDRegression({\n    'lambda': 1e-5\n});\n\nfor ( i = 0; i \u003c 100; i++ ) {\n    x1 = rand();\n    x2 = rand();\n    y = (3.0 * x1) + (-3.0 * x2) + 2.0;\n    accumulator( [ x1, x2 ], y );\n}\n\ncoefs = accumulator.coefs;\n// returns [ ~3.007, ~-3.002, ~2 ]\n\nrand = createRandom( opts );\naccumulator = incrSGDRegression({\n    'lambda': 1e-2\n});\n\nfor ( i = 0; i \u003c 100; i++ ) {\n    x1 = rand();\n    x2 = rand();\n    y = (3.0 * x1) + (-3.0 * x2) + 2.0;\n    accumulator( [ x1, x2 ], y );\n}\n\ncoefs = accumulator.coefs;\n// returns [ ~2.893, ~-2.409, ~1.871 ]\n```\n\nHigher values of `lambda` reduce the variance of the model coefficient estimates at the expense of introducing bias.\n\nBy default, the model contains an `intercept` term. To omit the `intercept`, set the corresponding option to `false`:\n\n```javascript\nvar accumulator = incrSGDRegression({\n    'intercept': false\n});\naccumulator( [ 1.4, 0.5 ], 2.0 );\n\nvar dim = accumulator.coefs.length;\n// returns 2\n\naccumulator = incrSGDRegression();\naccumulator( [ 1.4, 0.5 ], 2.0 );\n\ndim = accumulator.coefs.length;\n// returns 3\n```\n\nIf `intercept` is `true`, an element equal to one is implicitly added to each `x` vector. Hence, this module performs regularization of the intercept term.\n\n#### accumulator( x, y )\n\nUpdates the model coefficients in light of incoming data. `y` must be a numeric response value, `x` a `numeric array` of predictors. The number of predictors is decided upon first invocation of this method. All subsequent calls must supply `x` vectors of the same dimensionality.\n\n\u003c!-- run-disable --\u003e\n\n\u003c!-- eslint-disable stdlib/doctest --\u003e\n\n```javascript\naccumulator( [ 1.0, 0.0 ], 5.0 );\n```\n\n#### accumulator.predict( x )\n\nPredicts the response for a new feature vector `x`, where `x` must be a `numeric array` of predictors. Given feature vector `x = [x_0, x_1, ...]` and model coefficients `c = [c_0, c_1, ...]`, the prediction is equal to `x_0*c_0 + x_1*c_1 + ... + c_intercept`.\n\n\u003c!-- run-disable --\u003e\n\n\u003c!-- eslint-disable stdlib/doctest --\u003e\n\n```javascript\nvar yhat = accumulator.predict( [ 0.5, 2.0 ] );\n// returns \u003cnumber\u003e\n```\n\n#### accumulator.coefs\n\nGetter for the model coefficients / feature weights stored in an `array`. The coefficients are ordered as `[c_0, c_1,..., c_intercept]`, where `c_0` corresponds to the first feature in `x` and so on.\n\n\u003c!-- run-disable --\u003e\n\n\u003c!-- eslint-disable stdlib/doctest --\u003e\n\n```javascript\nvar coefs = accumulator.coefs;\n// returns \u003cArray\u003e\n```\n\n\u003c/section\u003e\n\n\u003c!-- /.usage --\u003e\n\n\u003csection class=\"notes\"\u003e\n\n## Notes\n\n-   Stochastic gradient descent is sensitive to the scaling of the features. One is best advised to either scale each attribute to `[0,1]` or `[-1,1]` or to transform them into z-scores with zero mean and unit variance. One should keep in mind that the same scaling has to be applied to test vectors in order to obtain accurate predictions.\n-   Since this module performs regularization of the intercept term, scaling the response variable to an appropriate scale is also highly recommended.\n\n\u003c/section\u003e\n\n\u003c!-- /.notes --\u003e\n\n\u003csection class=\"examples\"\u003e\n\n## Examples\n\n\u003c!-- eslint no-undef: \"error\" --\u003e\n\n```javascript\nvar randu = require( '@stdlib/random-base-randu' );\nvar normal = require( '@stdlib/random-base-normal' );\nvar incrSGDRegression = require( '@stdlib/ml-incr-sgd-regression' );\n\nvar accumulator;\nvar rnorm;\nvar x1;\nvar x2;\nvar y;\nvar i;\n\nrnorm = normal.factory( 0.0, 1.0 );\n\n// Create model:\naccumulator = incrSGDRegression({\n    'lambda': 1e-7,\n    'loss': 'squaredError',\n    'intercept': true\n});\n\n// Update model as data comes in...\nfor ( i = 0; i \u003c 10000; i++ ) {\n    x1 = randu();\n    x2 = randu();\n    y = (3.0 * x1) + (-3.0 * x2) + 2.0 + rnorm();\n    accumulator( [ x1, x2 ], y );\n}\n\n// Extract model coefficients:\nconsole.log( accumulator.coefs );\n\n// Predict new observations:\nconsole.log( 'y_hat = %d; x1 = %d; x2 = %d', accumulator.predict( [0.9, 0.1] ), 0.9, 0.1 );\nconsole.log( 'y_hat = %d; x1 = %d; x2 = %d', accumulator.predict( [0.1, 0.9] ), 0.1, 0.9 );\nconsole.log( 'y_hat = %d; x1 = %d; x2 = %d', accumulator.predict( [0.9, 0.9] ), 0.9, 0.9 );\n```\n\n\u003c/section\u003e\n\n\u003c!-- /.examples --\u003e\n\n\u003c!-- Section for related `stdlib` packages. Do not manually edit this section, as it is automatically populated. --\u003e\n\n\u003csection class=\"related\"\u003e\n\n* * *\n\n## See Also\n\n-   \u003cspan class=\"package-name\"\u003e[`@stdlib/ml-incr/binary-classification`][@stdlib/ml/incr/binary-classification]\u003c/span\u003e\u003cspan class=\"delimiter\"\u003e: \u003c/span\u003e\u003cspan class=\"description\"\u003eincrementally perform binary classification using stochastic gradient descent (SGD).\u003c/span\u003e\n\n\u003c/section\u003e\n\n\u003c!-- /.related --\u003e\n\n\u003c!-- Section for all links. Make sure to keep an empty line after the `section` element and another before the `/section` close. --\u003e\n\n\n\u003csection class=\"main-repo\" \u003e\n\n* * *\n\n## Notice\n\nThis package is part of [stdlib][stdlib], a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more.\n\nFor more information on the project, filing bug reports and feature requests, and guidance on how to develop [stdlib][stdlib], see the main project [repository][stdlib].\n\n#### Community\n\n[![Chat][chat-image]][chat-url]\n\n---\n\n## License\n\nSee [LICENSE][stdlib-license].\n\n\n## Copyright\n\nCopyright \u0026copy; 2016-2026. The Stdlib [Authors][stdlib-authors].\n\n\u003c/section\u003e\n\n\u003c!-- /.stdlib --\u003e\n\n\u003c!-- Section for all links. Make sure to keep an empty line after the `section` element and another before the `/section` close. --\u003e\n\n\u003csection class=\"links\"\u003e\n\n[npm-image]: http://img.shields.io/npm/v/@stdlib/ml-incr-sgd-regression.svg\n[npm-url]: https://npmjs.org/package/@stdlib/ml-incr-sgd-regression\n\n[test-image]: https://github.com/stdlib-js/ml-incr-sgd-regression/actions/workflows/test.yml/badge.svg?branch=v0.2.3\n[test-url]: https://github.com/stdlib-js/ml-incr-sgd-regression/actions/workflows/test.yml?query=branch:v0.2.3\n\n[coverage-image]: https://img.shields.io/codecov/c/github/stdlib-js/ml-incr-sgd-regression/main.svg\n[coverage-url]: https://codecov.io/github/stdlib-js/ml-incr-sgd-regression?branch=main\n\n\u003c!--\n\n[dependencies-image]: https://img.shields.io/david/stdlib-js/ml-incr-sgd-regression.svg\n[dependencies-url]: https://david-dm.org/stdlib-js/ml-incr-sgd-regression/main\n\n--\u003e\n\n[chat-image]: https://img.shields.io/badge/zulip-join_chat-brightgreen.svg\n[chat-url]: https://stdlib.zulipchat.com\n\n[stdlib]: https://github.com/stdlib-js/stdlib\n\n[stdlib-authors]: https://github.com/stdlib-js/stdlib/graphs/contributors\n\n[umd]: https://github.com/umdjs/umd\n[es-module]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules\n\n[deno-url]: https://github.com/stdlib-js/ml-incr-sgd-regression/tree/deno\n[deno-readme]: https://github.com/stdlib-js/ml-incr-sgd-regression/blob/deno/README.md\n[umd-url]: https://github.com/stdlib-js/ml-incr-sgd-regression/tree/umd\n[umd-readme]: https://github.com/stdlib-js/ml-incr-sgd-regression/blob/umd/README.md\n[esm-url]: https://github.com/stdlib-js/ml-incr-sgd-regression/tree/esm\n[esm-readme]: https://github.com/stdlib-js/ml-incr-sgd-regression/blob/esm/README.md\n[branches-url]: https://github.com/stdlib-js/ml-incr-sgd-regression/blob/main/branches.md\n\n[stdlib-license]: https://raw.githubusercontent.com/stdlib-js/ml-incr-sgd-regression/main/LICENSE\n\n[euclidean-norm]: https://en.wikipedia.org/wiki/Norm_(mathematics)#Euclidean_norm\n\n[l2-regularization]: https://en.wikipedia.org/wiki/Tikhonov_regularization\n\n[stochastic-gradient-descent]: https://en.wikipedia.org/wiki/Stochastic_gradient_descent\n\n\u003c!-- \u003crelated-links\u003e --\u003e\n\n[@stdlib/ml/incr/binary-classification]: https://github.com/stdlib-js/ml-incr-binary-classification\n\n\u003c!-- \u003c/related-links\u003e --\u003e\n\n\u003c/section\u003e\n\n\u003c!-- /.links --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstdlib-js%2Fml-incr-sgd-regression","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstdlib-js%2Fml-incr-sgd-regression","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstdlib-js%2Fml-incr-sgd-regression/lists"}