(self, X)
| 289 | return predict(X) |
| 290 | |
| 291 | def predict_proba(self, X): |
| 292 | n_classes = (c_int * 1)() |
| 293 | thundersvm.get_n_classes(c_void_p(self.model), n_classes) |
| 294 | self.n_classes = n_classes[0] |
| 295 | if self.probability == 0: |
| 296 | print("Should fit with probability = 1") |
| 297 | return |
| 298 | else: |
| 299 | size = X.shape[0] * self.n_classes |
| 300 | samples = X.shape[0] |
| 301 | self.predict_pro_ptr = (c_float * size)() |
| 302 | X = self._validate_for_predict(X) |
| 303 | if self._sparse: |
| 304 | self._sparse_predict(X) |
| 305 | else: |
| 306 | self._dense_predict(X) |
| 307 | # size = X.shape[0] * self.n_classes |
| 308 | # self.predict_pro_ptr = (c_float * size)() |
| 309 | # X = np.asarray(X, dtype=np.float64, order='C') |
| 310 | # |
| 311 | # self.predict_label_ptr = (c_float * X.shape[0])() |
| 312 | # samples = X.shape[0] |
| 313 | # features = X.shape[1] |
| 314 | # X_1d = X.ravel() |
| 315 | # |
| 316 | # data = (c_float * X_1d.size)() |
| 317 | # data[:] = X_1d |
| 318 | # thundersvm.dense_predict( |
| 319 | # samples, features, data, |
| 320 | # c_void_p(self.model), |
| 321 | # self.predict_label_ptr) |
| 322 | thundersvm.get_pro(c_void_p(self.model), self.predict_pro_ptr) |
| 323 | self.predict_prob = np.frombuffer(self.predict_pro_ptr, dtype=np.float32)\ |
| 324 | .reshape((samples, self.n_classes)) |
| 325 | return self.predict_prob |
| 326 | |
| 327 | def _dense_predict(self, X): |
| 328 |
nothing calls this directly
no test coverage detected