我正在使用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
我无法理解为什么我的准确性很差但却是一个完美的混淆矩阵...... 你可以遮挡灯光吗?