Как проголосовать в случайном лесу с помощью Python? - PullRequest
0 голосов
/ 30 сентября 2019

Я пытаюсь реализовать Random Forest с использованием Python, я знаю, что есть библиотека sklearn, но она использует вероятность. То, что я пытаюсь сделать, это использовать голосование, чтобы определить класс. Точность так отличается. Входной класс - 0 и 1.

Вот мой код

from sklearn.preprocessing import LabelEncoder

estimators = []
preditions = []

labelenc_ = LabelEncoder()
labelenc_.fit(Y_train)
classes_ = labelenc_.classes_

for i in range(5):
    t = DecisionTreeClassifier(max_depth=1, criterion='entropy', max_features='log2')
    idx = np.random.choice(X_train.index ,size=len(X_train), replace=True)
    fitted_clf= clone(t).fit(X_train.loc[idx,:],labelenc_.transform( Y_train[idx]))
    estimators.append(fitted_clf)

pool = np.asarray([clf.predict(X_test) for clf in estimators]).T
v = tmp= np.apply_along_axis(lambda x: np.argmax(np.bincount(x))  ,arr=pool,axis=1)
v = labelenc_.inverse_transform(v)

Я использую метод предиката () в sklearn, получаю точность около 0,7, но когда я использую свой код, точность около 0,5с тем же параметром

...