-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Validate coarse-grained samples #88
Comments
@elray1 , @nickreich and @LucieContamin would appreciate your thoughts! |
Please find here my answers to your questions:
|
I would like to start work on this and have come up with a mechanism to implement it. Specifically, I can see problems with:
My worry with this is that if a team submits two files for the same We could specify that such hubs should require a character output type id but I'm not sure how we would enforce that to avoid the above situation. |
I agree with Lucie's answers to 1 through 3. Clarifying the discussion about 1, I think Lucie was talking about submissions from 2 different teams, or submissions from 1 team in 2 rounds, rather than 2 submissions from a single team for the same round. For 4, I think it's fair to treat |
Thanks @elray1! OK great. So just to confirm, you feel samples with different |
One more thought about the third question, "Does this affect the way we infer sample dependence (e.g. hubverse-org/hubData#6)? i.e. will different samples be allowed to have different dependence structure?" I think that for a single submission and target, we should expect all samples to have the same dependence structure. The only exception to this I can think of would be an ensemble that combines samples from models that had different approaches to dependence. But even in a case like that, I think it would be reasonable to say the ensemble should update the sample indices to get a consistent representation of dependence. |
That is what I was trying to say, thanks for clarifiying. For 4, Now I think I understand, I agree with Evan's answer. |
Yeah, I think that's right. Those samples will have to come either from different models, or different rounds, or different task groups within a round. Any time we're working with samples, we'll have to be aware that the sample indices are only distinct within combinations of model_id, round (, and task group/target?? actually maybe we are guaranteeing that within a submisison file, the sample indices are different across different task groups?). But as long as we keep track of that, we should be able to distinguish between samples that are submitted with the same sample index. Does that seem right? |
Trying to push through with the implementation of this, I'm having difficulty thinking through the logic in certain situations. I'm trying to determine the The only way I see to determine this from the data itself is to look at the unique values in each task id in each sample and wherever it's 1, consider that task id as one of the compound task ids. Ηowever, I'm coming up against issues with approach. Say for example we have the following submission:
to a hub configured with the this tasks.json, specifically this section, which specifies a Using the afforementioned rule, all task IDs (i.e. However, in this example, there is only a single target and all horizons are optional. Hence both Any ideas how to get round this? Am I missing something really basic here? |
I think your proposed rule is essentially right (if you're doing this check within groups defined by the
For item 1, I think I have a mild preference for option ii since it's more forgiving to hub admins setting up their files and there will not be any downstream functionality where the inclusion or not of the variable in question in the |
Thanks for the feedback and suggestions @elray1 . After some though and processing, on top of counting the unique values of each task ID within a sample , I've implemented the following additional check:
This means I've effectively implemented 1.ii, i.e. admins are not forced to add single value task_ids to the The specifics of the implementation can be found here: hubValidations/R/compound_taskid-utils.R Lines 76 to 111 in ed988e6
|
Thanks Anna, I think what you described makes sense. This raised one question for me more generally: what are we doing about checking or enforcing consistency of compound task id sets across different task groups within the same round? Here's an example config to make the question concrete. In the first task group there are multiple levels for
|
Good question! and yes, this is allowed. How it's handled is each round is evaluatated separately. The higher level function (and really all checks evaluating samples) split the table between data being submitted to different modeling tasks and determine modeling task level hubValidations/R/compound_taskid-utils.R Lines 21 to 42 in ed988e6
and then perform each check at the modeling task level: hubValidations/R/compound_taskid-utils.R Lines 45 to 50 in ed988e6
|
I've hit a problem in completing this work which i've detailed here: https://github.com/orgs/hubverse-org/discussions/26 Even if we solved the issues described above, I generally worry that auto-detecting As such, I was wondering if this is something submitting teams should actually record and communicate, perhaps in their model metadata file? Of course this assumes a single model would have a single compound task ID structure. Anyways, thoughts on the above welcome. |
Adding that whether we can implement the above suggestion largely depends on how stable within a model sample structures are or whether any variation can be captured in the model metadata effectively to be able to be used by validation functions. If this was possible, I would consider this declarative approach much more robust. |
Currently, samples must strictly match the compound task ID set expectations and cannot handle coarser-grained compound task ID sets. However, in our documentation we state that this should be allowed.
This will need more work to implement but it would be good to understand the purpose of this and details of implamentation.
Questions:
target
is a compound task id, would it ever make sense to have a sample associated with more than one target? Would that be a multivariate output of a model that e.g. predicts hospitalisation + deaths together?The text was updated successfully, but these errors were encountered: