为啥这个 TF-IDF 情感分析分类器表现这么好?
Posted
技术标签:
【中文标题】为啥这个 TF-IDF 情感分析分类器表现这么好?【英文标题】:Why is this TF-IDF sentiment analysis classifier performing so well?为什么这个 TF-IDF 情感分析分类器表现这么好? 【发布时间】:2019-05-21 11:13:15 【问题描述】:Jupter Notebook
最后一个混淆矩阵用于测试集。这是逻辑回归过度拟合的情况吗?因为即使没有对文本进行太多预处理(包括表情符号、标点符号),准确性仍然非常好。好的有人提供一些帮助/建议吗?
【问题讨论】:
外部资源的链接可以澄清或背景,但您在 Stack Overflow 上的问题应该是独立的。请至少总结您链接到的资源中的内容。即使我们想打开它,我们中的一些人也无法打开它。 【参考方案1】:您在train_test_split
之前对整个数据执行TfidfVectorizer
,这可能是由于“数据泄漏”而提高性能的原因。由于TfidfVectorizer
正在学习整个数据的词汇,它是:
out-of-bag
words)
还根据来自测试词的数据调整 tf-idf
分数
尝试以下方法:
tweets_train, tweets_test, y_train, y_test = train_test_split(reviews['text'].tolist(),
reviews['airline_sentiment'],
test_size=0.3,
random_state=42)
X_train = v.fit_transform(tweets_train)
X_test = v.transform(tweets_test)
然后检查性能。
注意:这可能不是性能的唯一原因。或者数据集可能适合简单的 tf-idf。
【讨论】:
感谢您澄清这一点。分类精度变化很小。我假设您提到的这些数据很容易分类。【参考方案2】:默认情况下,Tf-idf 矢量化器会进行所有基本的预处理
-
如去除表情符号、标点符号、
将字母字符转换为小写等。
设置后,@vivek Kumar 提到的是一个有效点。在完整数据上拟合矢量化器不是正确的做法。
交叉检查性能指标的一个关键方法是了解模型学习的正确/错误!
查看输入特征的模型系数(如果它是线性模型,否则 SHAP)。
根据您的 github 存储库,当我尝试了解模型 co-eff 时,这就是我得到的。它看起来有点过拟合,因为像luggage
、systems
这样的词也被赋予了负权重。
top_n,bottom_n = 15,15
df = pd.DataFrame('feature_names':v.get_feature_names(),
'co_eff':clf.coef_[0])
df=df.sort_values('co_eff',ascending=False).iloc[np.r_[0:top_n,-bottom_n:0]]
print(df)
输出:
feature_names importn
606 thank 6.918280
607 thanks 6.269803
281 great 4.497794
74 awesome 4.366976
391 love 4.296043
84 best 3.864701
40 amazing 3.710287
213 excellent 2.749308
623 thx 2.695160
358 kudos 2.663612
279 good 2.618669
149 cool 2.582528
53 appreciate 2.399666
528 rock 2.222901
502 quick 2.020487
595 system -1.829668
643 trying -1.839126
80 bags -1.899045
394 luggage -1.957718
78 bag -1.968421
192 dont -2.060734
104 call -2.075544
532 rude -2.255443
308 hold -2.588171
316 hour -2.640191
110 cancelled -2.719347
445 nothing -2.743778
171 delayed -2.869854
704 worst -3.262978
317 hours -3.348654
附: :对于情绪分析,这不是一个表现如此出色的范围。一旦你选择复杂的模型/更好的文本处理——结果会改善很多。
【讨论】:
感谢您的洞察力。如果将行李标记为负面术语,如果航空公司推文数据集固有地用于负面陈述,那么行李是否有任何问题? 这样的文字行李不带任何负面情绪吧!可能很多时候,当人们谈到行李时,他们会提到糟糕的体验。以上是关于为啥这个 TF-IDF 情感分析分类器表现这么好?的主要内容,如果未能解决你的问题,请参考以下文章