随机森林分类器输出的解释

时间:2017-11-26 16:22:17

标签: machine-learning scikit-learn random-forest text-classification confusion-matrix

我正在使用RandomForestClassifier进行文本分类,我对结果有点困惑。在使用doc2vec对我的文本进行矢量化后,我将它与一些数字特征相结合来预测我的类(0,1和2级)。我的数据分为75%训练和25%测试。 运行我的模型后,我的准确度很差,但是完美的混淆矩阵...... 你可以遮挡灯光吗?

np.random.seed(7)
def train_RFC_grid(X,y):
    n_estimators = [800]
    min_samples_split = [7]
    min_samples_leaf = [1]
    max_depth = [None]
    bootstrap = [True]
    oob_score = [True]
    random_state = [1]
    #max_features = [None]

    parameters = {'n_estimators': n_estimators, 'min_samples_leaf': 
                  min_samples_leaf,'min_samples_split': min_samples_split, 
                  'bootstrap': bootstrap,'max_depth': max_depth, 
                  'oob_score': oob_score,'random_state':random_state}

    clf = GridSearchCV(RFC(verbose=0,n_jobs=-1), cv=10, 
                        param_grid=parameters,scoring = 'accuracy')
    clf.fit(X, y)
    return clf

以下是我的火车模型

RFC_grid_clf = train_RFC_grid(X_Wbody_train,y_train)

训练结束后,我获得0.51的准确度。

print (RFC_grid_clf.best_score_, ": Best Accuracy score on Cross Validation Sets") : 0.5108518518518519 : Best Accuracy score on Cross Validation Sets

在测试中,我获得0.50准确度。

print (RFC_grid_clf.score(X_Wbody_test,y_test)) 0.506555555556 Validation Sets

但我的混淆矩阵看起来像这样:

array([[3033,    0,    0],
      [   0, 2957,    0],
      [   0,    0, 3010]])

和我的分类报告:

          precision    recall  f1-score   support

Class 0       1.00      1.00      1.00      3033
Class 1       1.00      1.00      1.00      2957
Class 2       1.00      1.00      1.00      3010
avg/ttl       1.00      1.00      1.00      9000

我无法理解为什么我的准确性很差但却是一个完美的混淆矩阵...... 你可以遮挡灯光吗?

0 个答案:

没有答案