首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试图通过Twitter预测用户个性的文本分类准确率低

试图通过Twitter预测用户个性的文本分类准确率低
EN

Stack Overflow用户
提问于 2017-03-11 12:27:17
回答 1查看 1.4K关注 0票数 2

我正在做一个用推特预测用户个性的项目。

为了进行培训,我有350000条已经参加过人格测试的用户的大量微博,每条推文都链接到了一个特定的人格类型。有16种不同的人格类型(1-16)

我已经对这条推文进行了预处理,以删除停止词、词干和词性标注。

我有一本包含500个最常用单词的大字典,我将用它作为我训练的特色。在此之后,我使用预定义的500个单词的字典对每个tweet执行tfidf矢量化,为每个tweet创建一个单词向量。

代码语言:javascript
复制
vectorizer=TfidfVectorizer(vocabulary=mydict,min_df=1)
x=vectorizer.fit_transform(corpus).toarray()

语料库是所有推特的列表。然后,我使用以下方法组合这个xy(每个tweet有1-16个类):

代码语言:javascript
复制
result=np.append(x,y,axis=1)
X=pandas.DataFrame(result)
X.to_csv('vectorized500.csv')

我使用这个(350000*500个)数据作为X,我的1-16个编号的人格类型作为我的Y数据(350000*1),它被平等地分为训练和测试,使用如下:

代码语言:javascript
复制
X=pd.read_csv('vectorized500.csv')
train = X.sample(frac=0.8, random_state=200)
test=X.drop(train.index)
y_train=train["501"] #501 is the column name where Y is in the csv file
y_test=test["501"]
xtrain=train.drop("501",axis=1)
xtest=test.drop("501",axis=1)

然而,无论我运行哪种算法,我都会得到非常糟糕的结果:

代码语言:javascript
复制
model=RandomForestClassifier()
model.fit(xtrain,y_train)
pickle.dump(model, open('rf1000.sav', 'wb'))
print(model.score(xtest,y_test))

如果运行RandomForestClassifier,我的准确率为52%。

如果我运行朴素贝叶斯,Logistic回归或线性支持向量机,我得到的准确率低于20%。

有什么有效的方法来运行这种多类文本分类吗?还是我做错了什么?准确度太低了,我想改进一下。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-11 12:58:14

问题可能是您正在使用的不平衡数据集。

代码语言:javascript
复制
0. 56887 INFP 1. 54607 INFJ 2. 52511 INTJ 3. 52028 ENFP 4. 24294 INTP 5. 19032 ENTJ 6. 14284 ENFJ 7. 12502 ISFJ 8. 12268 ISTP 9. 10713 ISTJ 10. 10523 ESFP 11. 8103 ESTP 12. 7436 ESFJ 13. 7016 ESTJ 14. 6725 ISFP

不平衡的数据,指的是类不平等表示的问题。有许多技术可以用来处理这一现象。

  1. 收集更多数据 如果可能的话,尝试为这些类收集更多的数据,但示例不多。
  2. 使用其他性能指标 精度不是当数据集不平衡时可以使用的度量。假设您有两个类(01),其中99个示例属于class 0,一个属于class 1。如果您构建的模型总是将class 0分配给每个测试点,您最终将获得99%的准确性,但这显然不是您想要的。除准确性外,其他一些有用的指标如下:
代码语言:javascript
复制
- Precision/Recall/F-score (Extracted from a Confusion Matrix)
- ROC curves

  1. Undersampling 尝试从您最流行的类中丢弃示例,以便所有类都有大致相同数量的示例。扔掉数据可能不是个好主意,所以尽量避免过抽样。
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42735189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档