n_features = X.shapeif self.max_features == sqrt:m = int(np

复制 import numpy as npfrom sklearn.tree import DecisionTreeClassifierclass SimpleRandomForest:def __init__(self, y_boot = X[idx]。

feat_idx],。

y[idx]# 随机选特征feat_idx = np.random.choice(n_features。

self.feature_indices[i]])predictions.append(pred)# 多数投票return np.array([np.bincount(col).argmax() for col in np.array(predictions).T]) , X, X):predictions = []for i, replace=False)self.feature_indices.append(feat_idx)# 训练树tree = DecisionTreeClassifier()tree.fit(X_boot[:, n_estimators=10, n_features = X.shapeif self.max_features == sqrt:m = int(np.sqrt(n_features))else:m = n_features // 3for _ in range(self.n_estimators):# Bootstrap 采样idx = np.random.choice(n_samples, tree in enumerate(self.trees):pred = tree.predict(X[:, y):n_samples, replace=True)X_boot, m, n_samples, y_boot)self.trees.append(tree)def predict(self, max_features=sqrt):self.n_estimators = n_estimatorsself.max_features = max_featuresself.trees = []self.feature_indices = []def fit(self。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://acg.inmoke.com/zixun/Lolita/28706.html