def test_error(self): x0 = np.array([self.x[0]]) x1 = np.array([self.x[1]]) error = LogisticRegression._loss(x0, x1, self.b, self.w, self.lam) # this assumes test_sigmoid pases err_act = -np.log(LogisticRegression._sigmoid(x1, self.b, self.w)) - np.log(1.0 - LogisticRegression._sigmoid(x0, self.b, self.w)) + 0.5 * 7 * 10 self.assertTrue( abs(float(err_act) - error) < 1.0e-12 ) # weighted case x00 = np.array([self.x[0], [55, -2]]) error_weighted = LogisticRegression._loss(x00, x1, self.b, self.w, self.lam, [np.array([0.4, 0.75]), np.array(0.35)]) err_weighted_act = -np.log(LogisticRegression._sigmoid(x1, self.b, self.w)) * 0.35 - np.log(1.0 - LogisticRegression._sigmoid(x0, self.b, self.w)) * 0.4 - np.log(1.0 - LogisticRegression._sigmoid([x00[1, :]], self.b, self.w)) * 0.75 + 0.5 * 7 * 10 self.assertTrue( abs(float(err_weighted_act) - error_weighted) < 1.0e-12 )