Commit Graph

31 Commits

Author SHA1 Message Date
Amaia Anabitarte 46927df906 MDL-65284 analytics: Final deprecation get_analysables() 2020-12-16 12:47:52 +01:00
Eloy Lafuente (stronk7) 74ee34fd87 MDL-69521 core: Move all comments in code from 4.1 to 3.11 2020-09-08 18:59:30 +02:00
David Monllaó 06579b18cc MDL-64739 analytics: Contexts autocomplete with ajax 2019-10-21 15:33:29 +08:00
David Monllaó 76b5ee4545 MDL-64739 tool_analytics: Restrict models to specific contexts 2019-10-21 09:54:39 +08:00
David Monllaó c22fb4bd4b MDL-64739 core_analytics: Contexts param for get_analysables_iterator 2019-10-21 09:54:34 +08:00
David Monllaó c430def90d MDL-66234 analytics: Extra GC during analysis 2019-07-29 18:36:42 +02:00
David Monllaó 39db57c3ee MDL-65839 core_analytics: New indicator instances for each analysable 2019-06-28 21:00:04 +02:00
David Monllaó 982fef46f4 MDL-64783 analytics: Activities due insight forwards to calendar
The patch includes changes applied after the peer review.
2019-04-09 00:29:57 +02:00
David Monllaó fccc728fcc MDL-64783 analytics: Performance improvements
- Removed redundant query to analytics_predict_samples
- Analysers API now uses recordsets to iterate through the analysable
  elements. They take the last analysed time into account.
- New method for targets so there is no need to always update the last
  analysis time. Useful for lightweight targets.
2019-04-09 00:29:57 +02:00
David Monllaó 9f690999ec MDL-64783 analytics: Performance improvements and internal refactoring
The base classes analyser and time-splitting method had too many
reponsibilities. A new analysis class has been created.
2019-04-09 00:26:39 +02:00
David Monllaó 50935afba4 MDL-64783 analytics: Upcoming activities due and related API changes 2019-04-09 00:25:24 +02:00
David Monllaó 0bd52bfdac MDL-63906 analytics: Release the lock on \Throwable received 2019-03-15 15:48:27 +01:00
David Monllao 97b0a6cbfc MDL-62218 analytics: Privacy API implementation 2018-05-03 15:28:22 +02:00
Jun Pataleta b469834ac9 Merge branch 'MDL-60375_master' of git://github.com/dmonllao/moodle 2017-10-19 22:03:56 +13:00
David Monllao 28c97d1b76 MDL-60375 analytics: Fix incorrect var reference 2017-10-19 08:48:11 +02:00
David Monllao b0fb8ef59f MDL-59063 analytics: Expand analysable API to provide a name 2017-10-17 14:04:47 +02:00
David Monllao 2dca133916 MDL-59988 analytics: Process pending training and prediction files 2017-10-13 12:29:21 +02:00
David Monllao dd13fc222c MDL-59694 analytics: Track processed analysables 2017-10-09 07:47:28 +02:00
David Monllao a8ccc5f2eb MDL-59630 analytics: Move get_analysables to abstract class 2017-10-03 10:07:21 +02:00
David Monllao 10658a1cb4 MDL-59279 analytics: Include more info about the dataset 2017-08-29 16:26:41 +02:00
David Monllao 5c5cb3ee15 MDL-59265 analytics: Rename machine learning backend method
- Method names renamed to avoid interface changes once
  we support regression and unsupervised learning
- Adding regressor interface even if not implemente
- predictor interface comments expanded
- Differentiate model's required accuracy from predictions quality
- Add missing get_callback_boundary call
- Updated datasets' metadata to allow 3rd parties to code
  regressors themselves
- Add missing option to exception message
- Include target data into the dataset regardless of being a prediction
  dataset or a training dataset
- Explicit in_array and array_search non-strict calls
- Overwrite discrete should_be_displayed implementation with the binary one
- Overwrite no_teacher get_display_value as it would otherwise look
  wrong
- Other minor fixes
2017-08-25 13:17:22 +02:00
David Monllao 0690a271c3 MDL-59067 analytics: Store indicator calculations
This was supposed to be split into multiple commits to make it easier to understand
but I failed to do it properly. So this is the list of changes:

- New analytics_indicator_calc db table to store indicators calculations
- Reuse previous calculations during prediction/training; other models
  previous calculations should also be reused as long as they belong to
  the same sample (sampleid depends on sampleorigin), time range and indicator
- Allow bulk inserting of these calculations as this can hurt database performance
- Block the same analysable to be analysed for training and for prediction
- Use a new instance of the target and use it for is_valid_* functions
  as using ::is_valid_sample can lead to problems if people
  uses it to cache stuff
2017-08-22 22:28:04 +02:00
David Monllao 56d4981e03 MDL-59661 analytics: Filearea passed as an argument to dataset_manager 2017-08-17 20:51:56 +02:00
David Monllao e4584b8110 MDL-59116 analytics: Replace wrong sorting 2017-08-08 14:04:52 +02:00
David Monllao 00da1e6010 MDL-59116 analytics: Multiple predictions for each analysable time range
Now we only predict using the most recent range available, this means
that if someone upgrades to moodle 3.4 at three quarters of a course
we will only calculate the latest range, previous ranges were not
displayed anyway once more recent predictions were available.

This commit deletes all previous predictions :) this shouldn't be a
problem in master as we don't provide any guarantee, the alternative
(retrive sampleids from mdl_files) would have been slow and a waste of
time as well as require horrible code in an upgrade step (text fields
do not accept defaults nor we can use NOTNULL).
2017-08-07 06:56:11 +02:00
David Monllao e10b29ed0c MDL-57791 tool_analytics: From tool_models to tool_analytics 2017-07-24 08:37:03 +02:00
David Monllao 1cc2b4bac3 MDL-57791 analytics: Second review round 2017-07-24 08:36:50 +02:00
David Monllao 413f19bc49 MDL-59211 analytics: Make cibot happy
Part of MDL-57791 epic.
2017-07-24 08:36:49 +02:00
David Monllao 1611308b58 MDL-57791 analytics: Changes after review
- Split model::predict in parts
- JS promises updated according to eslint-plugin-promise
- New API methods replacing direct DB queries
- Reduce insights nav link display cost
- Increase time limit as well as memory for big processes
- Move prediction action event to core
- Dataset write locking and others
- Refine last time range end time
- Removed dodgy splitting method id to int
- Replace admin_setting_predictor output_html overwrite for write_setting overwrite
- New APIs for access control
- Discard invalid samples also during prediction
2017-07-24 08:36:49 +02:00
David Monllao a40952d384 MDL-59057 analytics: Introduce static models
Part of MDL-57791 epic.
2017-07-24 08:36:32 +02:00
David Monllao 369389c9a6 MDL-58859 analytics: Analytics API added to core
Part of MDL-57791 epic.
2017-07-24 07:53:03 +02:00