精华内容
下载资源
问答
  • I . 判别模型 与 概率模型 II . 贝叶斯分类 III . 拉普拉斯修正 IV . 使用 朴素贝叶斯分类器 + 拉普拉斯修正 为样本分类 ( 完整分类流程 ) V . 朴素贝叶斯分类器使用 VI . 朴素贝叶斯分类的优缺点



    I . 判别模型 与 概率模型



    计算 P(CX)P(C|X) 当属性值取 XX 时 , 类别属于 CC 的概率 ;



    使用 判别模型 和 概率模型 计算上述 P(CX)P(C|X) 概率对比 ;

    ① 判别模型 : 直接正面对 P(CX)P(C|X) 进行建模 ; 如 决策树 , 神经网络 , 支持向量机 ;

    ② 概率模型 : P(CX)P(C|X) 的逆向概率 P(XC)P(X|C) 进行建模 , 再计算 P(CX)P(C|X) ; 如 贝叶斯分类器 ;



    II . 贝叶斯分类



    贝叶斯分类中 , 计算 P(CX)P(C|X) 当属性值取 XX 时 , 类别属于 CC 的概率 ;


    P(CX)P(C|X) 很难直接获得 , 使用贝叶斯公式可以通过其逆概率计算该值 :

    P(CX)=P(XC)P(C)P(X)P(C|X) = \frac{P(X|C) P(C)}{P(X)}



    • 先验概率 : P(C)P(C) 是先验概率 , 数据集中类别为 CC 的样本数出现的概率 , 数据集越大越准确 ;

    • 证据因子 : P(X)P(X) 是属性取值 XX 的概率 , 该值也是从数据集中统计样本属性为 XX 的概率 , 数据集越大越准确 , 该值与类别判定无关 ;

    • 类条件概率 ( 似然 ) : P(XC)P(X|C) 样本是 CC 类别时 , 属性值是 XX 的概率 , 可以通过机器学习获得 ;


    P(XC)P(X|C) 是通过机器学习基于有限样本估算概率 , P(X)P(X)P(C)P(C) 可以根据当前样本统计获得 ;



    III . 拉普拉斯修正



    1 . 分类属性 P(XkCi)P( X_k | C_i ) 计算方式 : 如果第 kk 个属性的取值是离散的 , 即分类属性 , 那么通过以下公式计算 :

    P(XkCi)=SikSiP( X_k | C_i ) = \frac{S_{ik}}{S_i}

    SiS_i 是分类为 CiC_i 类型的数据集样本个数 ;

    SikS_{ik} 是被分类成 CiC_i 类型的样本中 , 并且第 kk 个值是 XkX_k 的样本个数 ;



    2 . 属性屏蔽的情况 :


    给出一个样本 , 预测其分类 ;

    如果该样本的某个属性值 , 在某一个预测的分类 CiC_i 中没有出现过 , 即 SikS_{ik}00 , 那么计算出来的分类属性 P(XkCi)=SikSiP( X_k | C_i ) = \dfrac{S_{ik}}{S_i} 就是 00 ;

    进而 P(XCi)=k=1nP(XkCi)P(X|C_i) = \prod_{k=1}^n P( X_k | C_i ) 多属性分类的联合概率也就成为 00 ;

    那么计算其分类为 CiC_i 的概率肯定是 00 , 整体的联合概率是通过乘法法则计算的 , 这样会抹去其它属性的信息 , 即使其它属性的权重很大 , 整体概率也会成为 00 ;


    其它属性的概率权重被屏蔽了 , 结果肯定不准确 ; 这种情况就要 引入 拉普拉斯修正 ;



    3 . 拉普拉斯修正 :


    ① 计算 先验概率 时 进行 拉普拉斯修正 :

    P(C)=Dc+1D+NP(C) = \frac{| D_c | + 1}{ | D | + N }

    • DcD_c 表示训练集中 , 分类为 CC 的样本个数 ;
    • DD 表示训练集中样本中个数 ;
    • NN 表示按照某属性分类的类别数 , 如 , 是否购买商品 , 是 或 否 两种可取值类别 , 这里 N=2N=2 ;


    ② 计算 类条件概率 ( 似然 ) 时 进行 拉普拉斯修正 :

    P(XkCi)=Sik+1Si+NiP( X_k | C_i ) = \frac{S_{ik} + 1}{S_i + N_i}

    • SiS_i 是分类为 CiC_i 类型的数据集样本个数 ;

    • SikS_{ik} 是被分类成 CiC_i 类型的样本中 , 并且第 kk 个值是 XkX_k 的样本个数 ;

    • NiN_i 表示该属性的可取值个数 , 如 , 是否购买商品 , 是 或 否 两种可取值类别 , 这里 Ni=2N_i=2 ;



    IV . 使用 朴素贝叶斯分类器 + 拉普拉斯修正 为样本分类 ( 完整分类流程 )



    1 . 需求 : 根据 年龄 , 收入水平 , 是否是学生 , 信用等级 , 预测该用户是否会购买商品 ;


    年龄 收入水平 是否是学生 信用等级 是否购买商品
    小于 30 岁 高收入 不是 一般 不会
    小于 30 岁 高收入 不是 很好 不会
    31 ~ 39 岁 高收入 不是 一般
    40 岁以上 中等收入 不是 一般
    40 岁以上 低收入 一般
    40 岁以上 低收入 很好 不会
    31 ~ 40 岁 低收入 不是 很好
    小于 30 岁 中等收入 不是 一般 不会
    小于 30 岁 低收入 一般
    40 岁以上 中等收入 一般
    小于 30 岁 中等收入 很好
    31 ~ 39 岁 中等收入 不是 很好
    31 ~ 39 岁 高收入 一般
    40 岁以上 中等收入 不是 很好 不会

    2 . 为某未知类型样本进行分类 ;


    ① 未知样本的 44 个属性值为 : 年龄 小于 30 岁 , 收入 中等 , 是否是学生 是 , 信用等级 一般 , 四个值组成向量 XX ;

    ② 分类类型 : 是否购买商品 , 是 或者 否 ; 购买商品为 时间 YY , 不购买商品为事件 NN ;

    ③ 样本 44 个属性取值 XX , 并且类型为 YY 的概率 : P(YX)P(Y | X) ;

    ④ 样本 44 个属性取值 XX , 并且类型为 NN 的概率 : P(NX)P(N | X) ;





    3 . 计算取值 XX 向量时 , 某分类的概率 P(YX)P(Y | X) :


    ① 以 P(YX)P(Y | X) 计算为例 : 样本 44 个属性取值 XX , 并且类型为 YY 的概率 , 直接求该概率是无法计算的 ;

    ② 引入贝叶斯公式 : 使用其逆概率 P(XY)P(X|Y) , 当类型是 YY 是 , 取值为 XX 的概率 ;

    P(YX)=P(XY)P(Y)P(X)P(Y | X) = \frac{P(X|Y) P(Y)}{P(X)}

    ③ 逆概率 P(XY)P(X|Y) : 当类型是 YY 是 , 取值为 XX 的概率 ; 即 当购买商品时 , 前 44 个属性取值为 XX 向量的概率 ;



    4 . 计算取值 XX 向量时 , 某分类的概率 P(NX)P(N | X) :


    ① 以 P(NX)P(N | X) 计算为例 : 样本 44 个属性取值 XX , 并且类型为 NN 的概率 , 直接求该概率是无法计算的 ;

    ② 引入贝叶斯公式 : 使用其逆概率 P(XN)P(X|N) , 当类型是 NN 是 , 取值为 XX 的概率 ;

    P(NX)=P(XN)P(N)P(X)P(N | X) = \frac{P(X|N) P(N)}{P(X)}

    ③ 逆概率 P(XN)P(X|N) : 当类型是 NN 是 , 取值为 XX 的概率 ; 即 当购买商品时 , 前 44 个属性取值为 XX 向量的概率 ;





    5 . 比较取值 YY 和 取值 NN 的两个概率 :


    ① 原始概率 : P(NX)P(N | X)P(YX)P(Y | X) 两个概率进行比较 ;

    P(XY)P(Y)P(X) \frac{P(X|Y) P(Y)}{P(X)} P(XN)P(N)P(X)\frac{P(X|N) P(N)}{P(X)} 两个概率进行比较 ;


    ② 省略分母比较分子 : 分母都是 P(X)P(X) , 可以只比较分子 , P(XY)P(Y)P(X|Y) P(Y)P(XN)P(N)P(X|N) P(N) 进行比较 ;


    6 . 计算 22 个先验概率 : ( 引入拉普拉斯修正 )


    这里使用引入 拉普拉斯修正 的公式进行计算 :

    P(C)=Dc+1D+NP(C) = \frac{| D_c | + 1}{ | D | + N }

    • DcD_c 表示训练集中 , 分类为 CC 的样本个数 ;
    • DD 表示训练集中样本中个数 ;
    • NN 表示按照某属性分类的类别数 , 如 , 是否购买商品 , 是 或 否 两种可取值类别 , 这里 N=2N=2 ;

    P(Y)P(Y) 表示购买商品的概率 , 即上面 1414 个训练集样本中 , 购买商品的概率 , 是 9+114+2\frac{9 + 1}{14 + 2} ;

    P(N)P(N) 表示不买商品的概率 , 即上面 1414 个训练集样本中 , 不买商品的概率 , 是 5+114+2\frac{5 + 1}{14 + 2} ;





    7 . 计算 P(XY)P(X|Y) 概率 : 样本用户购买商品时 , 前 44 个属性取值 XX 向量的概率 ; ( 引入拉普拉斯修正 )


    这里使用引入拉普拉斯修正的 分类概率 计算公式 :

    P(XkCi)=Sik+1Si+NiP( X_k | C_i ) = \frac{S_{ik} + 1}{S_i + N_i}

    • SiS_i 是分类为 CiC_i 类型的数据集样本个数 ;

    • SikS_{ik} 是被分类成 CiC_i 类型的样本中 , 并且第 kk 个值是 XkX_k 的样本个数 ;

    • NiN_i 表示该属性的可取值个数 , 如 , 是否购买商品 , 是 或 否 两种可取值类别 , 这里 Ni=2N_i=2 ;


    ① 属性独立 : 朴素贝叶斯分类中认为属性间都是独立的 , 互不干扰 , 可以将 “前 44 个属性取值 XX 向量的概率” 变成概率乘积 ;


    ② 未知样本的 44 个属性值为 : 年龄 小于 30 岁 , 收入 中等 , 是否是学生 是 , 信用等级 一般 , 四个值组成向量 XX ;


    P(XY)P(X|Y) 计算 : 买商品的用户样本中 , 取值为 XX 向量的概率 , 如下 :

    P(XY)=P(30Y)×P(Y)×P(Y)×P(Y)P(X|Y) = P( 年龄小于 30 | Y) \times P( 收入中等 | Y) \times P( 是学生 | Y) \times P( 信用等级一般 | Y)

    其中 :

    P(30Y)P( 年龄小于 30 | Y) 买商品的用户中 , 年龄 小于 30 岁的概率 ;

    P(Y)P( 收入中等 | Y) 买商品的用户中 , 收入中等的概率 ;

    P(Y)P( 是学生 | Y) 买商品的用户中 , 是学生的概率 ;

    P(Y)P( 信用等级一般 | Y) 买商品的用户中 , 信用等级一般的概率 ;


    P(30Y)P( 年龄小于 30 | Y) 计算 : 99 个人买商品 , 其中有 22 个小于 30 岁 ;

    拉普拉斯修正 : 年龄有 33 种取值 , 分别是 小于 30 , 30 ~ 40 , 40 以上 , 拉普拉斯修正的 Ni=3N_i = 3 ;

    P(30Y)=2+19+3P( 年龄小于 30 | Y) = \frac{2 + 1}{9 + 3}

    P(Y)P( 收入中等 | Y) 计算 : 99 个人买商品 , 其中有 44 个 中等收入者 ;

    拉普拉斯修正 : 收入水平有 33 种取值 , 分别是 高 , 中 , 低 , 拉普拉斯修正的 Ni=3N_i = 3 ;

    P(Y)=4+19+3P( 收入中等 | Y) = \frac{4 + 1}{9 + 3}

    P(Y)P( 是学生 | Y) 计算 : 99 个人买商品 , 其中有 66 个 是学生 ;

    拉普拉斯修正 : 是否是学生有 22 种取值 , 分别是 是 , 否 , 拉普拉斯修正的 Ni=2N_i = 2 ;

    P(Y)=6+19+2P( 是学生 | Y) = \frac{6 + 1}{9 + 2}

    P(Y)P( 信用等级一般 | Y) 计算 : 99 个人买商品 , 其中有 66 个人信用等级一般 ;

    拉普拉斯修正 : 信用等级 有 22 种取值 , 分别是 好 , 一般 , 拉普拉斯修正的 Ni=2N_i = 2 ;

    P(Y)=6+19+2P( 信用等级一般 | Y) = \frac{6 + 1}{9 + 2}

    P(XY)P(X|Y) 计算结果 :

    P(XY)=P(30Y)×P(Y)×P(Y)×P(Y)=2+19+3×4+19+3×6+19+2×6+19+2\begin{array}{lcl} P(X|Y) &=& P( 年龄小于 30 | Y) \times P( 收入中等 | Y) \times P( 是学生 | Y) \times P( 信用等级一般 | Y) \\\\ &=& \frac{2 + 1}{9 + 3} \times \frac{4 + 1}{9 + 3} \times \frac{6 + 1}{9 + 2} \times \frac{6 + 1}{9 + 2} \\\\ \end{array}


    8 . 计算 P(XY)P(Y)P(X|Y) P(Y) 值 :

    P(XY)=2+19+3×4+19+3×6+19+2×6+19+2P(X|Y) =\frac{2 + 1}{9 + 3} \times \frac{4 + 1}{9 + 3} \times \frac{6 + 1}{9 + 2} \times \frac{6 + 1}{9 + 2}

    P(Y)=9+114+2P(Y) = \frac{9 + 1}{14 + 2}

    P(XY)P(Y)=2+19+3×4+19+3×6+19+2×6+19+2×9+114+20.0263644972451791P(X|Y) P(Y) = \frac{2 + 1}{9 + 3} \times \frac{4 + 1}{9 + 3} \times \frac{6 + 1}{9 + 2} \times \frac{6 + 1}{9 + 2} \times \frac{9 + 1}{14 + 2} \approx 0.0263644972451791‬




    9 . 计算 P(XN)P(X|N) 概率 : 样本用户没有购买商品时 , 前 44 个属性取值 XX 向量的概率 ;


    这里使用引入拉普拉斯修正的 分类概率 计算公式 :

    P(XkCi)=Sik+1Si+NiP( X_k | C_i ) = \frac{S_{ik} + 1}{S_i + N_i}

    • SiS_i 是分类为 CiC_i 类型的数据集样本个数 ;

    • SikS_{ik} 是被分类成 CiC_i 类型的样本中 , 并且第 kk 个值是 XkX_k 的样本个数 ;

    • NiN_i 表示该属性的可取值个数 , 如 , 是否购买商品 , 是 或 否 两种可取值类别 , 这里 Ni=2N_i=2 ;


    ① 属性独立 : 朴素贝叶斯分类中认为属性间都是独立的 , 互不干扰 , 可以将 “前 44 个属性取值 XX 向量的概率” 变成概率乘积 ;


    ② 未知样本的 44 个属性值为 : 年龄 小于 30 岁 , 收入 中等 , 是否是学生 是 , 信用等级 一般 , 四个值组成向量 XX ;


    P(XN)P(X|N) 计算 : 不买商品的用户样本中 , 取值为 XX 向量的概率 , 如下 :

    P(XN)=P(30N)×P(N)×P(N)×P(N)P(X|N) = P( 年龄小于 30 | N) \times P( 收入中等 | N) \times P( 是学生 | N) \times P( 信用等级一般 | N)

    其中 :

    P(30N)P( 年龄小于 30 | N) 不买商品的用户中 , 年龄 小于 30 岁的概率 ;

    P(N)P( 收入中等 | N) 不买商品的用户中 , 收入中等的概率 ;

    P(N)P( 是学生 | N) 不买商品的用户中 , 是学生的概率 ;

    P(N)P( 信用等级一般 | N) 不买商品的用户中 , 信用等级一般的概率 ;


    P(30N)P( 年龄小于 30 | N) 计算 : 55 个人不买商品 , 其中有 33 个小于 30 岁 ;

    拉普拉斯修正 : 年龄有 33 种取值 , 分别是 小于 30 , 30 ~ 40 , 40 以上 , 拉普拉斯修正的 Ni=3N_i = 3 ;

    P(30N)=3+15+3P( 年龄小于 30 | N) = \frac{3 + 1}{5 + 3}

    P(N)P( 收入中等 | N) 计算 : 55 个人不买商品 , 其中有 22 个 中等收入者 ;

    拉普拉斯修正 : 收入水平有 33 种取值 , 分别是 高 , 中 , 低 , 拉普拉斯修正的 Ni=3N_i = 3 ;

    P(N)=2+15+3P( 收入中等 | N) = \frac{2 + 1}{5 + 3}

    P(N)P( 是学生 | N) 计算 : 55 个人不买商品 , 其中有 11 个 是学生 ;

    拉普拉斯修正 : 是否是学生有 22 种取值 , 分别是 是 , 否 , 拉普拉斯修正的 Ni=2N_i = 2 ;

    P(N)=1+15+2P( 是学生 | N) = \frac{1 + 1}{5 + 2}

    P(N)P( 信用等级一般 | N) 计算 : 55 个人不买商品 , 其中有 $2 个人信用等级一般 ;

    拉普拉斯修正 : 信用等级 有 22 种取值 , 分别是 好 , 一般 , 拉普拉斯修正的 Ni=2N_i = 2 ;

    P(N)=2+15+2P( 信用等级一般 | N) = \frac{2 + 1}{5 + 2}

    P(XN)P(X|N) 计算结果 :

    P(XN)=P(30N)×P(N)×P(N)×P(N)=3+15+3×2+15+3×1+15+2×2+15+2\begin{array}{lcl} P(X|N) &=& P( 年龄小于 30 | N) \times P( 收入中等 | N) \times P( 是学生 | N) \times P( 信用等级一般 | N) \\\\ &=& \frac{3 + 1}{5 + 3} \times \frac{2 + 1}{5 + 3} \times \frac{1 + 1}{5 + 2} \times \frac{2 + 1}{5 + 2} \\\\ \end{array}


    10 . 计算 P(XN)P(N)P(X|N) P(N) 值 :

    P(XN)=3+15+3×2+15+3×1+15+2×2+15+2P(X|N) = \frac{3 + 1}{5 + 3} \times \frac{2 + 1}{5 + 3} \times \frac{1 + 1}{5 + 2} \times \frac{2 + 1}{5 + 2}

    P(N)=5+114+2P(N) = \frac{5 + 1}{14 + 2}

    P(XN)P(N)=3+15+3×2+15+3×1+15+2×2+15+2×5+114+20.00421875P(X|N) P(N) = \frac{3 + 1}{5 + 3} \times \frac{2 + 1}{5 + 3} \times \frac{1 + 1}{5 + 2} \times \frac{2 + 1}{5 + 2} \times \frac{5 + 1}{14 + 2} \approx 0.00421875




    11 . 比较 P(XY)P(Y)P(X|Y) P(Y)P(XN)P(N)P(X|N) P(N) 两个值 :

    P(XY)P(Y)=2+19+3×4+19+3×6+19+2×6+19+2×9+114+20.0263644972451791P(X|Y) P(Y) = \frac{2 + 1}{9 + 3} \times \frac{4 + 1}{9 + 3} \times \frac{6 + 1}{9 + 2} \times \frac{6 + 1}{9 + 2} \times \frac{9 + 1}{14 + 2} \approx 0.0263644972451791‬

    P(XN)P(N)=3+15+3×2+15+3×1+15+2×2+15+2×5+114+20.00421875P(X|N) P(N) = \frac{3 + 1}{5 + 3} \times \frac{2 + 1}{5 + 3} \times \frac{1 + 1}{5 + 2} \times \frac{2 + 1}{5 + 2} \times \frac{5 + 1}{14 + 2} \approx 0.00421875


    由上面进行对比得出 , 使用朴素贝叶斯分类 , 该样本用户会购买商品 ;



    V . 朴素贝叶斯分类器使用



    1 . 要求分类速度快 : 此时先计算出所有数据的概率估值 , 分类时 , 直接查表计算 ;


    2 . 数据集频繁变化 : 使用懒惰学习的策略 , 收到 分类请求时 , 再进行训练 , 然后预测 , 分类速度肯定变慢 , 但是预测准确 ;


    3 . 数据不断增加 : 使用增量学习策略 , 原来的估值不变 , 对新样本进行训练 , 然后基于新样本的估值修正原来的估值 ;



    VI . 朴素贝叶斯分类的优缺点



    朴素贝叶斯分类 :

    • 优点 : 只用几个公式实现 , 代码简单 , 结果大多数情况下比较准确 ;

    • 缺点 : 假设的属性独立实际上不存在 , 属性间是存在关联的 , 这会导致部分分类结果不准确 ;


    针对属性间存在依赖的情况 , 使用 贝叶斯信念网络 方法进行分类 ;

    展开全文
  • 朴素贝叶斯算法优缺点

    万次阅读 2018-07-14 00:06:07
    朴素贝叶斯的主要优点有:1)...朴素贝叶斯的主要缺点有: 1) 理论上,朴素贝叶斯模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为朴素贝叶斯模型给定输出类别的情况下,假设属性之间...
    朴素贝叶斯的主要优点有:
    1)朴素贝叶斯模型有稳定的分类效率。
    2)对小规模的数据表现很好,能处理多分类任务,适合增量式训练,尤其是数据量超出内存时,可以一批批的去增量训练。
    3)对缺失数据不太敏感,算法也比较简单,常用于文本分类。
    朴素贝叶斯的主要缺点有:   
    1) 理论上,朴素贝叶斯模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为朴素贝叶斯模型给定输出类别的情况下,假设属性之间相互独立,这个假设在实际应用中往往是不成立的,在属性个数比较多或者属性之间相关性较大时,分类效果不好。而在属性相关性较小时,朴素贝叶斯性能最为良好。对于这一点,有半朴素贝叶斯之类的算法通过考虑部分关联性适度改进。
    2)需要知道先验概率,且先验概率很多时候取决于假设,假设的模型可以有很多种,因此在某些时候会由于假设的先验模型的原因导致预测效果不佳。
    3)由于我们是通过先验和数据来决定后验的概率从而决定分类,所以分类决策存在一定的错误率。
    4)对输入数据的表达形式很敏感。
    展开全文
  • 朴素贝叶斯优缺点

    万次阅读 2018-05-14 16:34:08
    朴素贝叶斯的主要优点有:1)朴素贝叶斯模型发源于古典...朴素贝叶斯的主要缺点有:1) 理论上,朴素贝叶斯模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为朴素贝叶斯模型假设属性之间相...

    朴素贝叶斯的主要优点有:

    1)朴素贝叶斯模型发源于古典数学理论,有稳定的分类效率。

    2)对小规模的数据表现很好,能个处理多分类任务,适合增量式训练,尤其是数据量超出内存时,我们可以一批批的去增量训练。

    3)对缺失数据不太敏感,算法也比较简单,常用于文本分类。

    朴素贝叶斯的主要缺点有:

    1) 理论上,朴素贝叶斯模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为朴素贝叶斯模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的,在属性个数比较多或者属性之间相关性较大时,分类效果不好。而在属性相关性较小时,朴素贝叶斯性能最为良好。对于这一点,有半朴素贝叶斯之类的算法通过考虑部分关联性适度改进。

    2)需要知道先验概率,且先验概率很多时候取决于假设,假设的模型可以有很多种,因此在某些时候会由于假设的先验模型的原因导致预测效果不佳。

    3)由于我们是通过先验和数据来决定后验的概率从而决定分类,所以分类决策存在一定的错误率。

    4)对输入数据的表达形式很敏感。

    以上就是朴素贝叶斯算法的一个总结,希望可以帮到朋友们。

    文章源自:

    http://www.cnblogs.com/pinard/p/6069267.html

    另附:

    1决策树(Decision Trees)的优缺点

    决策树的优点:

    一、决策树易于理解和解释.人们在通过解释后都有能力去理解决策树所表达的意义。

    二、对于决策树,数据的准备往往是简单或者是不必要的.其他的技术往往要求先把数据一般化,比如去掉多余的或者空白的属性。

    三、能够同时处理数据型和常规型属性。其他的技术往往要求数据属性的单一。

    四、决策树是一个白盒模型。如果给定一个观察的模型,那么根据所产生的决策树很容易推出相应的逻辑表达式。

    五、易于通过静态测试来对模型进行评测。表示有可能测量该模型的可信度。

    六、 在相对短的时间内能够对大型数据源做出可行且效果良好的结果。

    七、 可以对有许多属性的数据集构造决策树。

    八、 决策树可很好地扩展到大型数据库中,同时它的大小独立于数据库的大小。

    决策树的缺点:

    一、对于那些各类别样本数量不一致的数据,在决策树当中,信息增益的结果偏向于那些具有更多数值的特征。

    二、决策树处理缺失数据时的困难。

    三、 过度拟合问题的出现。

    四、忽略数据集中属性之间的相关性。

    2 人工神经网络的优缺点

    人工神经网络的优点:分类的准确度高,并行分布处理能力强,分布存储及学习能力强,对噪声神经有较强的鲁棒性和容错能力,能充分逼近复杂的非线性关系,具备联想记忆的功能等。

    人工神经网络的缺点:神经网络需要大量的参数,如网络拓扑结构、权值和阈值的初始值;不能观察之间的学习过程,输出结果难以解释,会影响到结果的可信度和可接受程度;学习时间过长,甚至可能达不到学习的目的。

    3 遗传算法的优缺点

    遗传算法的优点:

    一、与问题领域无关切快速随机的搜索能力。

    二、搜索从群体出发,具有潜在的并行性,可以进行多个个体的同时比较,鲁棒性好。

    三、搜索使用评价函数启发,过程简单。

    四、使用概率机制进行迭代,具有随机性。

    五、具有可扩展性,容易与其他算法结合。

    遗传算法的缺点:

    一、遗传算法的编程实现比较复杂,首先需要对问题进行编码,找到最优解之后还需要对问题进行解码,

    二、另外三个算子的实现也有许多参数,如交叉率和变异率,并且这些参数的选择严重影响解的品质,而目前这些参数的选择大部分是依靠经验.没有能够及时利用网络的反馈信息,故算法的搜索速度比较慢,要得要较精确的解需要较多的训练时间。

    三、算法对初始种群的选择有一定的依赖性,能够结合一些启发算法进行改进。

    4 KNN算法(K-Nearest Neighbour) 的优缺点

    KNN算法的优点:

    一、简单、有效。

    二、重新训练的代价较低(类别体系的变化和训练集的变化,在Web环境和电子商务应用中是很常见的)。

    三、计算时间和空间线性于训练集的规模(在一些场合不算太大)。

    四、由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合。

    五、该算法比较适用于样本容量比较大的类域的自动分类,而那些样本容量较小的类域采用这种算法比较容易产生误分。

    KNN算法缺点:

    一、KNN算法是懒散学习方法(lazy learning,基本上不学习),一些积极学习的算法要快很多。

    二、类别评分不是规格化的(不像概率评分)。

    三、输出的可解释性不强,例如决策树的可解释性较强。

    四、该算法在分类时有个主要的不足是,当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数。该算法只计算“最近的”邻居样本,某一类的样本数量很大,那么或者这类样本并不接近目标样本,或者这类样本很靠近目标样本。无论怎样,数量并不能影响运行结果。可以采用权值的方法(和该样本距离小的邻居权值大)来改进。

    五、计算量较大。目前常用的解决方法是事先对已知样本点进行剪辑,事先去除对分类作用不大的样本。

    5 支持向量机(SVM)的优缺点

    SVM的优点:

    一、可以解决小样本情况下的机器学习问题。

    二、可以提高泛化性能。

    三、可以解决高维问题。

    四、可以解决非线性问题。

    五、可以避免神经网络结构选择和局部极小点问题。

    SVM的缺点:

    一、对缺失数据敏感。

    二、对非线性问题没有通用解决方案,必须谨慎选择Kernelfunction来处理。

    6 朴素贝叶斯的优缺点

    优点:

    一、朴素贝叶斯模型发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率。

    二、NBC模型所需估计的参数很少,对缺失数据不太敏感,算法也比较简单。

    缺点:

    一、理论上,NBC模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为NBC模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的(可以考虑用聚类算法先将相关性较大的属性聚类),这给NBC模型的正确分类带来了一定影响。在属性个数比较多或者属性之间相关性较大时,NBC模型的分类效率比不上决策树模型。而在属性相关性较小时,NBC模型的性能最为良好。

    二、需要知道先验概率。

    三、分类决策存在错误率

    7 Adaboosting方法的优点

    一、adaboost是一种有很高精度的分类器。

    二、可以使用各种方法构建子分类器,Adaboost算法提供的是框架。

    三、当使用简单分类器时,计算出的结果是可以理解的。而且弱分类器构造极其简单。

    四、简单,不用做特征筛选。

    五、不用担心overfitting。

    8 Rocchio的优点

    Rocchio算法的突出优点是容易实现,计算(训练和分类)特别简单,它通常用来实现衡量分类系统性能的基准系统,而实用的分类系统很少采用这种算法解决具体的分类问题。

    展开全文
  • 贝叶斯公式2.4 概率统计词频2.5 拉普拉斯平滑三、sklearn朴素贝叶斯实现API四、朴素贝叶斯分类的优缺点五、文本特征工程5.1 文本分割,单词提取(1)英文(2)中文5.2 词数统计5.3 TFIDF(重要程度分析)5....

    朴素贝叶斯

    一、介绍

    • 朴素:独立性假设

    • 处理文本分类的

    • 非结构化数据(文本和图片都是非结构数据,不成体系,无行无列,要处理成有行有列有特征的)

    1.1 文本分类的应用

    自然语言处理,垃圾游戏分类,垃圾短信分类,敏感话题过滤,舆情分析

    可以处理的信息有:文字 语言 数字 传播信息稀疏矩阵

    词向量统计模型例子:

    你好 吃了吗 坦克
    1 1 0

    词云的例子

    在这里插入图片描述

    垃圾邮件分类

    在这里插入图片描述

    文章类别的概率

    在这里插入图片描述

    二、概率基础

    概率定义为一件事情发生的可能性

    • 扔出一个硬币,结果头像朝上
    • 某天是晴天

    2.1 概率例题

    在这里插入图片描述
    问题
    1、女神喜欢的概率?4/7
    2、职业是程序员并且体型匀称的概率?3/7*4/7=12/49
    3、在女神喜欢的条件下,职业是程序员的概率?1/2
    4、在女神喜欢的条件下,职业是产品,体重是超重的概率?0

    2.2 联合概率和条件概率

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

    2.3 朴素贝叶斯-贝叶斯公式

    朴素贝叶斯的朴素:特征独立
    在这里插入图片描述
    公式分为三个部分:

    • P(C): 每个文档类别的概率(某文档类别词数/总文档词数)
    • P(W|C): 给定类别下特征 (被预测文档中出现的词)的概率

    计算方法: P(F1|C)= Ni/N ( 训练文档中去计算)
    Ni为该F1词在C类别所有文档中出现的次数
    N为所属类别C下的文档所有词出现的次数和

    • P(F1,F2,..)预测文档中 每个词的概率
      -在这里插入图片描述
      pw是一样的,可以忽略,只比较分子

    2.4 概率统计词频

    训练集统计结果(指定统计词频):
    在这里插入图片描述
    现有一篇被预测文档:出现了影院,支付宝,云计算,计算属于科技、娱乐的类别概率?

    根据公式pc是每个文档类别的概率用词数来求而不是篇数!!!
    在这里插入图片描述
    预测文档的情况:
    在这里插入图片描述
    注意
    pc如果是按篇数就是错了
    在这里插入图片描述
    思考:属于某个类别为0,合适吗?

    2.5 拉普拉斯平滑

    问题:从上面的例子我们得到娱乐概率为0,这是不合理的,如果词频列表里面有很多出现次数都为0,很可能计算结果都为零。
    解决方法:
    拉普拉斯平滑系数
    在这里插入图片描述
    a为指定的系数一般为1 ,m为训练文档中统计出的特征调个数
    在这里插入图片描述
    所以这个地方的前三个乘数的
    分子要加1
    分母加上1*词的类别数

    在这里插入图片描述

    三、sklearn朴素贝叶斯实现API

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

    四、朴素贝叶斯分类的优缺点

    • 优点:
      – 朴素贝叶斯模型发源于古典数学理论,有稳定的分类效率。
      – 对缺失数据不太敏感,算法也比较简单,常用于文本分类。
      – 分类准确度高,速度快.
    • 缺点:
      – 需要知道先验概率P(F1,F2…|C),因此在某些时候会由于假设的先验
      模型的原因导致预测效果不佳。

    五、文本特征工程

    import numpy as np
    import pandas as pd 
    
    #记录中国的所有词语、成语(这个方法是吴军提出来的)
    import jieba as jb #pip install jieba -i https://pypi.douban.com/simple
    
    #尝试jieba
    jb.lcut("你好,我是汪雯琦")
    

    在这里插入图片描述

    5.1 文本分割,单词提取

    (1)英文

    text = ['Life is happy,i am vicky','i like study study study']
    
    # 文本的分割与处理
    bow_text = []
    #有多少个就循环多少次
    for t in text:
        #过滤符号
        t = t.replace(',',' ').replace('.',' ').split(' ')
        new_t = []
        for word in t:
            #保留非空字符
            if len(word)>0:
                new_t.append(word)
        bow_text.append(new_t)
    bow_text
    

    在这里插入图片描述

    (2)中文

    #中文
    text = ["人生苦短,我用python","vicky为自己代言"]
    
    for i in range(len(text)):
        text[i] = ' '.join(jb.lcut(text[i]))
    
    text
    

    在这里插入图片描述

    # 文本的分割与处理
    bow_text = []
    #有多少个就循环多少次
    for t in text:
        #过滤符号
        t = t.replace(',',' ').replace('.',' ').split(' ')
        new_t = []
        for word in t:
            #保留非空字符
            if len(word)>0:
                new_t.append(word.lower())#英文都变成小写
        bow_text.append(new_t)
    bow_text
    

    在这里插入图片描述

    5.2 词数统计

    #构建一个词库,变成特征
    wordSets = []
    for list_ in bow_text:
        wordSets += list_
    wordSets = set(wordSets)
    wordSets
    

    在这里插入图片描述

    #列表里面嵌套字典,字典可以转变为DataFrame比较方便
    wordDicts = []
    for list_ in bow_text:
        wordDict = dict.fromkeys(wordSets,0)#字典中的key来源于集合的意思,初始化为0次
        for word in list_:
            wordDict[word] += 1
        wordDicts.append(wordDict)
    
    pd.DataFrame(wordDicts)
    

    在这里插入图片描述
    词数统计已经让我们的文本分类了

    5.3 TFIDF(重要程度分析)

    特征词语相对于当前文本的重要程度

    TF(词频) IDF(逆文档频率)(包含某一个词语的文档数量比例)

    IDF = log10(文档的总数 +1 / 包含某一个词语的文档数量 +1)

    5.4 TF

    tfDicts = []
    for i in range(len(wordDicts)):
        tfidf = dict()
        #计算每个文本的单词量
        nbowcount = len(bow_text[i])
        
        for k,v in wordDicts[i].items():
            tfidf[k] = v/nbowcount
        tfDicts.append(tfidf)
    
    pd.DataFrame(tfDicts)
    

    在这里插入图片描述

    5.5 IDF

    idfDict = dict.fromkeys(wordSets,0)
    
    N = len(text)
    
    #包含某一个词语的文档数量
    for wordDict in wordDicts:
        for word,count in wordDict.items():
            if count > 0:
                idfDict[word] += 1
                
    idfDict_ = dict()            
    #公式合并
    for word,inv in idfDict.items():
        idfDict_[word] = np.log10((N+1)/(inv+1))
    
    idfDict_
    

    在这里插入图片描述

    5.6 TFIDF合并

    tfidfs = []
    for tf in tfDicts:
        tfidf = dict()
        for word,tfval in tf.items():
            tfidf[word] = tfval * idfDict_[word]
        tfidfs.append(tfidf)
    
    pd.DataFrame(tfidfs)
    

    在这里插入图片描述

    展开全文
  • Sklearn基于这些分布以及这些分布上的概率估计的改进,为我们提供了四个朴素贝叶斯的分类器 类 含义 naive_bayes.BernoulliNB 伯努利分布下的朴素贝叶斯 naive_bayes.GaussianNB 高斯分布下的朴素...
  • http://www.cnblogs.com/pinard/p/6069267.html作者:刘建平Pinard【机器学习算法与自然语言处理导读】朴素贝叶斯算法是最经典的几个机器学习算法之一,本文对它的优点,缺点进行总结。1.朴素贝叶斯算法朴素贝叶斯...
  • 朴素贝叶斯算法的优缺点

    千次阅读 2019-03-30 14:11:48
    朴素贝叶斯算法的优缺点 优点:     (1)朴素贝叶斯模型发源于古典数学理论,有稳定的分类效率。     (2)对小规模的数据表现很好,能个处理多分类任务,适合增量式训练,尤其是数据量超出内存时,我们...
  • 贝叶斯优缺点

    千次阅读 2018-11-14 11:39:16
    朴素贝叶斯的主要优点有: ...朴素贝叶斯的主要缺点有:  1) 理论上,朴素贝叶斯模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为朴素贝叶斯模型给定输出类别的情况下,假...
  • 朴素贝叶斯的主要优点 朴素贝叶斯模型发源于...朴素贝叶斯的主要缺点 理论上,朴素贝叶斯模型与其他分类方法相比,具有最小的误差率。但是,实际上并非总是如此,因为,朴素贝叶斯模型给定输出类别的情况下,假设...
  • 朴素贝叶斯简单推导及优缺点

    千次阅读 2017-08-27 10:32:09
    朴素贝叶斯推导
  • _": naviebayes() 输出结果: 在这里插入代码片 5.4 朴素贝叶斯分类优缺点 优点: 1、朴素贝叶斯模型发源于古典数学理论,有稳定的分类效率。 2、对缺失数据不太敏感,算法也比较简单,常用于文本分类。 3、分类准确...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 291
精华内容 116
关键字:

朴素贝叶斯优缺点