Tests to run and document and list for a forecaster #4762
Replies: 1 comment 5 replies
-
Currently, the best public way I know is, run The other way is to either look into
What do you mean by this, can you explain? Missing from where, under what condition?
Can you give a definition for these three terms, "applicable", "available", "missing"? |
Beta Was this translation helpful? Give feedback.
-
Let's consider a forecasting algorithm
ABC
.As an user, I expect
ABC
to support the following types of data:scitype:y
is notmultivariate
)(There may be more types if
y_inner_mtype
orX_inner_mtype
allow. I have skipped those as I have not used myself, and even few of the above may be wrong due to my lack of familiarity.)Now, for all of these types of data inputs,
ABC
should be able to do the following:capability:pred_int
isTrue
)Now, the main interest of user will be on the prediction methods, and
ABC
results for these must satisfy the following:As a user, I think these are the main expectations I have from
ABC
.(There are sub-cases, like whether missing values are allowed or not based on
handles-missing-data
, or whether index of passed data is only indexed by time or indexed by both level(s) and time, or whether passing exogenous is useless based onignores-exogeneous-X
and so on. There are likely other combinations which I have not used myself yet, but skipping those here for the sake of brevity.)Given these user expectations, as a developer I want to know what functionalities are being tested explicitly and where. So, ideally I am looking for a way to get a list of tests that are applicable for
ABC
, which should be based on just the tags ofABC
and nothing else. And I am also looking for a way to get a list of tests that are missing, which should be based on_config.py
only.As of now, running
check_estimator
returns a huge dictionary, with keys being<name of test function>[<name of estimator>-<values of fixtures>-<names and values of parameters>]
.Personally, I am of the opinion that these names are not really human-friendly. One has to know the test function signature to understand what values correspond to what, then they have to be familiar with the fixture generation process (if that's condional on tags, needs even more familiarity with testing flow), etc.
So, what I am hoping for is a quick and easy way to get the list of applicable, available and missing tests given a forecaster, e.g.
ABC
. I understand that this "difficulty" may be just mine because of unfamiliarity, in which case this is not worth doing any changes.But if others feel similarly (not just for forecasters, other estimators as well which I have not used at all myself), may be some chnage in testing structure will help.
I do not have an explicit suggestion on how this can be realised. One way may be to implement all possible tests (superset, and not power set, of all "applicable" tests assuming/hoping tag functionalities are mostly independent) just once. These tests will be parameterised with name and arguments of estimator (or by an instance of estimator) and not by other fixtures.
If this is agreed upon (I am just sharing my spontaneous ideas here, not thought out plans, so it is extremely likely that these are not going to cover all cases), it will be a huge effort that will probably need continuous and serious commitment from at least one developer throughout to ensure code quality and consistency throughout, given the scope of work. This would be very difficult for open source with everyone have other things to do.
Beta Was this translation helpful? Give feedback.
All reactions