y_pred = np.zeros((y_train.shape[0], 3)) for tree in forest: a = [] for j in range(X_train.shape[1]): if np.median(X_train[:, j]) > np.mean(X_train[:, j]): fuzzy_vals = fuzz.trapmf(X_train[:, j], [np.min(X_train[:, j]), np.mean(X_train[:, j]), np.median(X_train[:, j]), np.max(X_train[:, j])]) else: fuzzy_vals = fuzz.trapmf(X_train[:, j], [np.min(X_train[:, j]), np.median(X_train[:, j]), np.mean(X_train[:, j]), np.max(X_train[:, j])]) a.append(fuzzy_vals) fuzzy_vals = np.array(a).T y_pred += tree.predict_proba(fuzzy_vals) y_pred /= n_trees改成三分类预测
时间: 2023-06-10 22:08:57 浏览: 160
y_pred_2.npy
如果你要将这段代码改成三分类预测,你需要将第1行的 `y_pred = np.zeros((y_train.shape[0], 3))` 中的 `3` 改成你的类别数量,比如说是 `y_pred = np.zeros((y_train.shape[0], 3))`,表示有3个不同的类别。
然后,在第9行的 `y_pred /= n_trees` 之前,你需要将 `tree.predict_proba(fuzzy_vals)` 改成 `tree.predict(fuzzy_vals)`。这是因为 `predict_proba` 函数是用于返回每个类别的概率,而 `predict` 函数则返回每个样本的类别标签。
最后,你需要将第9行的 `y_pred /= n_trees` 改成 `y_pred /= n_trees * num_classes`,其中 `num_classes` 是你的类别数量,用来计算每个类别的平均概率。
阅读全文