-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Custom pipelines #379
Comments
Hi, This is an excellent question to which there is no satisfactory answer. As you correctly realized, the pipelines merely do more than defining a search space and what a scikit-learn pipeline does. Ideally, a user would be able to pass in a custom pipeline, which is subclassed from a pipeline base class. The best way to achieve this would probably be to refactor Auto-sklearn to accept a pipeline class similarly to how it accepts a metric class. Monkey patching only I can help you through this process if you want add this feature to Auto-sklearn. Cheers, |
Hi Matthias, Okay, thanks for letting me know. By monkey patching, I mean doing something like this:
where As you described, directly passing pipelines would be much more robust. I do have some interest in doing this, and I will contact you offline on Monday to discuss some more details about what we are doing and some options (e.g., maybe there is an appropriate BMBF call or something). I don't quite have the monkey patching approach working, yet, though I believe there are just some coding issues to work through. I will post back here how that goes. Have a good day, |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs for the next 7 days. Thank you for your contributions. |
Hi,
This is again more of a question than an issue. What is the best way to incorporate new pipelines into autosklearn?
For example, looking at
SimpleClassificationPipeline
, it seems the main things are to implement_get_hyperparameter_search_space
and_get_pipeline
(and the other simple methods). Using this andSimpleRegressionPipeline
as examples, that part is fairly straightforward.However, from there, I have difficultly figuring out what to do. In particular,
AbstractEvaluator
seems hard-coded to use the appropriateSimpleXXXPipeline
depending on the task type (Lines ~115-130 ofevaluation/abstract_evaluator.py
).Monkey patching the methods on the
SimplePipeline
s seems to work, but that feels extremely brittle. Another option would be to use smac directly, but that sounds like it would necessitate recreating much of the infrastructure already present in autosklearn.Please let me know if there is a good way to go about this. I can also provide a simple use case if that would be helpful. Thanks.
Have a good day,
Brandon
The text was updated successfully, but these errors were encountered: