# What to do when PDFs are not Gaussian/Normal in Naive Bayes Classifier

While analyzing the data for a given problem set, I came across a few distributions which are not Gaussian in nature. They are not even uniform or Gamma distributions(so that I can write a function, plug the parameters and calculate the "Likelihood probability" and solve it using Bayes classification method). I got a set of a few absurd looking PDFs and I am wondering how should I define them mathematically so that I can plug the parameters and calculate the likelihood probability.

The set of PDFs/Distributions that I got are the following and I am including some solutions that I intend to use. Please comment on their validity:

The distribution looks like:

$$y = ax +b$$ from $$0.8

How to programmatically calculate

1. The value of x where the pdf starts
2. The value of x where the pdf ends
3. The value of y where the pdf starts
4. The value of y where the pdf ends


However, I would have liked it better to have a generic distribution for this form of graphs so that I can plug the parameters to calculate the probability.

This PDF looks neither uniform nor Gaussian. What kind of distribution should I consider it roughly?

I can divide this graph into three segments. The first segment is from $$2 with a steep slope, the second segment is from $$3 with a moderate sope and the third segment is from $$6 with a high negative slope.

How to programmatically calculate

 1. the values of x where the graph changes its slope.
2. the values of y where the graph changes its slope.


This looks like two Gaussian densities with different mean superimposed together. But then the question arises, how do we find these two individual Gaussian densities?

The following code may help:

variable1=nasa1['PerihelionArg'][nasa1.PerihelionArg>190]
variable2=nasa1['PerihelionArg'][nasa1.PerihelionArg<190]


Find mean and variance of variable1 and variable2, find the corresponding PDFs. Define the overall PDF with a suitable range of $$x$$.

This can be estimated as a Gamma distribution. We can find the mean and variance, calculate $$\alpha$$ and $$\beta$$ and finally calculate the PDF.

It would be very helpful if someone could give their insights on the above analysis, its validity, and correctness and their suggestions regarding how problems such as these should be dealt with.

• Did i have understood the question right, that the idea is to calculate the collision risks between astronomical objects with the help of a Probability density function? – Manuel Rodriguez Aug 5 at 21:10
• @ManuelRodriguez Hi, I am trying to train the classifier using Bayes theorem. Suppose for a given set of input, I want to determine if that asteroid is hazardous or not. For that, we need to calculate the probability P(Perihelion Time/Asteroid is Hazardous), that is, what is the probability that the asteroid takes the particular "Perihelion time" (mentioned in the test input) given that the asteroid is "hazardous". – Soumee Aug 6 at 6:06
• So, to calculate P(Perihelion Time/Asteroid is Hazardous) we can segregate those values of Perihelion Time for which the asteroid is hazardous, compute its mean and variance and draw the pdf $$\text{Gamma}(\alpha,\lambda)\implies\frac{{\lambda}^{\alpha}}{\Gamma(\alpha)}\cdot x^{\alpha-1}e^{-\lambda x}$$, plug the value of x(=Perihelion Time) and calculate the probability. – Soumee Aug 6 at 6:06
• I want to know that how should we calculate pdfs of graphs which do not belong to the general category of pdfs such as Gaussian or Gamma distributions. – Soumee Aug 6 at 6:06
• You need to perform proper statistical tests to conclude some reasonable distributional assumptions. – naive Aug 7 at 18:21

Non-Gaussian probability distribution is often called “intractable”., because the function to approximate the distribution is unknown. To overcome the issue, the Monte Carlo simulation can be used to estimate the amount of probability in each slot. A monte carlo simulation itself doesn't provide a function, but it allows to create a dataset from the experiment which are stored in a raw data table.

To analyze existing data, more advanced statistical tools like neural networks are needed. The weights are able to adapt to the distribution and this allows to convert the raw data into a mathematical model. Deeplearning has become successful, because it's able to handle “intractable” probability distributions.

The disadvantage of deeplearning and monte-carlo simulation is that the concept is data driven. That means, instead of creating a mathematical function which describes the reality, a dataset which is equal to 100 MB of space on the harddrive is generated.

 Lecture Notes: Non-Gaussian Distributions, http://cecas.clemson.edu/~ahoover/ece854/lecture-notes/lecture-nongauss-dist.pdf

 Wikipedia Statistical Classification, https://en.wikipedia.org/wiki/Statistical_classification

The relationship between the axes of graph (1) and your variables $$x$$ and $$y$$ is not clear, so this generalized answer may be helpful or useless.

From graph (1) it appears that the correlation coefficient $$\mathcal{C}$$ of a quadratic fit of data set $$\mathcal{S}$$ would be much better. Consider $$y_1$$ and $$y_2$$ approximations of $$y$$.

$$\mathcal{C} (y_2, a, b, c, \mathcal{S}) > \mathcal{C} (y_1, a, b, \mathcal{S}) \\ y_2 = ax^2 + bx + c \\ y_1 = ax + b$$

To achieve a more nearly uniform distribution, perform a least squares fit for $$y_2$$ against $$y$$ on $$\mathcal{S}$$ to obtain $$(a, b, c)$$. Then find a mapping function that produces $$y'$$ and use it where the uniform distribution is desired. A reasonable approximation is simply this.

$$y' = \frac{y}{y_2(x)}$$