美文网首页
NLP基础知识: F1-score, 混淆矩阵和语料库

NLP基础知识: F1-score, 混淆矩阵和语料库

作者: 幸运的曹阿瞒 | 来源:发表于2019-11-03 21:10 被阅读0次

    最近在学习 NLP 的相关项目,总觉得不够深入,决定通过写作的方式把自己学到的内容记录下来,分享给大家。并且通过一些通俗易懂的语言让大家最后能自己能动手实现一些NLP 的聊天机器人之类的应用。

    先了解如何看懂一个模型评估的指标,譬如 F1-score, Confusion matrix.

    机器学习中的 F1-score

    在理解 F1-store 之前,首先定义几个概念:

    TP(True Positive): 预测答案正确
    FP(False Positive): 错将其他类预测为本类
    FN(False Negative): 本类标签预测为其他类标

    F1分数(F1-score)是分类问题的一个衡量指标, 在 0~1 之间,公式如下:

    F_1 = 2 \cdot \frac{precision \cdot recall}{precision + recall}

    通过第一步的统计值计算每个类别下的 precision 和 recall

    精准度/查准率(precision):指被分类器判定正例中的正样本的比重

    precision_k = \frac{TP}{TP + FP}

    召回率/查全率(recall): 指的是被预测为正例的占总的正例的比重

    recall_k = \frac{TP}{TP + FN}

    每个类别下的f1-score,计算方式如下:

    f1_k = \frac{2 \cdot precison_k \cdot recall_k}{precision_k + recall_k}

    通过对第三步求得的各个类别下的F1-score求均值,得到最后的评测结果,计算方式如下:

    score = (\frac{1}{n}\sum f1_k)^2

    Confusion Matrix 混淆矩阵

    混淆矩阵的每一列代表了预测类别,每一列的总数表示预测为该类别的数据的数目;每一行代表了数据的真实归属类别,每一行的数据总数表示该类别的数据实例的数目。每一列中的数值表示真实数据被预测为该类的数目。

    如有150个样本数据,预测为1,2,3类各为50个。分类结束后得到的混淆矩阵为:

    混淆矩阵

    每一行之和表示该类别的真实样本数量,每一列之和表示被预测为该类别的样本数量.

    Corpus 语料库

    巧妇难为无米之炊,语料库就是 NLP 项目中的 "米"。这里使用的是 awesome-chinese-nlp 中列出的中文wikipedia dump和百度百科语料。其中关于wikipedia dump的处理可以参考这篇帖子

    我们需要一个规模比较大的中文语料。最好的方法是用对应自己需求的语料,比如做金融的chatbot就多去爬取些财经新闻,做医疗的chatbot就多获取些医疗相关文章。

    相关文章

      网友评论

          本文标题:NLP基础知识: F1-score, 混淆矩阵和语料库

          本文链接:https://www.haomeiwen.com/subject/iimlbctx.html