【机器学习】朴素贝叶斯算法|商品评论情感分析案例介绍及代码实现

文章目录

  • 朴素贝叶斯算法
    • 朴素贝叶斯算法介绍
      • 概率数学基础复习
      • 朴素贝叶斯算法-利用概率值进行分类的一种机器学习算法
        • 贝叶斯公式
        • 朴素贝叶斯算法
        • 拉普拉斯平滑系数
    • 朴素贝叶斯API
      • 案例
        • 分析流程
        • 数据集
        • 代码实现
        • 运行结果

朴素贝叶斯算法

朴素贝叶斯算法介绍

概率数学基础复习

  • 条件概率 : 事件A在另外一个事件B已经发生条件下的发生概率 P(A|B)
  • 联合概率 : 表示多个条件哦同时成立的概率 P(AB) = P(A) * P(B|A) = P(B) * P(A|B)

朴素贝叶斯算法-利用概率值进行分类的一种机器学习算法

贝叶斯公式
  • 贝叶斯公式

    在这里插入图片描述

    • P© 表示c出现的概率
    • p(W|C) 表示C条件下W出现的概率
    • P(W) 表示 W 出现的概率
  • 例子: 判断女神对你的喜欢情况
    在这里插入图片描述

P(C | W) = P(喜欢 | (程序员,超重))
P(W | C) = P((程序员,超重) | 喜欢)
P© = P(喜欢)
P(W) = P(程序员,超重)

  • 根据训练样本估计先验概率P©:
    • P© = P(喜欢) = 4/7
  • 根据条件概率P(W | C)调整先验概率:
    • P(W | C) = P((程序员,超重) | 喜欢) = 1/4
  • ''此时我们的后验概率
    • P(W | C) * P©为:P(W | C) * P© = P((程序员,超重) | 喜欢) * P(喜欢) = 4/7 * 1/4 = 1/7
  • 那么该部分数据占所有既为程序员,又超重的人中的比例是多少呢?
    • P(W) = P(程序员,超重) = P(程序员) * P(超重 | 程序员) = 3/7 * 2/3 = 2/7

在这里插入图片描述

朴素贝叶斯算法

朴素贝叶斯在贝叶斯基础上增加:特征条件独立假设,即:特征之间是互为独立的。
此时,联合概率的计算即可简化为:
P(程序员,超重|喜欢) = P(程序员|喜欢) * P(超重|喜欢)
P(程序员,超重) = P(程序员) * P(超重)

拉普拉斯平滑系数

在这里插入图片描述

  • 为了避免概率值为 0,我们在分子和分母分别加上一个数值,这就是拉普拉斯平滑系数的作用
    • α 是拉普拉斯平滑系数,一般指定为 1
    • Ni 是 F1 中符合条件 C 的样本数量
    • N 是在条件 C 下所有样本的总数
    • m 表示所有独立样本的总数

朴素贝叶斯API

sklearn.naive_bayes.MultinomialNB(alpha = 1.0
  • 朴素贝叶斯分类
  • alpha 拉普拉斯平滑系数

案例

  • 需求 已知商品评论数据,根据数据进行情感分类(好评、差评)

在这里插入图片描述

分析流程
# 1 获取数据
# 2 数据基本处理# 2-1 处理数据y# 2-2 加载停用词# 2-3 处理数据x 把文档分词# 2-4 统计词频矩阵 作为句子特征# 2-5 准备训练集测试集
# 3 模型训练# 4-1 实例化贝叶斯 添加拉普拉斯平滑参数
# 4 模型预测
# 5 模型评估
数据集

用.csv方式保存数据集

,内容,评价
0, 从编程小白的角度看,入门极佳。,好评
1,很好的入门书,简洁全面,适合小白。,好评
2,讲解全面,许多小细节都有顾及,三个小项目受益匪浅。,好评
3,前半部分讲概念深入浅出,要言不烦,很赞,好评
4,看了一遍还是不会写,有个概念而已,差评
5,中规中矩的教科书,零基础的看了依旧看不懂,差评
6,内容太浅显,个人认为不适合有其它语言编程基础的人,差评
7,破书一本,差评
8,适合完完全全的小白读,有其他语言经验的可以去看别的书,差评
9,基础知识写的挺好的!,好评
10,太基础,差评
11,略_嗦。。适合完全没有编程经验的小白,差评
12,真的真的不建议买,差评
13,很好很好,好评
14,买买买,好评
代码实现
import jieba
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt  # 绘图
from sklearn.feature_extraction.text import CountVectorizer  # 文本特征向量化
from sklearn.naive_bayes import MultinomialNB  # 多项式贝叶斯分类器def demo01():data = pd.read_csv('../data/书籍评价.csv', encoding='gbk')# 数据预处理# data['评论标号'] = np.where(data['评价'] == '好评', 1, 0)# y = data['评论标号']y = data['评价']# 加载停用词stopwords = []with open('../data/stopwords.txt', 'r', encoding='utf-8') as f:lines = f.readlines()for line in lines:stopwords.append(line.strip())stopwords = list(set(stopwords))  # 去重# 处理数据 分词comment_list = [','.join(jieba.lcut(line)) for line in data['内容']]# 特征工程transfer = CountVectorizer(stop_words=stopwords)x = transfer.fit_transform(comment_list)mynames = transfer.get_feature_names_out()x = x.toarray()print(mynames)# 准备训练集测试集x_train = x[:10, :]y_train = y.values[:10]x_test = x[10:, :]y_test = y.values[10:]# 模型训练model = MultinomialNB().fit(x_train, y_train)# 模型预测y_predict = model.predict(x_test)print('预测结果:\n', y_predict)print('实际结果:\n', y_test)print('准确率:\n', model.score(x_test, y_test))if __name__ == '__main__':demo01()
运行结果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/55081.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

架构设计笔记-11-未来信息综合技术

知识要点 云原生架构原则包括:服务化原则、弹性原则、可观测原则、韧性原则、所有过程自动化原则、零信任原则和架构持续演进原则。 区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可…

CVE-2022-26965靶机渗透

​ 开启环境 ​ ​ 进入环境 ​ ​ 使用弱口令admin登录 ​ ​ 利用cms主题构造木马 ​ 需要将主题中的info.php文件修改,再打包成zip再上传,通过网络搜索找到Github中的Pluck CMS,进入后随便下载任一主题 https://github.com/sear…

服务性能优化之mybatis-plus 开启与关闭 SQL 日志打印

Hello!欢迎各位新老朋友来看小弟博客,祝大家事业顺利,财源广进!! 主题:mybatis-plus 开启与关闭 SQL 日志打印 第一:开启打印 Mybatis-plus 需要通过下面的方式开启控制台 SQL 日志打印 myba…

和鲸科技创始人范向伟:拐点即将来临,AI产业当前的三个瓶颈

在科技迅猛发展的时代,人工智能(AI)无疑已经成为引领新一轮产业革命的核心动力之一。全球企业纷纷拥抱AI技术,试图借助其变革力量在竞争中突围,然而业界对AI产业化的拐点何时来临却众说纷纭。毕竟AI技术从实验室到商业…

4K变倍镜头特点

1、高分辨率成像: ① 能够呈现清晰、细腻的图像,可清晰快速地识别出被测物体的微小细节、特征以及潜在的缺陷等。例如在芯片外观瑕疵检测中,能清晰地分辨出芯片上的刮痕、污渍、破损、引脚缺失等问题。 ② 相比传统的变倍镜头,在…

LabVIEW提高开发效率技巧----队列使用

在LabVIEW开发中,队列是实现并行处理、数据传递和任务调度的关键机制之一,合理使用队列可以有效提高程序性能并避免内存问题。结合队列长度限制和其他队列相关技巧,以下是队列使用的详细说明: 1. 队列长度限制 限制队列的长度可以…

全面讲解C++

数据类型 1.1 基本数据类型 1.1.1 整型(Integer Types) 整型用于表示整数值,分为以下几种类型: int:标准整数类型,通常为4字节(32位)。short:短整型,通常…

量子数字签名概述

我们都知道,基于量子力学原理研究密钥生成和使用的学科称为量子密码学。其内容包括了量子密钥分发、量子秘密共享、量子指纹识别、量子比特承诺、量子货币、秘密通信扩展量子密钥、量子安全计算、量子数字签名、量子隐性传态等。虽然各种技术发展的状态不同&#xf…

FreeRTOS学习总结

背景:在裸机开发上,有时候我们需要等待某个信号或者需要延迟时,CPU的运算是白白浪费掉了的,CPU的利用率并不高,我们希望当一个函数在等待的时候,可以去执行其他内容,提高CPU的效率,同…

windows修改文件最后修改时间

一、需要修改日期的文件 背景:有时候我们需要做一些文件定期删除的操作,但是测试时候并不一定有符合测试的文件,这时候就需要可以方便的修改文件的最后修改时间。 系统环境:windows 测试文件:如上 修改时间方式:windows 脚本。 二、测试脚本 (1) 脚本 # 指定文件路径 …

自然语言处理:第五十三章 Ollama

代码: ollama/ollama: Get up and running with Llama 3.1, Mistral, Gemma 2, and other large language models. (github.com) 官网: Ollama 写在前面: 笔者更新不易,希望走过路过点个关注和赞,笔芯!!! 写在前面: 笔者更新不易…

Android Framework默认授予app通知使用权限

安卓通知使用权限 在安卓系统中,应用程序需要获取通知使用权限才能向用户发送通知。以下是关于安卓通知使用权限的一些信息: 权限获取方式 当用户安装应用时,系统可能会在安装过程中提示用户授予应用通知权限。用户可以选择允许或拒绝。 应…

架构设计笔记-18-安全架构设计理论与实践

知识要点 常见的安全威胁: 信息泄露:信息被泄露或透露给某个非授权的实体。破坏信息的完整性:数据被非授权地进行增删、修改或破坏而受到损失。拒绝服务:对信息或其他资源的合法访问被无条件地阻止。攻击者向服务器发送大量垃圾…

OCM认证考试须知:掌握这些关键点,轻松应对考试

在Oracle认证体系中,OCM(OracleCertifiedMaster)是最高级别的认证。它代表了在Oracle数据库技术领域的顶尖水平。 OCM认证不仅要求你具备深厚的理论知识,还要求你能够解决复杂的数据库问题,并具备高级的项目管理能力。…

数据结构期中代码注意事项(二叉树及之前)1-11

注意&#xff1a;链表为空。是否越界访问。每写一步都要思考该步是否会有越界&#xff08;多/少&#xff09;等问题。这一步是否有不能走的条件&#xff08;删除的时候不为空&#xff09;。只有该节点开辟了空间&#xff0c;该节点才能被指向。能用c就用c。#include <iostre…

TensorRT-LLM七日谈 Day4

在Day2 中&#xff0c;我们梳理了trt-llm对于TinyLLama的调用&#xff0c;在Day3,我们也熟悉了一下Trt-llm常规的三步流程。 这里其实有个问题&#xff0c;在针对tiny-llama的部署中&#xff0c;其实没有显式的进行模型转换&#xff0c;那麽其推理接口中到底包含了什么&#x…

46 C 语言文件的打开与关闭、写入与读取函数:fopen、fclose、fputc、fputs、fprintf、fgetc、fgets、fscanf

目录 1 文件的存储形式 2 打开文件——fopen() 函数 2.1 功能描述 2.2 函数原型 2.3 文件打开方式&#xff08;模式&#xff09; 3 关闭文件——fclose() 函数 3.1 功能描述 3.2 函数原型 4 常见的文件写入方式 4.1 fputc() 函数 4.1.1 功能描述 4.1.2 函数原型 4…

windows自动化(一)---windows关闭熄屏和屏保

电脑设置关闭屏幕和休眠时间不起作用解决方案 一共三个方面注意&#xff1a; 一、关闭屏保设置&#xff1a; 二、电源管理设置 三、关闭盖子不做操作&#xff1a; 第一点很重要&#xff0c;就算二三都做了&#xff0c;一没做&#xff0c;照样不行。

一篇python的pandas数据分析,分组与聚合使用!

在数据分析中,数据分组与聚合是常用的操作,能够帮助我们从大量数据中提取出有用的信息.我们讨论了描述性统计,了解了如何通过均值、方差等统计量概述数据的特征.而在本篇中,我们将学习如何对数据进行分组和聚合,以便进行更深入的分析.最后,我们将在后续的章节中使用这些分析结果…

PHP政务招商系统——高效连接共筑发展蓝图

政务招商系统——高效连接&#xff0c;共筑发展蓝图 &#x1f3db;️ 一、政务招商系统&#xff1a;开启智慧招商新篇章 在当今经济全球化的背景下&#xff0c;政务招商成为了推动地方经济发展的重要引擎。而政务招商系统的出现&#xff0c;更是为这一进程注入了新的活力。它…