| 627 | self.trees[i, c] = tree |
| 628 | |
| 629 | def predict(self, X): |
| 630 | Y_pred = np.zeros((X.shape[0], self.out_dims)) |
| 631 | # 生成预测 |
| 632 | for c in range(self.out_dims): |
| 633 | y_pred = np.array([]) |
| 634 | for i in range(self.n_estimators): |
| 635 | update = np.multiply(self.weights[i, c], self.trees[i, c].predict(X)) |
| 636 | y_pred = update if not y_pred.any() else y_pred + update |
| 637 | Y_pred[:, c] = y_pred |
| 638 | if not self.is_regression: |
| 639 | # 分类问题输出最可能类别 |
| 640 | Y_pred = Y_pred.argmax(axis=1) |
| 641 | return Y_pred |
| 642 | |
| 643 | def score(self, X, y): |
| 644 | y_pred = self.predict(X) |