分类算法-朴素贝叶斯算法

朴素贝叶斯分类详解

一 朴素贝叶斯分类方法

在这里插入图片描述
在这里插入图片描述

二 概率基础

2.1 概率(Probability)定义

  • 概率定义为一件事情发生的可能性
    扔出一个硬币,结果头像朝上
    某天是晴天
  • P(X) : 取值在[0, 1]

2.2 女神是否喜欢计算案例

在这里插入图片描述
在这里插入图片描述

2.3 条件概率与联合概率

  • 联合概率:包含多个条件,且所有条件同时成立的概率
    记作:P(A,B)
    特性:P(A, B) = P(A)P(B)
  • 条件概率:就是事件A在另外一个事件B已经发生条件下的发生概率
    记作:P(A|B)
    特性:P(A1,A2|B) = P(A1|B)P(A2|B)

注意:此条件概率的成立,是由于A1,A2相互独立的结果(记忆)
这样我们计算结果为:

p(程序员, 匀称) =  P(程序员)P(匀称) =3/7*(4/7) = 12/49 
P(产品, 超重|喜欢) = P(产品|喜欢)P(超重|喜欢)=1/2 *  1/4 = 1/8

在这里插入图片描述

三 贝叶斯公式

3.1 工时

在这里插入图片描述
在这里插入图片描述

3.2 文章分类计算

在这里插入图片描述

科技:P(科技|影院,支付宝,云计算) = 𝑃(影院,支付宝,云计算|科技)∗P(科技)=(8/100)(20/100)(63/100)(30/90) = 0.00456109

娱乐:P(娱乐|影院,支付宝,云计算) = 𝑃(影院,支付宝,云计算|娱乐)∗P(娱乐)=(56/121)(15/121)(0/121)(60/90) = 0

思考:我们计算出来某个概率为0,合适吗?

3.3 拉普拉斯平滑系数

目的:防止计算出的分类概率为0
在这里插入图片描述

P(娱乐|影院,支付宝,云计算) =P(影院,支付宝,云计算|娱乐)P(娱乐) =P(影院|娱乐)*P(支付宝|娱乐)*P(云计算|娱乐)P(娱乐)=(56+1/121+4)(15+1/121+4)(0+1/121+1*4)(60/90) = 0.00002

3.4 API

sklearn.naive_bayes.MultinomialNB(alpha = 1.0)

  • 朴素贝叶斯分类
  • alpha:拉普拉斯平滑系数

四 案例:20类新闻分类

在这里插入图片描述

4.1 分析

  • 分割数据集

  • tfidf进行的特征抽取

  • 朴素贝叶斯预测

4.2 代码

from sklearn.model_selection import train_test_split,GridSearchCV
from sklearn.datasets import fetch_20newsgroups
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB

"""
 朴素贝叶斯 对新闻数据进行预测
"""
news = fetch_20newsgroups(subset='all')

#进行数据分割
x_train, x_test, y_train, y_test = train_test_split(news.data, news.target,test_size=0.3)

# 对于文本数据,进行特征抽取
tf = TfidfVectorizer()
x_train = tf.fit_transform(x_train)

print(tf.get_feature_names())

x_test = tf.transform(x_test)

#进行朴素贝叶斯算法预测
mlt = MultinomialNB(alpha=0.4)
print(x_train.toarray())

mlt.fit(x_train, y_train)
y_predict = mlt.predict(x_test)

print("预测的文章类别为:", y_predict)

#得出准确率为
print("准确率为:", mlt.score(x_test, y_test))

五 总结

  • 优点:
    朴素贝叶斯模型发源于古典数学理论,有稳定的分类效率。
    对缺失数据不太敏感,算法也比较简单,常用于文本分类。
    分类准确度高,速度快
  • 缺点:
    由于使用了样本属性独立性的假设,所以如果特征属性有关联时其效果不好
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值