机器学习——朴素贝叶斯

朴素贝叶斯

假定特征于特征之间互相独立的贝叶斯公式
在这里插入图片描述

概率基础复习

在这里插入图片描述

贝叶斯公式
在这里插入图片描述
在这里插入图片描述

拉普拉斯平滑系数
为了避免求贝叶斯概率时某些项为0,通常采用拉普拉斯平滑系数
在这里插入图片描述

商品评论情感分析

sklearn.naive_bayes.MultinomiaNB(alpha=1.0)
alpha是拉普拉斯平滑系数

import pandas as pd
import numpy as np
import jieba
import matplot.pyplot as plt
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
#1获取数据
data=pd.read_csv('./data1/书籍评价.csv',encoding='gbk')
data

在这里插入图片描述

#2数据基本处理
#2.1取出内容列,用于后面分析
content=data['内容']

#2.2把评价中的好评差评转换为数字
data.loc[data.loc[:,'评价']=='好评','评论编号']=1
data.loc[data.loc[:,'评价']=='差评','评论编号']=0

#2.3选择停用词
stopwords=[]
with open('./data1/stopwords.txt','r',encoding='utf-8') as f:
    lines=f.readlines()
    for tmp in lines:
        line=tmp.strip()
        stopwords.append(line)
stopwords=list(set(stopwords))

#2.4把“内容”处理,转化成标准格式
comment_list=[]
for tmp in content:
    seg_list=jieba.cut(tmp,cut_all=False)
    seg_str=','.join(seg_list)
    comment_list.append(seg_str)

#2.5统计词的个数
con=CountVectorizer(stop_words=stopwords)
X=con.fit_transform(comment_list)

#2.6准备训练集和测试集
x_train=X.toarray()[:10,:]
y_train=data['评价'][:10]
x_test=X.toarray()[10:,:]
y_test=data['评价'][10:]

#3模型训练
mb=MultinomialNB(alpha=1)
mb.fit(x_train,y_train)
y_pre=mb.predict(x_test)
print('预测值:',y_pre)
print('真实值:',y_test)

#4模型评估
mb.score(x_test,y_test)

在这里插入图片描述

总结

朴素贝叶斯的优缺点
在这里插入图片描述

朴素贝叶斯和逻辑回归的区别
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

醋酸洋红就是我

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值