features, entropy estimation is not straightforward due to the problem of estimation of $p(y|x_{.j})$, where $y$ is discrete and $x_{.j}$ is continuous. Note that we need to estimate the conditional density of $x_{.j}$ at the $m$ classes represented by $y$ and not the joint density. We can use a Parzen window estimation approach to estimate $p(x_{.j})$ [@kwak2002input] given by $$\label{26}
    \Hat{p}(x_{.j}) = \frac{1}{n}\sum_{i=1}^{n} \phi(x_{.j} - x_{ij},h),$$ where $\phi(.)$ is the window function and $h$ is smoothing parameter. Rectangular and Gaussian functions are suitable window functions [@duda2012pattern] and if $h$ is selected appropriately, $\Hat{p}(x_{.j})$ converges to $p(x_{.j})$ [@kwak2002input]. We can calculate $p(x_{.j}|y)$ using the Parzen window approach $$\label{27}
    \Hat{p}(x_{.j}|y) = \frac{1}{n_y}\sum_{i\in I_y} \phi(x_{.j} - x_{ij},h),$$ where $I_y$ is the set of observations with class label $y$. Finally, we the use Bayes rule and - to estimate $p(y|x_{.j})$ as $$\label{28}
    \Hat{p}(y|x_{.j}) = \frac{\Hat{p}(x_{.j}|y)\;\Hat{p}(y)}{\Hat{p}(x_{.j})}\;,$$ and then estimate $H(Y|X_{.j})$ from by replacing the integral by summation over training observations and using $p(x,y) = p(x)\;p(y|x)$ to arrive at $$\label{29}
    \widehat{H}(Y|X_{.j}) = -\sum_{x_{.j}}\Hat{p}(x_{.j}) \sum_{y=1}^{n_y} \Hat{p}(y|x_{.j}) \;log\;\Hat{p}(y|x_{.j}).$$ Using the Parzen window approach, along with and , we can calculate the Mutual Information from between any feature $X_{.j}$ and the class variable $Y$, which measures the relevance of 