Comments (4)
Short but important comments:
(i) sd/sqrt(n_folds) is not a good estimator of anything, unless all the training and test pairs are non-overlapping!
(ii) I would strongly discourage that the resampling strategy itself produce summaries of any kind. This makes sense as the predictions or loss samples may be needed by meta-learning (e.g., ensembling, tuning) strategies, or evaluation (e.g., CI computation, comparative hypothesis tests)
from mlj.jl.
Yes, the individual fold estimates are not really independent and sd/sqrt(n_folds) is not ideal. However, in practice, this is the thing routinely reported by data scientists, no? In view of your objection (ii) I suppose we needn't argue this point. I am happy to drop the se
method.
At present, there is an evaluate
method for every resampler and this returns a single loss estimate. Questions:
- Perhaps we instead make it a vector of estimates (a singleton for
Holdout
), yes? - I only envisaged tuning strategies that make use of a single estimate (or the mean of multiple estimates). Are you suggesting we may want to support tuning strategies that require more than a single estimate? This would complicate the API. If you are suggesting this, could you give some examples?
from mlj.jl.
However, in practice, this is the thing routinely reported by data scientists, no?
Yes, mostly those who use sklearn because sklearn reports it.
But wrong is still wrong...
- Perhaps we instead make it a vector of estimates (a singleton for Holdout), yes?
can you explain what you mean here?
- Are you suggesting we may want to support tuning strategies that require more than a single estimate?
This would complicate the API. If you are suggesting this, could you give some examples?
The point is that
(a) mean is somewhat arbitrary. Why force a needless aggregation into the design which is irreversible.
(b) tuning strategies may often use the mean (i.e., a single aggregate), but reasonable evaluation strategies use the full sample of losses, e.g., to get confidence intervals, or measures that are not mean losses (e.g., auroc)
(c) there are some popular tuning strategies which don't only use the mean prediction loss, e.g., some variants of Bayesian optimization (to get an uncertainty), or boosting based ones (to get weights).
from mlj.jl.
This is now implemented, with all estimates returned as a vector. The current tuning strategies do use the mean, but this can be easliy changed later or new strategies can be addded.
Closing this. Feel free to open an issue for specific tuning strategy enahancement or new strategy.
from mlj.jl.
Related Issues (20)
- Document how to add plot recipes in a new model implementation HOT 4
- Add new model descriptors to fix doc-generation fail HOT 1
- Models that fail integration tests but defy isolation
- Update list of BetaML models HOT 1
- Reinstate CatBoost integraton test HOT 1
- Upate ROADMAP.md HOT 1
- Improve documentation by additional hierarchy HOT 5
- Include support for MixedModels.jl HOT 2
- Deserialisation fails for wrappers like `TunedModel` when atomic model overloads `save/restore` HOT 2
- feature_importances for Pipeline including XGBoost don't work HOT 2
- Current performance evaluation objects, recently added to TunedModel histories, are too big HOT 2
- Update cheat sheet instance of depracated `@from_network` code
- Requesting better exposure to MLJFlux in the model browser HOT 4
- Reexport `CompactPerformanceEvaluation` and `InSample`
- Remove `info(rms)` from the cheatsheet HOT 4
- Re-instate integration tests for scikit-learn models
- [tracking] Add default logger to MLJ
- Enable entry of model wrappers into the MLJ Model Registry
- Link in examples on CV Recursive Feature Elimination into the manual or in the planned tutorial interface. HOT 1
- broken link for UnivariateFinite doc string
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mlj.jl.