I am trying to predict sales quantity based on attributes of the item.Sales are aggregated by week wise and prediction is also done by week wise.I am having large number records with zero sales quantity than compared to positive sales(for 20 positive sales 250 zero sales records are there).I want to increase my training data by adding small values to sales quantity and combining with total records. At present I am using RANDOM FOREST and NEURAL NETWORK .I am not getting any good results Please correct me if anything is not considerable
2 Answers
I have tried SMOTE for categorical response variable scenario but never tried on Continuous response variable but I think that should not matter. You can run oversampling or undersampling based on the predictor variables. If you are using R, you can use DMwR library and use the SMOTE function. In Python you got to use imblearn.over_sampling.SMOTE
-
$\begingroup$ Thank You @Dipayan Sarkar Can I consider the data like records with zero sales and positive sales (as two classes and perform SMOTE) ? $\endgroup$ Commented Aug 7, 2017 at 12:20
-
$\begingroup$ I see this URL (SMOTE for regression) might be helpful... researchcommons.waikato.ac.nz/handle/10289/8518 $\endgroup$ Commented Aug 7, 2017 at 14:01
-
$\begingroup$ for additional information about imbalanced data, have a look at the following ipython notebook: github.com/vsmolyakov/experiments_with_python/blob/master/chp01/… $\endgroup$ Commented Aug 15, 2017 at 20:09
Avoid neural networks for weekly sales data. There simply is not enough data points to make it work.
The technique works great with image or video data (it can recognize numbers, or cat videos) but you need something in the neighborhood of 200,000 data points to train your network.
Imagine the cost and complexity of getting 200,000 weekly data points (that is something between 3,000 and 4,000 years of collecting).
-
$\begingroup$ Thank you @Jindra Lacko Can you specify which model best suits for my data $\endgroup$ Commented Aug 8, 2017 at 10:53
-
$\begingroup$ Suggest a model without seeing your data? :)))
lm()
is usually a good start, and a baseline to improve from. $\endgroup$ Commented Aug 9, 2017 at 15:46