• 机器学习笔记3:朴素贝叶斯


    原理

    举例

    假设:有360封电子邮件,其中:
    正常邮件=240封,垃圾邮件=120封;

    分词在邮件中出现次数如下:

    件内容), 则可以认为是垃圾邮件
    如果P(垃圾|邮件内容) <= P(正常|邮件内容), 则可以认为是正常邮件

    从上述统计结果中我们可以得出相应的概率值:
    P(正常)=2/3
    P(垃圾)=1/3

    P("购买"|正常)=3/240=1/80
    P("购买"|垃圾)=7/120

    P("物品"|正常)=1/60
    P("物品"|垃圾)=1/30

    P("不是"|正常)=1/60
    P("不是"|垃圾)=1/40

    P("广告"|正常)=1/48
    P("广告"|垃圾)=1/30

    现有一封邮件内容为:
    "购买物品,不是广告"
    那么它是垃圾邮件么?
    我们假设上述我们选择的分词之间是相互独立的,没有因果联系(朴素贝叶斯,如果不独立就不是朴素贝叶斯了)
    那么有推论:

    其实我们最终要比较的是:
    P(正常|邮件内容)和P(垃圾|邮件内容)之间的大小。
    经过化简也就是判断:
    P("购买"|正常)P("物品"|正常)P("不是"|正常)P("广告"|正常)P(正常)和
    P("购买"|垃圾)P("物品"|垃圾)P("不是"|垃圾)P("广告"|垃圾)P(垃圾)之间的大小。
    计算结果:
    约掉分母,显然:
    3445 < 14868
    因此,此邮件是一封垃圾邮件。

    总结

    由此推论步骤中,我们可以看出
    模型中,各个分词(X)和标签y的概率是先给出的(先验的,训练数据)
    我们预测所需要输入的是字典中的分词在需要验证的邮件中出现的结果。

    实践

    1. 对数据预处理

    确定那些词是不需要统计的,比如非中文符号、表情、字符、数字、字母和一些不想统计的词"的"、"呢"、"了"之类的词。
    将无法分类的词用特定的词替换掉;
    获取不想统计的词库"stopwords";
    处理文本,将不想统计的词库中的词删掉;

    2. TF-IDF处理(获取数据特征,数据label)

    TF-IDF(term-frequency,inverse doucument frequency )是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降
    将预处理过的文本交给TF-IDF进行特征提取

    tfidf = TfidfVectorizer()
    X_train =  tfidf.fit_transform(train_comments_new) # 训练数据的特征
    y_train =  train_labels # 训练数据的label
    X_test = tfidf.transform(test_comments_new) # 测试数据的特征
    y_test = test_labels# 测试数据的label
    

    3. 用朴素贝叶斯进行训练和预测

    clf = MultinomialNB()
    clf.fit(X_train, y_train)
    y_pred = clf.predict(X_test)
    print("accuracy on test data: ", accuracy_score(y_test, y_pred))
    

    贝叶斯的完整推导

    参见贪心学院:https://zhuanlan.zhihu.com/p/71960086

  • 相关阅读:
    磊哥评测之数据库:腾讯云MongoDB vs自建
    一文看透浏览器架构
    必看!如何让你的LBS服务性能提升十倍!
    亿级曝光品牌视频的幕后设定
    Node 框架接入 ELK 实践总结
    大数据与 AI 生态中的开源技术总结
    数据库分片(Database Sharding)详解
    QQ音乐的动效歌词是如何实践的?
    Sql Server之旅——第九站 看公司这些DBA们设计的这些复合索引
    Sql Server之旅——第八站 复合索引和include索引到底有多大区别?
  • 原文地址:https://www.cnblogs.com/bugutian/p/11153489.html
Copyright © 2020-2023  润新知