{"id":22998233,"url":"https://github.com/uswitch/clj-rad","last_synced_at":"2025-08-14T00:31:55.799Z","repository":{"id":27661048,"uuid":"31146726","full_name":"uswitch/clj-rad","owner":"uswitch","description":"Clojure wrapper of Netflix Surus Robust Anomaly Detection","archived":false,"fork":false,"pushed_at":"2017-03-17T21:20:40.000Z","size":5902,"stargazers_count":9,"open_issues_count":0,"forks_count":1,"subscribers_count":54,"default_branch":"master","last_synced_at":"2024-11-28T14:44:55.077Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/uswitch.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-02-22T00:19:56.000Z","updated_at":"2018-02-19T13:09:56.000Z","dependencies_parsed_at":"2022-09-05T01:31:27.629Z","dependency_job_id":null,"html_url":"https://github.com/uswitch/clj-rad","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uswitch%2Fclj-rad","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uswitch%2Fclj-rad/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uswitch%2Fclj-rad/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uswitch%2Fclj-rad/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/uswitch","download_url":"https://codeload.github.com/uswitch/clj-rad/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229786999,"owners_count":18124014,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-12-15T06:12:14.967Z","updated_at":"2024-12-15T06:12:15.537Z","avatar_url":"https://github.com/uswitch.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"# clj-rad\n\nA clojure wrapper of the Netflix Surus Robust Anamoly Detection (RAD) https://github.com/Netflix/Surus\n\n## Installing\n\nAdd the following to your [Leiningen](http://github.com/technomancy/leiningen) `project.clj`:\n\n![latest clj-kafka version](https://clojars.org/clj-rad/latest-version.svg)\n\n## Usage\n\n### Code\n\n```clojure\n(require '[clj-rad.core :as rad])\n\n(def data [{:date 20150101 :a 1 :b 1 :value 14}\n{:date 20150102 :a 1 :b 2 :value 35}\n{:date 20150103 :a 1 :b 1 :value 12}\n{:date 20150104 :a 1 :b 1 :value 10}\n{:date 20150105 :a 1 :b 1 :value 13}\n{:date 20150106 :a 1 :b 1 :value 9}\n{:date 20150107 :a 1 :b 1 :value 15}])\n\n(rad/rpca-outliers-daily data 7 [:a :b])\n; {:group                  {:a 1 :b 1}\n;  :raw-data               [...]\n;  :low-rank-approximation [...]\n;  :sparse                 [...]\n;  :error                  [...]}\n```\n\n### Analysis\n\nThe result returned contains a group and 4 timeseries collections. Each could be plotted on the same timeseries chart.\n\n* `:raw-data` this is the original time series data for this group\n* `:low-rank-approximation` this is an approximation of the raw time series data\n* `:sparse` these are the outliers\n* `:error` this is the acceptable error due to random variance\n\nAt each point in time the oringal data value (X) should be decomposable to it's low rank approximation (L) and it's sparse (S) components, allowing for the error i (E) value.\n\nSuch that `X=L+S+E`\n\n## License\n\nCopyright © 2015 Christian Blunden\n\nDistributed under the Eclipse Public License either version 1.0 or (at\nyour option) any later version.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuswitch%2Fclj-rad","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fuswitch%2Fclj-rad","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuswitch%2Fclj-rad/lists"}