【R的机器学习】模型性能提升探索:朴素贝叶斯

本章强行带入朴素贝叶斯的算法进行分类。

为什么说是强行,因为NB(朴素贝叶斯)算法其实不算是一个好的对于数值型分类的方法,一般应用的部分的特征值通常是因子型;举个例子,对于我们的iris数据集:

head(iris_train)
    Sepal.Length Sepal.Width Petal.Length Petal.Width
75           6.4         2.9          4.3         1.3
16           5.7         4.4          1.5         0.4
120          6.0         2.2          5.0         1.5
91           5.5         2.6          4.4         1.2
93           5.8         2.6          4.0         1.2
127          6.2         2.8          4.8         1.8
       Species
75  versicolor
16      setosa
120  virginica
91  versicolor
93  versicolor
127  virginica

我们看到,除了结果分类的Species以外,其他的四个分类都是连续的数值型,因为朴素贝叶斯的主要思想是求一件事情发生的条件概率,而没有分类的连续数值型是无法求出条件概率的。举个例子,下雨天路上车少的概率是80%,这个很容易表达成条件概率:

P(车少|下雨天)=0.8

扩展下,某一个区域下雨的概率是50%,车少的概率是10%:

P(下雨天)=0.5
P(车少)=0.1

如果有一天我们大侦探福尔摩斯听到这一天车很少,脑海中迅速会回想起这一天的天气以及作案手段,他的计算方式是这样的:

P(车少|下雨天)*P(下雨天)=P(车少)*P(下雨天|车少)

左右两边相等,是因为求得结果都是下雨天且车少的概率,说到这了,求出:

P(下雨天|车少)=40%

但是,如果我们这里不是车少,比如我们看到下雨天车辆<100辆,然后我们看到120辆车,问这个概率的话,我们是没有先验条件的,也就是我们不知道120辆车的时候,下不下雨,所以从这个意义上说,NB算法针对于那些给定发生的、因子型的特征值处理的要更好,否则如果我们在做处理的时候(后面会具体模拟下),会损失掉一些数据,比如我们把数据分段,100辆以下的是少,120辆以上的是多,100-120是中,等等。所以NB也很适合文本分类,因为文本是一类典型的已知的因子。

再回到我们的iris数据集,看看每个参数的分布情况:

summary(iris)
Sepal.Length    Sepal.Width     Petal.Length  
 Min.   :4.300   Min.   :2.000   Min.   :1.000  
 1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600  
 Median :5.800   Median :3.000   Median :4.350  
 Mean   :5.843   Mean   :3.057   Mean   :3.758  
 3rd Qu.:6.400   3rd Qu.:3.300   3
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值