首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >提高电子邮件分类的准确性?

提高电子邮件分类的准确性?
EN

Stack Overflow用户
提问于 2020-06-10 08:23:13
回答 1查看 115关注 0票数 0

我正在建立一个电子邮件分类模型。目前,我正在使用NLTK的停止词和柠檬化在数据的预处理.以下是我正在使用的TF-下手向量器的参数:

代码语言:javascript
复制
from sklearn.feature_extraction.text import TfidfVectorizer
tfidf = TfidfVectorizer(sublinear_tf= True, 
                       min_df = 5, 
                       norm= 'l2', 
                       ngram_range= (1,2), 
                       stop_words ='english')

我正在使用LogisticRegression进行分类。

代码语言:javascript
复制
from sklearn.linear_model import LogisticRegression  # Logistic Regression - (Best Performance Till Now)
X_train, X_test, y_train, y_test = train_test_split(df['Rejoined_Lemmatize'], df['Product'], random_state = 0, test_size = 0.2)
X_train_counts = tfidf.fit_transform(X_train)

clf = LogisticRegression(random_state=0).fit(X_train_counts, y_train)
y_pred = clf.predict(tfidf.transform(X_test)) # Predicting using our Model

print(metrics.classification_report(y_test,y_pred, labels= df.Product, target_names=df['Product'].unique())) # Print Results

我从上面的代码中得到了以下结果:

代码语言:javascript
复制
                                precision    recall  f1-score   support

    Bank account or service       0.45      0.52      0.48        46
Checking or savings account       0.60      0.52      0.56        56
            Money transfers       0.60      0.52      0.56        56
               Student loan       0.60      0.52      0.56        56
              Consumer Loan       0.86      0.86      0.86        64
                Payday loan       0.91      0.96      0.94        55
            Debt collection       0.88      0.71      0.79        62
                   Mortgage       0.88      0.71      0.79        62
           Credit reporting       0.86      0.86      0.86        64
               Prepaid card       0.81      0.80      0.81        65
                Credit card       0.60      0.52      0.56        56

                   accuracy                           0.79    198000
                  macro avg       0.79      0.79      0.78    198000
               weighted avg       0.80      0.79      0.79    198000

我怎样才能提高这种准确性?

注-我正在编写“消费者投诉数据集”。我只使用来自该数据库的3300行,并且平衡了我的数据库,即每个类别的300封电子邮件。

11类* 300封电子邮件= 3300行。

EN

回答 1

Stack Overflow用户

发布于 2020-06-11 22:56:03

如果提供样本数据,可以改进对这个问题的答复。然而,在给定的信息下,以下几点将有助于更好地探索问题。

  • 前4个类的召回值是相同的,直到第二个小数点。人们可以假设底层的测试数据可能有它们所共有的令牌。人们可以进一步假设,这可能是一个多标签多类问题,而不仅仅是多类问题。为了进一步解释,可能涉及到贷款的电子邮件也有关于他们的银行帐户/服务、汇款、信用卡等的文本,因此一封电子邮件可以映射到多个类别。对于这类问题,可以找到一种更简洁但更难分类的方法,即here(https://www.listendata.com/2018/05/sentiment-analysis-using-python.html).
  • The召回和类的精确性:发薪日贷款是最高的。人们可以假设“发薪日”这个词是相对独特的,因此模型能够对这个类进行最好的分类。进一步检查最重要的特征将有助于证实这一假设。可以推断,这个模型在发薪日贷款、class.
  • The召回和债务收集和抵押的精确性方面表现良好,直到第二小数点为止。这是直观的理解,电子邮件,谈到债务收集将有抵押相关的标记,只要债务是与抵押贷款。推论是与业务所有者讨论这一点,将这两个类合并成一个class.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62299010

复制
相关文章

相似问题

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