AutoFolio
AutoFolio copied to clipboard
AFCsvFacade.load_and_predict() returns the first item in the schedule
The facade API is really useful. However, when called to make a prediction it picks the first item in a schedule, i.e. the item with the shortest allocated budget. Is this intentional?
E.g. my problem sets the runtime limit to 3600 and in the AF logging output I get
Selected Schedule [(algorithm, budget)]: [('algo_tree', 1), ('algo_mdd',3601)]
But the output from AFCsvFacade.load_and_predict()
just returns algo_tree
. This is because the method (src) just returns pred[0][0]
.
Is this correct / intended? If only 1 sec of budget is set to algo_tree
, but 3601 to algo_mdd
, but I can only use 1 choice, which should it be? Perhaps I'm misunderstanding.
Hi, I have the same problem as you. Now I am using Autofolio to recommend algorithms for my instances, but after training by giving performance and feature tables to Autofolio, I obtain an unconvincing model that always recommends the same algorithms even for different instances from the training set. Do you have some ideas to solve this problem now?
I think it is posible to turn off the presolver schedule, which is what I have attempted to do when using autofolio in this project. I ended up going one level deeper than the facade API and consulting the autofolio source to unpickle the saved model myself and then call autofolio.AutoFolio.predict() with the option to not use a pre-solver. Then I believe we get back a single choice from AF's classification apparatus.