树分类器的极高准确性指标

我正在进行一个项目,将总统辩论的推文分类为每个候选人的中性、积极和消极类别。(不是当前的辩论数据集)。我使用决策树决策树集成AdaBoost进行训练。问题是我得到了100%的准确率,这非常奇怪且不可能。

我使用的是词袋模型形式的数据。词汇表中的每个词根据是否出现在每条推文中,用0/1表示。我在问题末尾附上了统计数据。df_obama是一个包含所有关于奥巴马的推文的数据框架。

df_Obama = pd.DataFrame.from_csv("../data/Obama_BagOfWords.csv")df_Obama = df_Obama.reindex(np.random.permutation(df_Obama.index)).reset_index()dataFeatures = df_Obama[allAttribs_Obama]targetVar = list(df_Obama['Class'])splitRatio = 0.9splitPoint = int(splitRatio*len(dataFeatures))dataFeatures_train = dataFeatures[:splitPoint]dataFeatures_test = dataFeatures[splitPoint:]targetVar_train = targetVar[:splitPoint]targetVar_test = targetVar[splitPoint:]clfObj = tree.DecisionTreeClassifier()clfObj.fit(dataFeatures_train,targetVar_train)preds = list(clfObj.predict(dataFeatures_test))accScore = accuracy_score(targetVar_test,preds)labels = [1,-1,0]precision = precision_score(targetVar_test,preds,average=None,labels=labels)recall = recall_score(targetVar_test,preds,average=None,labels=labels)f1Score = f1_score(targetVar_test,preds,average=None,labels=labels)print("Overall Acurracy",accScore)print("precision",precision)print("recall",recall)print("f1Score",f1Score)Overall Acurracy 1.0precision [ 1.  1.  1.]recall [ 1.  1.  1.]f1Score [ 1.  1.  1.]

我实在无法理解为什么会这样?为什么这些指标如此之高? 我还尝试了不同的训练-测试分割比例,结果似乎没有变化。

注意:这是数据信息:

df_Obama.info()<class 'pandas.core.frame.DataFrame'>RangeIndex: 5465 entries, 0 to 5464Columns: 13078 entries, level_0 to zzzzzzzzzzdtypes: int64(13078)memory usage: 545.3 MBdf_Obama.head(3)0023Washington  08hayabusa  09Its   .... 09what 1000000th   0               1           0            1       01               0           0            0       00               0           0            0       0

回答:

分类器是否能看到目标值?df_Obama['Class']是否包含在特征数组中?这一点不清楚,因为你没有展示allAttribs_Obama的值。

另外,请查看scikit-learn关于决策树的文档,特别是:

“决策树在特征数量大的数据上容易过拟合。”

你可能需要尝试减少特征空间(查看scikit-learn的特征选择文档)。

顺便提一下,你可以使用sklearn.model_selection.train_test_split来创建训练和测试集。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注