필자는 20 개의 클래스와 약 90 개의 기능을 가진 다중 클래스 분류 문제가 있습니다. scikit-learn python 패키지 (ver 0.18.1)에서 RandomForestClassifier를 사용하고 있습니다. 내가 보는 것은 다음과 같습니다.sklearn : 왜 그 나무에서 직접 계산 된 점수와 다른 하나의 나무 (즉)로 구성된 임의의 숲에 대한 점수입니까?
> rf1 = RandomForestClassifier(max_features=0.5, n_estimators=1)
> rf1.fit(X_train, y_train)
> print rf1.score(X_test, y_test), rf1.score(X_train, y_train)
0.27868852459 0.740046838407
> print rf1.estimators_[0].score(X_test, y_test), rf1.estimators_[0].score(X_train, y_train)
0.0300546448087 0.0140515222482
> rf1
RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini',
max_depth=None, max_features=0.5, max_leaf_nodes=None,
min_impurity_split=1e-07, min_samples_leaf=1,
min_samples_split=2, min_weight_fraction_leaf=0.0,
n_estimators=1, n_jobs=1, oob_score=False, random_state=None,
verbose=0, warm_start=False)
> rf1.estimators_
[DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=None,
max_features=0.5, max_leaf_nodes=None,
min_impurity_split=1e-07, min_samples_leaf=1,
min_samples_split=2, min_weight_fraction_leaf=0.0,
presort=False, random_state=2134571240, splitter='best')]
이 점수는 어떻게 다릅니 까? RF 분류기에 단일 트리가 있습니다. 모든 포인터는 매우 유용합니다.
나는 rf1과 rf1.estimators_ [0]에 대해 feature_importances_를 그렸고, 그것들은 동일합니다. 이것은 정확히 제가 예상 한 것입니다. 그러나 점수는 매우 다릅니다.