My data (continuous) is highly skewed and it doesn't follow the normal distribution. Using sns.distplot
I found out that exponweib fits the data better.
How to deal with this?
My end goal is to use the data for machine learning model (SVM).
Data Science Stack Exchange is a question and answer site for Data science professionals, Machine Learning specialists, and those interested in learning more about the field. It only takes a minute to sign up.
Sign up to join this communityYou’re fine to proceed without worrying about lacking normal data. Go run your SVM.
Even in linear regression, the frequent assumption about normality has to do with the error term. Further, that assumption is not part of prediction. The Gauss-Markov theorem does not assume a normal error term, so the $\hat{\beta}=(X^TX)^{-1}X^Ty$ parameter estimate is the best linear unbiased estimator whether the error term is normal or not.
When we do make an assumption about a normal error term, that is to help us with parameter inference, not prediction.
That’s on the side of the response variable, though. For the predictor variables, we absolutely do not make any assumptions about normality, not even for parameter inference.
So please feel free to run your SVM without worrying about your data lacking a normal distribution.
To address skewed data you can do data transformation like logarithmic transformation, squared transformation etc.
Alternately you could try non-parametric machine learning algorithms that does not have any assumption of normality of x variables.
Hope this will help....
There are several techniques to treat with this data such as:
This seems pretty relevant for your specific scenario.
https://scikit-learn.org/stable/auto_examples/svm/plot_separating_hyperplane_unbalanced.html
Consider pre-processing options as well. 1) rescale your data 2) standardize your data 3) normalize your data
See the link below for some (really simple) ways to do these things.
https://machinelearningmastery.com/prepare-data-machine-learning-python-scikit-learn/
That should do it!!