orange实现逻辑回归_逻辑回归实现情感分析

本文基于吴恩达的NLP课程,介绍如何用逻辑回归进行情感分析。首先,通过特征提取和预处理将文本转换为可用的数据。然后,训练逻辑回归模型以最小化损失函数。在训练过程中,利用稀疏矩阵表示文本,并处理词汇表。预处理包括词干化和停顿词去除。最后,评估模型的准确率并讨论损失函数。
摘要由CSDN通过智能技术生成

本文参考于吴恩达NLP专项课程—有监督学习 & 情感分析

  • 在有监督机器学习中,你需要有输入特征X以及特征的标签Y

  • 目标是尽可能地减小损失值

  • 将特征X输入给prediction function,将实现特征X输出为预测标签Y_hat

  • 当标签Y和预测值Y_hat差异值较小时,可以实现从特征到标签的最佳映射

  • 损失函数Cost计算Y_hat和Y之间的差异

  • 通过计算的损失值来更新参数,迭代重复至损失值为一个较理想的值

b706cea318b54741595f71c77106cfe6.png

逻辑回归的函数为sigmoid函数

c5fb4b18ccafabe797df068a7ef61f67.png

情感分析的有监督机器学习分类问题例子:

目的是辨别tweet文本中的语句是积极的还是消极的情感

  • 建立逻辑回归分类器模型,我们分为3个步骤:提取特征, 训练,预测:

    • tweet文本中带有积极正面情感标记为1,带有消极负面情感标记为0

  1. 处理原tweet文本为训练数据集并且提取有用的特征

  2. 训练逻辑回归分类器模型并减小损失值

  3. 预测

8b94d8ad8c16904e84933327ee9aa3e1.png

特征提取

  1. 稀疏矩阵表示

  • 为了将一个文本转化为向量表示,我们需要建立一个词汇表Vocabulary,然后能够将任何文本或则tweet转化为数组矩阵

  • 词汇表V将会以列表形式存储tweet中的不同单词

  • 利用稀疏矩阵存储,在$tweet$中出现的单词词汇表V将会赋予1,而未出现的单词赋予0

    f2ddc3cbad765dc0fcde44d4e25ea154.png

  • 稀疏矩阵存在的问题:

  • 逻辑回归模型将会学习N+1个参数,N是词汇表V的大小

  • 耗费巨大的训练时间

  • 耗费巨大的预测时间

    e84c48ab525d6c93b8bf19e843156ec3.png

 2.分别统计消极负面和积极正面的频率

  • 从tweet语料库中不同的单词建立词汇库V

  • 建立两个类别,一个类别是消极负面情感,另一个类别是积极正面情感

  • 在词汇表V中计算积极单词的频率,需要统计它在积极正面的tweet文本中出现的次数,计算消极单词的频率一致

94e3e935c093f7a83ee894df2c0f0525.png

实际上在编码时,此表是一个字典,将单词及其对应的类别映射到频率,例如单词I,{(I,PosFreq):3,(I,NegFreq):3}

使用字典提取有用的特征以进行情感分析,使用维度=3的向量表示tweet

  • 即:[偏置=1,tweet中不同单词的正频率总和, tweet中不同单词的负频率总和]

    fd0f6eeab70b0776b27c49ac4c55f75e.png

预处理

  • 使用词干化stemming以及停顿词stop words对文本进行预处理

  • 首先,我们移除在tweets中不会带有重要含义的单词或则符号,例如停顿词,标点符号

  • 在某些情况下,不必移除标点符号。因此,需要仔细考虑标点符号是否会为你的NLP任务添加重要信息

  • NLP中的词干化只是简单的把单词转化为其基本的单词

训练逻辑回归模型

  • 训练逻辑回归分类器,迭代至损失值小于阈值时得到的参数theta

  • 训练的算法叫梯度下降

0d49af46694266e620c30d2f2adeaac0.png

测试逻辑回归模型

  • 你需要X_val和 Y_val,即验证集数据

  1. 首先,利用theta和X_val,即pred=h(X_val,theta),其中h=sigmoid函数

  2. 其次,评估pred是否大于等于阈值,通常阈值设置为0.5

  3. 最后在验证集上评估模型的准确率

257fabf878b81b55f22fff872c797dd4.png

损失函数

838cd1aec57c931b553d80577cb22dee.png

大家有兴趣可以下载课程的作业,实现一下。作业下载地址:https://github.com/tsuirak/deeplearning.ai

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值