0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何利用两种机器学习的方法——逻辑回归和朴素贝叶斯分类器

电子工程师 来源:未知 作者:李倩 2018-10-04 09:34 次阅读

识别虚假新闻可以说是 Facebook 等社交网络目前最重视的问题。本文,我们就将介绍如何利用两种机器学习的方法——逻辑回归和朴素贝叶斯分类器,来识别存在故意误导的新闻文章。

自然语言处理( NLP )属于计算机科学领域,它致力于处理和分析任何形式的自然人类语言(书面,口头或其他)。 简而言之,计算机只能理解 0 和 1 ,而人类则使用各种语言进行沟通,NLP 的目的便是在这两个“世界”间搭建沟通的桥梁,这样数据科学家和机器学习工程师能分析大量的人类沟通数据。

那 NLP 如何识别虚假新闻呢?实际上,NLP 会把文章分解成一个个小成分并筛选出其中的重要特征,而后我们搭建并训练模型去识别这其中不靠谱的内容来鉴别虚假新闻。

这次尝试不仅练习了自然语言处理的技能,也学习了一些有效构建强大分类模型的技术。

▌数据清洗

首先从 Kaggle 库中选取一个包含两万篇标记文章的数据集用于测试效果,结果显示,模型在预测标签时的准确度为93%。

在大部分以数据为主体的项目中,第一道工序便是数据清洗。在鉴别虚假新闻时,我们需要处理成千上万篇来自不同领域、有着不同清晰度的文章。 为了有效筛选需要的内容,我们使用正则表达式来提取分析中所需要的字符串类型。例如,这是一行使用 re python 模块的代码:

参阅链接:

https://docs.python.org/3/howto/regex.html#

这行代码会使用空格来替换所有不是字母或数字的字符。 第一个参数,“[^A-Za-z0-9']” ,表示除非符合括号内的指定集,其他内容将全部替换成第二个参数,也就是空格。 一旦我们删除了那些不需要的字符,我们就可以开始进行标记化和矢量化了!

Scikit-learn 是一个令人惊叹的 python 机器学习包,它能承担很多繁重的工作。 特别是 Count Vectorizer 这个函数,它能创建所有被分析文本的完整词汇表,并将每个单独的文档转换为表示每个单词总数的向量。 因为大多数文章并不会包含词汇表里的大部分单词,函数将返回一个稀疏矩阵形式的向量。 矢量化器则允许我们对各种预处理函数和首选的标记器进行集成。

参阅链接:

http://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.te

xt.CountVectorizer.html

一个被矢量化的文章的示例,每行包含我们初始的1000个特征词的出现次数

在分析新闻的情况下,仅考虑单个单词的方法过于简单,因此我们会允许对双字符或两个单词短语进行向量化。 我们将特征的数量限制为1000,这样我们在通过特征判断真假时就只需考虑文档内最重要的那些特征。

▌特征工程

特征工程是不一个简单的技能,它更像是复杂的艺术形式。 它包含了考虑数据集和域的过程,选择对于模型最有用的特征,以及测试特征以优化选择。 Scikit-learn 的矢量化器提取了我们的1000个基础的 n 元语法( n-gram ) 特征,同时我们开始添加元特征来改进我们的分类。我们决定计算每个文档中的平均单词长度和出现数字的次数,以此提高我们模型的准确性。

左:各类特征 右:情感得分

情感分析是 NLP 中的另一种分析工具,它可以量化文章中的情绪并评分。我们在这里使用了两个包,TextBlob 和 Natural Language Toolkit 的 Vader 。它们都是分析文中情绪的工具。 Vader 会针对文章的偏激性和中立性进行测量和评分,而 TextBlob 则会测量文章的偏激性和整体主观性。我们原本猜想这些情绪分布会根据文章的真实性和误导性有大幅变化,但在实际情况中我们发现这种差异并不明显。

通过 Vader 得出的中性文章情绪的分布,0代表的是完全中立

TextBlob 情感得分

(左:-1 代表极性为负,1 代表极性为正;右:0 代表非常客观,1 代表非常主观)

从上图可以看出,通过情感评分的方法不能体现出明显的差异。 然而,我们认为感情分数和分类器两者的综合使用可提高判断的准确率,因此我们决定将它保留在模型中。

▌逻辑回归

我们在这里考虑的系统是仅仅包含真和假两类。 通过给出的相关特征,我们对文章是虚假捏造的概率进行建模。 多项逻辑回归( LR )是这项工作的理想候选者,我们的模型通过使用对数变换(logit transformation)和最大似然估计(maximum likelihood estimation)来模拟预测变量的相关不可靠性的概率。

换句话说,LR 会直接计算后验 p(x|y) , 学习如何给输入的特征分配标签。 这是一个判别法的例子,虽然在技术层面上这并不是一个统计分类,但它可以对分类资格的条件概率进行赋值。SciKit-Learn 的逻辑回归模型提供了一种便利的方法来执行此操作。

参阅链接:

http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html

左:逻辑回归的 ROC 曲线;右:回归中排名前二十的特征

▌朴素贝叶斯分类器

我们的第二种方法是使用朴素贝叶斯算法( NB )算法,虽然它很简单,但是它十分适用于这个模型。通过假设特征之间的独立性,NB 从每个标签文章中学习联合概率 p(x,y) 的模型。基于贝叶斯规则计算得到的条件概率,模型会依据最大概率对文章进行标签分配并预测真伪。与前面提到的方法不同,这是一个生成分类器的例子。

贝叶斯分类器,使用 MAP 决策规则

在这种情况下,我们考虑是一个多项事件模型,它能最准能确地表示我们的特征分布情况。 正如预期的那样,其结果与逻辑拟合所得出的结论十分接近

左:多项朴素贝叶斯的 ROC 曲线;右:朴素贝叶斯分类器中排名前20的特征

▌结论

机器学习可以有效地识别以虚假新闻形式存在的错误信息。 即便是没有标题来源等上下文信息,仅正文内容也足以用来进行分析和学习。 因此,这些策略可以很简单地应用于那些没有额外描述的文档。 虽然单独使用情绪评分法并不能准确地判别假新闻,但当它与其他功能一起使用时,则可以提高分类器的准确性。未来可以尝试将其与其他流行的模型进行比较,比如支持矢量机。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 分类器
    +关注

    关注

    0

    文章

    152

    浏览量

    13165
  • 机器学习
    +关注

    关注

    66

    文章

    8365

    浏览量

    132340
  • 数据集
    +关注

    关注

    4

    文章

    1203

    浏览量

    24627

原文标题:教你用逻辑回归和朴素贝叶斯算法识别虚假新闻,小技能大用途!

文章出处:【微信号:rgznai100,微信公众号:rgznai100】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    机器学习实战之logistic回归

    logistic回归是一广义的线性回归,通过构造回归函数,利用机器
    的头像 发表于 09-29 15:17 2310次阅读
    <b class='flag-5'>机器</b><b class='flag-5'>学习</b>实战之logistic<b class='flag-5'>回归</b>

    【下载】《机器学习》+《机器学习实战》

    ]目录:第一部分 分类第1章 机器学习基础  2第2章 k-近邻算法   15第3章 决策树   32第4章 基于概率论的分类方法
    发表于 06-01 15:49

    如何规划出完美的机器学习入门路径?| AI知识科普

    的不同,机器学习可分为:监督学习,无监督学习,半监督学习,强化学习。在这里我们讲2
    发表于 07-27 12:54

    非常通俗的朴素贝叶斯算法(Naive Bayes)

    这个账号为真。4性别分类的例子本例摘自维基百科,关于处理连续变量的另一种方法。下面是一组人类身体特征的统计资料。已知某人身高6英尺、体重130磅,脚掌8英寸,请问该人是男是女?根据朴素贝叶斯分
    发表于 10-08 10:14

    如何选择机器学习的各种方法

    的这篇博客,讲述了如何选择机器学习的各种方法。 另外,Scikit-learn 也提供了一幅清晰的路线图给大家选择:其实机器学习的基本算法都
    发表于 03-07 20:18

    回归算法有哪些,常用回归算法(3)详解

    回归是数学建模、分类和预测中最古老但功能非常强大的工具之一。回归在工程、物理学、生物学、金融、社会科学等各个领域都有应用,是数据科学家常用的基本工具。回归通常是
    发表于 07-28 14:36

    人工智能算法有哪些?

    贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。最为广泛的两种分类模型是决策树模型和朴素贝叶斯模型。和决策树模型相比,
    发表于 03-05 14:15

    朴素贝叶斯分类器一阶扩展的注记

    众多研究者致力于将朴素贝叶斯方法与原有的ILP系统结合,形成各种各样的多关系朴素贝叶斯分类器(MRNBC)。该文提出形成朴素
    发表于 04-18 08:57 12次下载

    Python机器学习库和深度学习库总结

    是基于Scipy为机器学习建造的的一个Python模块,他的特色就是多样化的分类回归和聚类的算法包括支持向量机,逻辑
    发表于 11-10 14:49 883次阅读

    朴素贝叶斯等常见机器学习算法的介绍及其优缺点比较

    还是在于是否是要求联合分布),非常简单,你只是做了一堆计数。如果注有条件独立性假设(一个比较严格的条件),朴素贝叶斯分类器的收敛速度将快于判别模型,如逻辑回归,所以你只需要较少的训练数
    发表于 09-29 16:18 7次下载
    <b class='flag-5'>朴素</b>贝叶斯等常见<b class='flag-5'>机器</b><b class='flag-5'>学习</b>算法的介绍及其优缺点比较

    机器学习朴素贝叶斯应用教程

    今天介绍机器学习中一基于概率的常见的分类方法朴素贝叶斯,之前介绍的KNN, decision
    发表于 11-25 12:49 1369次阅读
    <b class='flag-5'>机器</b><b class='flag-5'>学习</b>之<b class='flag-5'>朴素</b>贝叶斯应用教程

    贝叶斯分类器原理及应用分析

    贝叶斯分类器分类原理是通过某对象的先验概率,利用贝叶斯公式计算出其后验概率,即该对象属于某一类的概率,选择具有最大后验概率的类作为该对象所属的类。在具有模式的完整统计知识条件下,按照贝叶斯决策理论进行设计的一
    发表于 11-30 16:12 1.2w次阅读
    <b class='flag-5'>贝叶斯分类器</b>原理及应用分析

    朴素贝叶斯算法的后延概率最大化的认识与理解

    朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。最为广泛的两种分类模型是决策树模型(Decision Tree Model)和
    发表于 11-30 17:11 3286次阅读
    <b class='flag-5'>朴素</b>贝叶斯算法的后延概率最大化的认识与理解

    基于概率的常见的分类方法--朴素贝叶斯

    本文介绍机器学习中一基于概率的常见的分类方法朴素贝叶斯,之前介绍的KNN, decision
    的头像 发表于 02-03 14:37 5185次阅读
    基于概率的常见的<b class='flag-5'>分类</b><b class='flag-5'>方法</b>--<b class='flag-5'>朴素</b>贝叶斯

    机器学习朴素贝叶斯

    学习过概率的人一定知道贝叶斯定理,在信息领域内有着无与伦比的地位。贝叶斯算法是基于贝叶斯定理的一类算法,主要用来解决分类回归问题。人工智能之机器
    发表于 05-29 09:01 874次阅读