美文网首页
分类(2):k-最近邻、贝叶斯分类器

分类(2):k-最近邻、贝叶斯分类器

作者: longgb246 | 来源:发表于2016-10-20 16:02 被阅读0次

    一、k-最近邻

    1、算法

    积极学习方法(eager learner):通过训练样本建立模型。
    消极学习方法(lazy learner):实例的学习,k-最近邻就属于这种。

    k-最近邻算法:
    令k是最近邻数目,D是训练样例集合
    for z in 样例集合:
      计算 z 和每个样例 (x,y) 的距离 d
      选择离 z 前 k 个近距离的点,为集合 Dt
      z的标记 y 为 Dt 中类较多的
    

    k-最近邻采用多数表决的方法,该算法对 k 敏感:
    ![](http://www.forkosh.com/mathtex.cgi? y'=argmax_{v}\sum_{(x_{i},y_{i})\in D_{t}} I(v=y_{i}))
    所以,需要降低 k 的影响,一种途径就是对距离的不同加权,如下,因为距离远的影响要弱一些,以距离平方的倒数为权值。
    ![](http://www.forkosh.com/mathtex.cgi? y'=argmax_{v}\sum_{(x_{i},y_{i})\in D_{t}}w_{i}\times I(v=y_{i}),w_{i}=\frac{1}{d(x',x_{i})^{2}})

    2、最近邻分类器特征:

    (1)实例的学习,不需要建模,但分类测试的开销很大。
    (2)当k比较小的时候,对噪声非常敏感。
    (3)可以生成任意决策边界。

    二、贝叶斯分类器

    1、贝叶斯公式

    ![](http://www.forkosh.com/mathtex.cgi? P(Y_{j}|X)=\frac{P(X|Y_{j})P(Y_{j})}{P(X)}=\frac{P(X|Y_{j})P(Y_{j})}{\sum_{i=1}^{n}P(X|Y_{i})P(Y_{i})})

    2、朴素贝叶斯
    (1)条件独立性:

    给定 Z,X 条件独立于 Y:
    ![](http://www.forkosh.com/mathtex.cgi? P(X|Y,Z)=P(X|Z))
    则有:
    ![](http://www.forkosh.com/mathtex.cgi? P(X,Y|Z)=\frac{P(Z,Y,X)}{P(Z)}=\frac{P(Z,Y,X)}{P(Y,Z)}\frac{P(Y,Z)}{P(Z)}=P(X|Y,Z)P(Y|Z)=P(X|Z)P(Y|Z))

    (2)朴素贝叶斯分类器:

    ![](http://www.forkosh.com/mathtex.cgi? P(Y|X)=\frac{P(X|Y)P(Y)}{P(X)}=\frac{P(X_{1},...,X_{d})P(Y)}{P(X)}=\frac{P(Y)\prod_{i=1}^{d}P(X_{i}|Y)}{P(X)})

    (3)连续属性的条件概率:

    <1>把每个连续属性离散化,用相应的区间去替代原来的属性,但若某一个区间的样本数目过少,不容易做出可靠的估计。
    <2>可以假设连续变量服从正态分布,Xi的概率等于:
    ![](http://www.forkosh.com/mathtex.cgi? P(X_{i}=x_{i}|Y=y_{j})=\frac{1}{\sqrt{2\pi}\sigma_{ij}}e{-\frac{(x_{i}-\mu_{ij}){2}}{2\sigma_{ij}}})
    其中 mu 用样本均值估计, sigma 用样本方差估计。

    (4)朴素贝叶斯举例:

    拖欠贷款为 Y 变量。


    5_01.png

    测试记录X=(有房=否,婚姻状况=已婚,年收入=120K),求后验概率P(No|X)、P(Yes|X)。
    总的 Y 可以知道,P(Yes)=0.3,P(No)=0.7。则:

    P(X | No)=P(有房=否 | No)x P(婚姻状况=已婚 | No)x P(年收入=120K | No)=0.0024
    P(X | Yes)= P(有房=否 | Yes)x P(婚姻状况=已婚 | Yes)x P(年收入=120K | Yes)=0

    因为P(No|X)>P(Yes|X),所以该测试分类为No,不拖欠贷款。
    上例中,P(婚姻状况=已婚 | Yes)=0,可能会出现极端现象,为了防止出现0,朴素贝叶斯没法正确分类,可以使用 m 估计(m-estimate):
    ![](http://www.forkosh.com/mathtex.cgi? P(x_{i}|y_{j})=\frac{n_{c}+mp}{n+m})
    n 为 yi 的实例总数,nc 为 yi 中 xi 的实例数目,p 是用户指定,m 为等价样本大小的参数。上面的计算:P(婚姻状况=已婚 | Yes)=(0+3 x 1/3)/(3+3)=1/6,而不是0。

    (4)朴素贝叶斯特征:

    对于噪声点,朴素贝叶斯是健壮的。也可以处理属性值遗漏问题。
    无关属性,朴素贝叶斯是健壮的。对于相关属性,可能会降低分类性能。

    3、贝叶斯置信网络(Bayesian belief networks,BBN)
    (1)模型表示:

    两个主要成分:

    一个有向无环图(DAG),表示变量之间的关系;
    一个概率表,把各个结点和它的直接父节点关联起来。

    性质1:条件独立
    贝叶斯网络中的一个结点,如果它的父母结点已知,则它条件独立于它的所有非后代结点。


    5_02.png

    如图(b),给定C,A 条件独立于 B 和 D。
    除了网络拓扑结构要求的条件独立外,每个结点还关联一个概率表。

    (1)如果结点 X 没有父母结点,则表中只包含先验概率P(X);
    (2)如果结点 X 只有一个父母结点 Y,则表中包含先验概率P(X | Y);
    (3)如果结点 X 有多个父母结点{Y1,Y2...,Yk},则表中只包含先验概率P(X|Y1,Y2...,Yk);

    下图是一个贝叶斯置信网络。


    5_03.png
    (2)建立模型:

    贝叶斯网络拓扑结构的生成算法:

    设T=(X1,X2,...Xd)表示变量的全序
    for j=1 to d do
      令 XTj 表示 T 中第 j 个次序最高的变量
      令A(XTj)={XT1,XT2,...XTj-1} 表示排在 XTj 前面的变量的集合
      从A(XTj)中去掉对 Xj 没有影响的变量(使用先验知识)
      在 XTj 和 A(XTj) 中的剩余变量之间画弧
    

    考虑到图5_03,经过循环后,得到的如下概率:

    P(D | E)化简为 P(D)
    P(HD | E,D)不能化简
    P(Hb | E,D,HD)化简为 P(Hb | D)
    P(CP | E,D,HD,Hb)化简为 P(CP | HD,Hb)
    P(BP | E,D,HD,Hb,CP)化简为 P(BP | HD)

    上面的算法,保证了不会生成环。
    不同的变量排序会产生不同的拓扑结构,理论上需要 d!种排序才能找到最优的,开销很大。代替方法是把变量分成原因变量和结果变量,从原因到结果画弧。

    (3)使用BNN进行推理:

    根据上面的贝叶斯置信网络图,有下面情况:


    5_04.png
    5_05.png
    (4)BNN的特点:

    构造网络比较费时,但网络结构一旦确定下来,添加新变量就变得容易。
    很适合处理不完整数据,对有属性遗漏的可以通过概率或求积分来加以处理。
    数据和先验知识结合起来,该方法对于模型的过拟合问题是非常鲁棒的。

    相关文章

      网友评论

          本文标题:分类(2):k-最近邻、贝叶斯分类器

          本文链接:https://www.haomeiwen.com/subject/qxdfuttx.html