How to perform Multi Target Regression (MTR) on Data iku?
Hello, I am new to this platform, I have a use-case where I want to predict multiple targets from the given set of features.
My use case has some features (X1...Xn) and 2 targets. (Y1, Y2).
Suppose: Age, BMI, Gender, Height, and Weight are in my dataset. From which I want to predict Height and Weight (as targets) from the features Age, BMI and Gender.
I want to run a regression model that should predict all 2 targets by simply providing the features. So, I am looking for a way to do that on this platform. Will anyone please help?
NOTE: There can be some relation between targets as well, thus creating separate models for every 2 targets might not result in the best model. Your guidance will help the most.
Clearly, this is the Multiple Target Regression problem (MTR). If possible will you please guide me through the process?
Thank you,
Aayush Shah
Operating system used: Windows
Answers
-
Miguel Angel Dataiker, Dataiku DSS Core Designer, Dataiku DSS ML Practitioner, Dataiku DSS Adv Designer, Registered Posts: 118 Dataiker
Hi,
It is not possible to build a multi output model natively using a visual analysis. You will have to code a custom model in order to do that.
There is some information in the help about how to create custom models: https://doc.dataiku.com/dss/latest/machine-learning/algorithms/in-memory-python.html#custom-models
There is also a course in the academy on the steps to create them:https://academy.dataiku.com/custom-ml-models
After digging around a bit, this may be the way to get it done : https://scikit-learn.org/stable/modules/generated/sklearn.multioutput.MultiOutputRegressor.html
-
Hei,
Thanks for the guidance. I have tried these sklearn's methods of RegressionChain and MultiOutputRegressor. But still, they don't satisfy my requirement. The RegressionChain performs some inter-target relation at some extent but still not fully — thus, that didn't help me.I was looking for native support for it on this platform. As you mentioned it is not possible as of now. I think I got my answer.
Best,
Aayush Shah
-
N Dataiku DSS Core Designer, Dataiku DSS ML Practitioner, Dataiku DSS Adv Designer, Registered Posts: 3 ✭✭✭
I tried a custom model with a Target that is a vector represented as a list element in pandas dataframe. This failed at a step where a Target is chosen for the Custom Model with the error
"An invalid argument has been encountered : Target column contains non-numerical values, incompatible with regression models".
How should I specify my Target? What datatype should I use for vector as a target?
Thanks