def likelihood(self, samples):
        """likelihood

        Parameters
        ----------
        sample: list
            sample is a (1 * NUM_OF_FUNCTIONS) matrix, representing{w1, w2, ... wk}
        
        Returns
        -------
        float
            likelihood
        """
        ret = np.ones(NUM_OF_INSTANCE)
        for i in range(NUM_OF_INSTANCE):
            for j in range(1, self.point_num + 1):
                ret[i] *= self.normal_distribution(j, samples[i])
        return ret
def likelihood ( self , samples ) : ret = np . ones ( NUM_OF_INSTANCE ) for i in range ( NUM_OF_INSTANCE ) : for j in range ( 1 , self . point_num + 1 ) : ret [ i ] *= self . normal_distribution ( j , samples [ i ] ) return ret
likelihood

        Parameters
        ----------
        sample: list
            sample is a (1 * NUM_OF_FUNCTIONS) matrix, representing{w1, w2, ... wk}
        
        Returns
        -------
        float
            likelihood