Ejemplo n.º 1
0
	def test_pdf_boundary_quadrature(self):
		self.x_test  = np.array([0,1,2,3,4])/5+(1/10)
		
		for bw in [1e-2, 1e-1, 0.99]:
			hp_kernel = hp_kernels.WangRyzinInteger(data=self.x_train, bandwidth=bw, num_values=5, fix_boundary=True)
			hp_values = hp_kernel(self.x_test).mean(axis=0)
			self.assertAlmostEqual(hp_values.sum(), 1, delta=1e-4)
Ejemplo n.º 2
0
	def test_values(self):
		n = self.configspace.get_hyperparameters()[0].upper - self.configspace.get_hyperparameters()[0].lower + 1

		for bw in [1e-3, 1e-2, 1e-1, 0.99]:
			
			sm_x_train= np.rint(self.x_train* n - .5).astype(np.int)
			sm_x_test = np.rint(self.x_test * n - .5).astype(np.int).squeeze()
			sm_values = np.array([sm_kernels.wang_ryzin(bw, sm_x_train[:,None], x) for x in sm_x_test]).squeeze()
			hp_kernel = hp_kernels.WangRyzinInteger(data=self.x_train, bandwidth=bw, num_values=n, fix_boundary=False)
			hp_values = hp_kernel(self.x_test).squeeze()

			self.assertTrue(np.allclose(hp_values.T, sm_values, 1e-4))
Ejemplo n.º 3
0
	def test_sample(self):
		num_samples = 2**20
	
		for bw in [1e-1, 5e-1, 0.99]:
			hp_kernel = hp_kernels.WangRyzinInteger(data=self.x_train, bandwidth=bw, num_values=5, fix_boundary=True)

			samples = hp_kernel.sample(num_samples=num_samples)
			phat1, x = np.histogram(samples, normed=True, bins=[0, 0.2, .4, .6, .8, 1.])
			
			phat1 /= 5 # account for bin width
			phat2 = hp_kernel((x[1:] + x[:-1])/2).mean(axis=0)
			
			for p1, p2 in zip(phat1, phat2):
				self.assertAlmostEqual(p1, p2, delta=5e-2)