Binary logistic regression with gradient descent optimizer.
| 120 | |
| 121 | |
| 122 | class LogisticRegression(BasicRegression): |
| 123 | """Binary logistic regression with gradient descent optimizer.""" |
| 124 | |
| 125 | def init_cost(self): |
| 126 | self.cost_func = binary_crossentropy |
| 127 | |
| 128 | def _loss(self, w): |
| 129 | loss = self.cost_func(self.y, self.sigmoid(np.dot(self.X, w))) |
| 130 | return self._add_penalty(loss, w) |
| 131 | |
| 132 | @staticmethod |
| 133 | def sigmoid(x): |
| 134 | return 0.5 * (np.tanh(0.5 * x) + 1) |
| 135 | |
| 136 | def _predict(self, X=None): |
| 137 | X = self._add_intercept(X) |
| 138 | return self.sigmoid(X.dot(self.theta)) |
no outgoing calls