- 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
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
This was done for indicators, targets and time splitting methods so that we
can get the string identifier and component in order to display a help_icon.
The functions were also made abstract, removing the default implementation.
Indicators, targets and time splitting methods should define this function.
Other related changes:
- core_analytics\site get_start and get_end returning always integer values
- Defer intval call in define_ranges to refine some seconds
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).