Converting negative outputs into zeros?
Hi there, I am currently training a model for sales predictions based on a data set of existing products with a range of attributes and sales data. The best model so far seems to be linear regression. However, for some products I am getting negative sales predictions. Is there a way to covert those into zeros? And can I also insert this operator into the cross-validation process to recalculate performance?
Many thanks,
Jörg
Best Answers
-
The fastest way to do this is to generate a new attribute based on existing prediction attribute and use an expression like this (assume the column name is 'prediction'):
if(prediction<0,0,prediction)
This will keep old predictions and also add a new column where all negative values are replaced by zeros.
2 -
Then you can simply use the new version of "prediction" and feed it into a new "Performance" operator and recalculate your performance (you don't need to do this inside cross-validation but you can). Note that it is actually possible that your aggregate performance would decrease depending on the performance metric you are using. But you may still prefer the modified version of your prediction for other reasons.
2
Answers
-
The fastest way to do this is to generate a new attribute based on existing prediction attribute and use an expression like this (assume the column name is 'prediction'):
if(prediction<0,0,prediction)
This will keep old predictions and also add a new column where all negative values are replaced by zeros.
2 -
Then you can simply use the new version of "prediction" and feed it into a new "Performance" operator and recalculate your performance (you don't need to do this inside cross-validation but you can). Note that it is actually possible that your aggregate performance would decrease depending on the performance metric you are using. But you may still prefer the modified version of your prediction for other reasons.
2 -
Thanks very much for the prompt reply. That should work, I'll try it out today.
1