{"id":38718695,"url":"https://github.com/mpolatcan/prescient","last_synced_at":"2026-01-17T11:05:45.173Z","repository":{"id":104761911,"uuid":"138229621","full_name":"mpolatcan/prescient","owner":"mpolatcan","description":" Prescient is a automated forecasting tool. Prescient is based on Facebook Prophet API and configurable tool with several parameters related with Facebook Prophet API.","archived":false,"fork":false,"pushed_at":"2018-06-22T16:29:16.000Z","size":19,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-01-29T16:33:33.924Z","etag":null,"topics":["fbprophet","forecasting","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"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/mpolatcan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-06-21T22:52:11.000Z","updated_at":"2018-09-08T15:07:52.000Z","dependencies_parsed_at":"2023-05-29T16:45:20.978Z","dependency_job_id":null,"html_url":"https://github.com/mpolatcan/prescient","commit_stats":{"total_commits":4,"total_committers":1,"mean_commits":4.0,"dds":0.0,"last_synced_commit":"b9fbee679e6c370d14deda5e88cd4f1cc5965d78"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mpolatcan/prescient","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpolatcan%2Fprescient","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpolatcan%2Fprescient/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpolatcan%2Fprescient/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpolatcan%2Fprescient/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mpolatcan","download_url":"https://codeload.github.com/mpolatcan/prescient/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpolatcan%2Fprescient/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28506597,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T10:25:30.148Z","status":"ssl_error","status_checked_at":"2026-01-17T10:25:29.718Z","response_time":85,"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":["fbprophet","forecasting","python"],"created_at":"2026-01-17T11:05:45.073Z","updated_at":"2026-01-17T11:05:45.138Z","avatar_url":"https://github.com/mpolatcan.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Prescient\n\n**Prescient** is a automated forecasting tool. Prescient\nis based on **Facebook Prophet** API and configurable tool with several\nparameters related with **Facebook Prophet** API.\n\n## How it works\n\n    python Prescient.py [config_filename.yml]\n\n**Example**:\n\n    python Prescient.py config.yml\n\n\n## Prescient Config\n\n```yaml\n# Prescient Example Config\n# Created by Mutlu Polatcan\n# 01.02.2018\n\n################################### REQUIRED ATTRIBUTES #####################################\nprescient.dataset.filepath: \"../datasets/energy-demand-forecasting/zone_1_energy_demand.csv\"\n\nprescient.training.data.percent.min: 70\nprescient.training.data.percent.max: 80\nprescient.training.data.percent.increment.by: 5\n\nprescient.interval.width.min: 0.05\nprescient.interval.width.max: 0.85\nprescient.interval.width.increment.by: 0.05\n\nprescient.changepoint.prior.scale.min: 0.001\nprescient.changepoint.prior.scale.max: 0.5\nprescient.changepoint.prior.scale.increment.by: 0.001\n\nprescient.predict.next: 7\nprescient.predict.freq: \"D\"\n\nprescient.convergence.detection.acr.threshold: -0.5 # must be negative\nprescient.convergence.detection.measure.number: 3\n\nprescient.paralellism: 3\n\nprescient.holiday.weekends.enabled: true\n\n################################### OPTIONAL ATTRIBUTES #######################################\nprescient.holiday.special.days:\n  - \"2017-01-30\"\n  - \"2017-02-28\"\n```\n\n### Config Attributes and Details\n------------------------------------\n\n#### *Training Data Percentage*\n**Prescient** is automated forecasting tool and so that, it wants training data\npercentage range from you. **Prescient** automatically creates training files according to\nthis percentage range and use these files for training models.\n\n    NOTE !!! Valid values for this attribute is between 0 and 100\n\n- **prescient.training.data.percent.min** (Type: *double*): Minimum percentage of training\ndata.\n- **prescient.training.data.percent.max** (Type: *double*): Maximum percentage of training\ndata.\n- **prescient.training.data.percent.increment.by** (Type: *double*): Incrementation amount of\npercentage of training data.\n\n------------------------------------\n\n##### *Interval Width*\nThe biggest source of uncertainty in the forecast is the potential for future trend changes.\nAgain, these interval assume that the future will see the same frequency and magnitude of rate changes as the past.\nwe assume that **the future will see similar trend changes as the history**. In particular, we assume that the average frequency\nand magnitude of trend changes in the future will be the same as that which we observe in the history. We project these trend\nchanges forward and by computing their distribution we obtain uncertainty intervals.\nThis assumption is probably not true, so you should not expect to get accurate coverage on these uncertainty intervals.\nOne property of this way of measuring uncertainty is that allowing **higher flexibility** in the rate, by increasing **prescient.changepoint.prior.scale**,\nwill increase the forecast uncertainty. This is because if we model more rate changes in the history then we will expect more in the future,\nand makes the uncertainty intervals a useful indicator of **overfitting**.\n\n- **prescient.interval.width.min** (Type: *double*): Minimum uncertainty interval width\n- **prescient.interval.width.max** (Type: *double*): Maximum uncertainty interval width\n- **prescient.interval.width.increment.by** (Type: *double*): Incrementation amount of uncertainty interval width\n\n------------------------------------\n\n##### *Changepoint Prior Scale*\n**Facebook Prophet** API\n\n- **prescient.changepoint.prior.scale.min:** (Type: *double*):\n- **prescient.changepoint.prior.scale.max:** (Type: *double*):\n- **prescient.changepoint.prior.scale.increment.by:** (Type: *double*):\n\n------------------------------------\n\n##### *Prediction Amount and Frequency*\n\n- **prescient.predict.next** (Type: *integer*): How far do you want to see future ?\n- **prescient.predict.freq** (Type: *string*): Prediction frequency for Prescient.\n\n        NOTE !!! Valid frequencies are 'H', 'D', 'M', 'Y'\n\n-----------------------------------\n\n##### *Parallelism*\n**Prescient** trains models and make predictions on these models concurrently. So that, there is attribute for\nhow many models train and make predictions on these models concurrently.\n\n- **prescient.paralellism** (Type: *integer*): Parallelism amount of your CPU. If you\nhave a quad core CPU and assign **4** to this parameter in config file, **Prescient** trains\n**4** models concurrently. If you increase this parameter, your total training and prediction time\nwill be reduced.\n\n-----------------------------------\n\n##### *Measure Number and Accuracy Change Rate Threshold for Convergence Detection*\n**Prescient** is automated forecasting tool and so that it must be find best model for us. **Prescient**\nuses simple optimization for this. **Prescient** looks last n (given by config) model's accuracies and compare\nit with current best model. If average accuracy change rate, belows user defined threshold, **Prescient**\ndoesn't try any other parameters.\n\n    NOTE !!! Average accuracy change rate threshold must be NEGATIVE\n\n- **prescient.convergence.detection.acr.threshold** (Type: *double*): Threshold of average accuracy rate change.\n- **prescient.convergence.detection.measure.number** (Type: *integer*): Model training and predictions numbers for\ncalculate average accuracy change rate by last n model's accuracies. (Window size)\n\n-----------------------------------\n\n##### *Special Days and Holidays*\n**Prescient** also models holiday effects via **Facebook Prophet** API. **Prescient**\nautomatically finds weekends in time series data and gives it to the **Prophet** to train models\nto modelling weekend effects. Also users can add special holidays for modelling holiday effects of these\ndays. For example, \"Christmas\", \"Ramadan\" etc.\n\n- **prescient.holiday.weekends.enabled** (Type: *boolean*): Enable or disable **Prescient's**\n    weekend effect modelling.\n- **prescient.holiday.special.days** (Type: *list of date strings*): User defined special days for\nholiday effect modelling.\n\n-----------------------------------\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmpolatcan%2Fprescient","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmpolatcan%2Fprescient","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmpolatcan%2Fprescient/lists"}