微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我如何改进我的 nlp 模型以对 4 种不同的精神疾病进行分类?

如何解决我如何改进我的 nlp 模型以对 4 种不同的精神疾病进行分类?

我在 csv 中有一个包含 2 列的数据集:1 是确定患者精神疾病类型的标签,另一个是来自该用户特定时间段的相应 reddit 帖子。 这些是每组疾病的患者总数:

  1. 控制:3000
  2. 抑郁症:2118
  3. 双极:1062
  4. ptsd:330
  5. 精神分裂症:148

首先,我尝试在抑郁症患者和双相情感障碍患者之间进行二元分类。我使用了 tfidf 向量并将其输入 2 种不同类型的分类器:MultinomialNB 和 SVM。 这是代码示例: 使用多项式NB:

text_clf = Pipeline([('vect',CountVectorizer()),('tfidf',TfidfTransformer()),('clf',MultinomialNB()),])
text_clf = text_clf.fit(x_train,y_train)

使用支持向量机

text_clf_svm = Pipeline([('vect',('clf-svm',SGDClassifier(loss='hinge',penalty='l2',alpha=1e-3,random_state=42)),])
text_clf_svm = text_clf_svm.fit(x_train,y_train)

这些是我的结果:

              precision    recall  f1-score   support

 bipolar       0.00      0.00      0.00       304

depression     0.68      1.00      0.81       650

accuracy                           0.68       954


macro avg       0.34      0.50      0.41       954

weighted avg    0.46      0.68      0.55       954

问题在于模型只是简单地预测所有患者属于较大数据样本的类别,在这种情况下,所有患者都被预测为抑郁症患者。我也尝试过使用 BERT,但我得到了相同的准确性。我使用 LIWC 词典阅读了有关它们的论文,这些类别包括表征语言风格和语言心理方面的变量。 我不明白我所做的是否正确,或者是否有更好的方法使用 NLP 进行分类,如果是这样,请赐教。 感谢任何遇到这么大的帖子并事先分享他们的想法的人!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。