Scikit learn sklearn:为什么由一棵树组成的随机林的分数(如此)与直接在该树上计算的分数不同?
我有一个包含20个类和大约90个特征的多类分类问题。我使用的是scikit学习python包(版本0.18.1)中的RandomForestClassifier。我看到的是:Scikit learn sklearn:为什么由一棵树组成的随机林的分数(如此)与直接在该树上计算的分数不同?,scikit-learn,random-forest,Scikit Learn,Random Forest,我有一个包含20个类和大约90个特征的多类分类问题。我使用的是scikit学习python包(版本0.18.1)中的RandomForestClassifier。我看到的是: > 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_trai
> 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的特征_重要性u。估计器0]和它们是相同的,这正是我所期望的。但是分数差别太大了。我刚想出来。结果是决策树rf1。估计器[0]考虑从0到19的类,而rf1分类器考虑从1到20的类,就像原始输入一样。如果我在DecisionTree分类器的输出中添加一个,则输出与预期的相同