This thread builds upon some prior work on the `Weight`

class in equadratures. We introduced the ability to incorporate analytical probability distribution functions. Furthermore, even if the functions did not integrate to unity, a function that normalised the PDF was also added.

In the latest github commit (see below), the ability to form data-driven probability distributions has been added to the `Weight`

class. A working example of this is shown below. First, we introduce some sample data.

```
import equadratures as eq
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set(font_scale=1.5)
sns.set_style("white")
sns.set_style("ticks")
param1 = np.random.rand(1000)
param2 = np.random.randn(1200)
param3 = np.random.randn(1300)*0.3 - 0.5
param4 = np.random.randn(300)*0.1 + 3
data = np.hstack([param1, param2, param3, param4])
```

Next, we invoke the new `Weight`

class, which uses `scipy`

's in-built kernel density estimation routine,

`input_dist = eq.Weight(data, support=[-5, 6], pdf=False)`

and pass this distribution instances to the `Parameter`

class:

```
s = eq.Parameter(distribution='data', weight_function=input_dist, order=3)
s_values, pdf = s.get_pdf()
s_values, cdf = s.get_cdf()
s_samples = s.get_samples(6000)
```

Finally we plot!

```
fig = plt.figure(figsize=(10,6))
ax = fig.add_subplot(1,1,1)
plt.fill_between(s_values, pdf*0.0, pdf, color="gold" , label='Density', interpolate=True, hatch="\\\\\\\\", edgecolor="grey", linewidth=0.5,alpha=0.5)
plt.hist(data, 50, density=True, facecolor='dodgerblue', alpha=0.7, label='Data', edgecolor='white')
plt.xlabel('Parameter')
plt.ylabel('PDF')
plt.legend()
sns.despine(offset=10, trim=True)
plt.show()
```

Now, whatβs nice is that we can truncate the data to a tighter support. So for instance, we set

`input_dist = eq.Weight(data, support=[0, 6], pdf=False)`

and then re-run the code block above, we obtain

This addition has been added to the feature branch below. In this next few threads, I will comment on why using this within a regression context can be very useful.