<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def probability_density(self, X):
 """Evaluate the estimated pdf on a point. Args: X: `float` a datapoint. :type X: float Returns: pdf: int or float with the value of estimated pdf """

        self.check_fit()

        if type(X) not in (int, float):
            raise ValueError('x must be int or float')

        return self.model.evaluate(X)[0]