I'm trying to create a k-Nearest-Neighbor based model of 76-dimensional input data $I$ and 44-dimensional output data $O$. Through domain knowledge I know that only certain input dimensions are related to certain output dimensions.

Let the mapping be as follows:

I[0:35]  -> O[0:20]
I[35:37] -> O[20:23]
I[37:76] -> O[23:43]

Is there a possibility to combine three separate k-Nearest-Neighbors models (all with their own hyperparameter settings) to achieve the desired setup?

End result should be fast computation of:

I -> [combined model] -> O

sklearn's MultiOutputRegressor only takes single output models, which is not what I'm looking for.

  • $\begingroup$ If that is the case why not split the features? MultiOutputRegressor can handle each of your cases above. You can just concatenate to get the full prediction. $\endgroup$ – Yohanes Alfredo Nov 21 '19 at 10:14
  • $\begingroup$ In a standalone case that's what I would do. However, the model is supposed to be used as a surrogate for a simulation model in a co-simulation framework that only supports a single model being used. While I could combine 44 kNN-models trained on the correct features, that output one value each, this would effectively result in searching for the nearest neighbors 44 times. Since the goal is to provide a somewhat fast model to the co-simulation, this would not lead to the desired results. $\endgroup$ – twes3 Nov 21 '19 at 10:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.