朴素贝叶斯随笔-python

朴素贝叶斯大家都知道了,我也就不赘述了,可参考

点击打开链接

http://scikit-learn.org/stable/modules/naive_bayes.html


  • 如何使用
比如根据天气看小J是否出去打球,统计了她过去打球的数据:
天气打球
晴天no
多云yes
雨天yes
晴天yes
晴天yes
多云yes
雨天no
雨天no
晴天yes
雨天yes
晴天no
多云yes
多云yes
雨天no
  1. 将数据集转换为频率表:

天气不打球打球
多云 4
雨天32
晴天23
总数59
2.求概率:
天气不打球打球 
多云 40.29
雨天320.36
晴天230.36
总数59 
 0.360.64 
3.带入贝叶斯:
P(打球|晴天) = P(晴天|打球)·P(打球)/P(晴天) = (3/9)·0.64/0.36 = 0.59
所以在晴天打球的概率有0.59

  • 应用
1.实时预测
2.多类别预测
3.文本分类/垃圾过滤/情感分析
4.推荐系统

  • 采用python构建基本模型(采用sklearn包)
包含三类模型:
1.Gaussian:分类中假设数据特征符合正态分布
2.Multinomial:用于离散数据计数,比如文本分类问题中统计一篇文章中的词频数
3.Bernoulli:二分类问题,比如文本分类中,文章中一个词出现还是不出现
  • python案例
构造数据:
#Import Library of Gaussian Naive Bayes model
from sklearn.naive_bayes import GaussianNB
import numpy as np

#assigning predictor and target variables
x = np.array([[-3,7],[1,5], [1,2], [-2,0], [2,3], [-4,0], [-1,1], [1,1], [-2,2], [2,7], [-4,1], [-2,7]])
y = np.array([3, 3, 3, 3, 4, 3, 3, 4, 3, 4, 4, 4])
构造模型:
#Create a Gaussian Classifier
model = GaussianNB()

# Train the model using the training sets 
model.fit(x, y)

#Predict Output 
predicted= model.predict([[1,2],[3,4]])
print predicted

输出为预测结果:[3, 4]

  • 提升贝叶斯表现
1. 如果连续型数据但是不满足正态分布,则将其转化为符合正态分布的数据
2. 如果测试数据特征出现频率为0的数据,就用平滑技术“拉普拉斯变换”来进行预测
3. 删除相关联的特征,可能造成过拟合
4. 注意各个参数选项的影响,建议在数据与处理和特征选择阶段处理参数问题
5. 集成、提升、装袋方法由于目的是减小方差,所以对于朴素贝叶斯没有任何帮助

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值