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

fix and finish expression handling #1569

Closed
berndbischl opened this issue Mar 3, 2017 · 7 comments
Closed

fix and finish expression handling #1569

berndbischl opened this issue Mar 3, 2017 · 7 comments

Comments

@berndbischl
Copy link
Member

expr handling was merged, but is wrong.

PR was here:
#1126

revert was done here:
981bc9b

the dif shows the code that would need to be reimplemented, and then fixed of course.

analysis:

  1. this example shows it does not work
load_all()
task = makeClassifTask(data = iris, target = "Species")
dict = getTaskDictionary(task = task)
lrn1 = makeLearner("classif.rpart", minsplit = expression(n))
print(getHyperPars(lrn1))
m = train(lrn1, task)
print(m$learner.model$control$minsplit)
m = train(lrn1, task, subset = 1:100)
print(m$learner.model$control$minsplit # is 150! wrong
  1. that such a basic thing as in 1) was not unit tested in the orig PR seems to be a problem in itself.

  2. this is due to the .subset arg in trainLearner. i remember it had a reason that we do the subsetting there, but this seems quite error prone, we also had problems in other places. maybe we remove this? this must be discussed in another issue and should not be tight-coupled (hopefully?) with resolving our problem here.

@jakob-r
Copy link
Member

jakob-r commented Mar 3, 2017

1 + 2. See my answer in the PR. This behavior was never specified nor is it "falsely advertised". Even though it makes sense I don't see any "faulty behavior" just a requested feature that was missing. We can now discuss if n should be the Task size or the size of the training set. I would propose to have the following dictionary entries: n, train.n and predict.n.

@berndbischl
Copy link
Member Author

Can we agree it is counter intuitive and not what we want? Can you give an example where what I posted in my example is intended behavior?

And I am pretty sure how you now specify learner defaults is really wrong

@berndbischl
Copy link
Member Author

Just assume this. A learner has arg x. The package docs say: x is by default n/2. What do you write in the mlr learner default expression?

@berndbischl
Copy link
Member Author

And i don't see the use of all of these symbols you suggest? I mean n should refer exactly to what the learner sees? For the learner there is no task?

@berndbischl
Copy link
Member Author

Just assume this. A learner has arg x. The package docs say: x is by default n/2. What do you write in the mlr learner default expression?

@jakob-r
Copy link
Member

jakob-r commented Mar 6, 2017

New PR here: #1576

@stale
Copy link

stale bot commented Dec 19, 2019

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale label Dec 19, 2019
@stale stale bot closed this as completed Dec 26, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants