Skip to content
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

new openml scenario #18

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open

new openml scenario #18

wants to merge 7 commits into from

Conversation

larskotthoff
Copy link
Contributor

No description provided.

@mlindauer
Copy link
Contributor

Could we please use the configuration field in description.txt?
The OPENML scenario was indeed the initial motivation to introduce this field since the algorithm names are simply too long.

@mlindauer
Copy link
Contributor

X18_mfeat.morphological is missing in feature_values and feature_runstatus

@larskotthoff
Copy link
Contributor Author

There are different runs of the same algorithm with different parameter settings. How do we want to handle that?

@larskotthoff
Copy link
Contributor Author

I've made a different algorithm for each parameterisation now. Not sure if this is what you had in mind when proposing the format change though?

@mlindauer
Copy link
Contributor

Yes, I did it in a similar way in the not_verified branch version of the OPENML scenario as you have done it:

  functions.LibLINEAR_c1:
    configuration: -S 1 -C 1.0 -E 0.001 -B 1.0
    deterministic: true
  functions.LibLINEAR_c2:
    configuration: -S 1 -C 1.0 -E 0.01 -B 1.0
    deterministic: true

I have not given each algorithm an id, but only each configuration.
Furthermore, I cut a bit more of the prefix which is the same for each algorithm (weka.classifiers).

@larskotthoff
Copy link
Contributor Author

Hmm, that seems a bit weird. So this metainfo thing is only to get shorter names? It seems like it should enable to group algorithms with different configurations.

@mlindauer
Copy link
Contributor

Hmm, that seems a bit weird.

why?

So this metainfo thing is only to get shorter names?

This was my initial motivation.
However, we wanted to have such a feature in the format spec anyway such that we know how to call algorithms with (hyper-)parameters.

It seems like it should enable to group algorithms with different configurations.

I don't really understand what you want to say.
The id of an algorithm has still be to be unique.

@larskotthoff
Copy link
Contributor Author

It seems weird to allow only one configuration per algorithm. If I see a "configuration" field I would expect to be allowed to have more than one. I guess "call" would be less ambiguous. But if it's ok with everybody else let's leave it this way.

@larskotthoff
Copy link
Contributor Author

Apart from that I think that this is ready to be merged.

@mlindauer
Copy link
Contributor

@larskotthoff Could I convince you to drop the weka.classifiers. prefix in the algorithm names and simply mention in the readme.txt that these all are weka classifiers?
In the last update of the format spec, I wrote "The name of an algorithm should have at most 15 characters" and nobody had objections. Right now, the OPENML algorithm names are far longer and not even close to 15 characters.

In general, I miss a readme.txt in the scenario.

Furthermore, the status of all algorithm runs is ok, but some have an acc of 0.0 sometimes.
For example:
X1044_eye_movements,1,1075_rules.NNge_7,0,ok
So, I would guess the status was something else, maybe a timeout or memout? Please note that no memout or timeout limit is right now in the description.txt.

@mlindauer
Copy link
Contributor

It would be also great if the readme could explain why we have missing feature values.

@mlindauer
Copy link
Contributor

Please note that I fixed two further issues in the description.txt.

@mlindauer
Copy link
Contributor

@joaquinvanschoren
Is it correct that two datasets have exactly the same meta-feature vector?

@joaquinvanschoren
Copy link

joaquinvanschoren commented Jan 12, 2017 via email

@mlindauer
Copy link
Contributor

Yes, all datasets share the same meta-features.

I meant that X24_mushroom and X809_mushroom have exactly the same vector.
So, we cannot discriminate these two.

Another question: The features seem to have native feature groups,
e.g., CfsSubsetEval, DecisionStump, Hoeffding, J48, NaiveBayes, REPTree, RandomTree, kNN1.
I think it would improve the quality of the scenario, if we would model these feature groups properly.

@joaquinvanschoren
Copy link

joaquinvanschoren commented Jan 12, 2017 via email

@mlindauer
Copy link
Contributor

Are there more?

Not as far as I know.

@larskotthoff
Copy link
Contributor Author

I've shortened the names and added a readme.

I don't see your point about the 0 accuracy values -- this is a valid number for accuracy and doesn't necessarily indicate an error.

Regarding feature groups: As we don't have feature costs (and don't care about feature costs) I don't think that grouping them differently will make any difference.

@mlindauer
Copy link
Contributor

I've shortened the names and added a readme.

Thanks!

I don't see your point about the 0 accuracy values -- this is a valid number for accuracy and doesn't necessarily indicate an error.

I would say to be worse than random is already problematic, but to be always wrong is weird.

Regarding feature groups: As we don't have feature costs (and don't care about feature costs) I don't think that grouping them differently will make any difference.

Not for your tools, but for mine. ;-)
So, if you don't have objections, I would change it tomorrow.

@larskotthoff
Copy link
Contributor Author

Ok, feel free to change the feature groups.

@joaquinvanschoren
Copy link

joaquinvanschoren commented Jan 12, 2017 via email

@mlindauer
Copy link
Contributor

Accuracy 0 is indeed weird. Does it happen often?

1187 times

@mlindauer
Copy link
Contributor

I reduced the number of feature groups.
However, the scenario does not pass my ASlib checker tool anymore.
The problem is that we have feature groups with status "ok" but with partially missing features now.
Given Joaquin's explanation, I would tend to fix it by replacing the missing features with 0.
Do you agree?

@mlindauer
Copy link
Contributor

Accuracy 0 is indeed weird. Does it happen often?
1187 times

Using a grep on the original Runs_OpenML.csv,
I found only 22 times an acc of 0.
Maybe the conversion between the csv and the arff files is somehow broken?
For example,

ASLib: X474_analcatdata_marketing,1,1244_.meta.FilteredClassifier_94,0,ok

Runs_OpenML.csv: 3849,986_analcatdata_marketing,1244_weka.classifiers.meta.FilteredClassifier -- -F \weka.filters.supervised.attribute.Discretize -R first-last -precision 6\ -W weka.classifiers.trees.J48 -- -C 0.25 -M 2,NULL,0.67033,0.507002

@mlindauer
Copy link
Contributor

ah, this was a different dataset?
X474_analcatdata_marketing vs 986_analcatdata_marketing
If yes, Runs_OpenML.csv has simply no entry for meta.FilteredClassifier on X474_analcatdata_marketing

@mlindauer
Copy link
Contributor

maybe I missed a concrete question:
@joaquinvanschoren Was it intended that Runs_OpenML.csv had not entries for all combinations of ML algorithms and data sets?
If yes, why? And should we label the missing entries as timeouts/memouts/crashed runs?
If no, where are the missing entries? Or have I done something wrong?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants