精华内容
下载资源
问答
  • 进入正题之前先给大家推荐一本书--《Python机器学习及实践-从零开始通往KAGGLE竞赛之路》...非参数化概率密度的估计对于未知概率密度函数的估计方法,其核心思想是:一个向量x落在区域R中的概率可表示为:其中,P是...

    30b08a1c57047af1aaf5c70abdb0cb7e.png

    进入正题之前先给大家推荐一本书--《Python机器学习及实践-从零开始通往KAGGLE竞赛之路》,对于想系统学习机器学习的同学,推荐去看一下,电子版下载链接如下:

    链接:https://pan.baidu.com/s/1rzaFErwbtQ6CQdTSRnaURg

    提取码:5gou

    1.非参数化概率密度的估计

    • 对于未知概率密度函数的估计方法,其核心思想是:一个向量x落在区域R中的概率可表示为:

    74f23d5fa4f863ad09da5a1d9cc75b9e.png
    • 其中,P是概率密度函数p(x)的平滑版本,因此可以通过计算P来估计概率密度函数p(x),假设n个样本x1,x2,…,xn,是根据概率密度函数p(x)独立同分布的抽取得到,这样,有k个样本落在区域R中的概率服从以下分布:

    674c64a92ef0e0f026b80761f8a259fa.png
    • 其中k的期望值为:

    dbf3ee3a6a530da28edd2a457d0df94d.png
    • k的分布在均值附近有着非常显著的波峰,因此若样本个数n足够大时,使用k/n作为概率P的一个估计将非常准确。假设p(x)是连续的,且区域R足够小,则有:

    d47f15325c58e7317907d85696fb0ce1.png
    • 如下图所示,以上公式产生一个特定值的相对概率,当n趋近于无穷大时,曲线的形状逼近一个δ函数,该函数即是真实的概率。公式中的V是区域R所包含的体积。综上所述,可以得到关于概率密度函数p(x)的估计为:

    3d347b8c9d7fb4c55ea036f8daa1fade.png

    eb07af34e91414dd16f76b8d263431d6.png
    • 在实际中,为了估计x处的概率密度函数,需要构造包含点x的区域R1,R2,…,Rn。第一个区域使用1个样本,第二个区域使用2个样本,以此类推。记Vn为Rn的体积。kn为落在区间Rn中的样本个数,而pn (x)表示为对p(x)的第n次估计:

    c717e23c0faad20e424978a48f1acb49.png
    • 欲满足pn(x)收敛:pn(x)→p(x),需要满足以下三个条件:

    7350438b23a45691cab986850bbefa09.png
    • 有两种经常采用的获得这种区域序列的途径,如下图所示。其中“Parzen窗方法”就是根据某一个确定的体积函数,比如Vn=1/√n来逐渐收缩一个给定的初始区间。这就要求随机变量kn和kn/n能够保证pn (x)能收敛到p(x)。第二种“k-近邻法”则是先确定kn为n的某个函数,如kn=√n。这样,体积需要逐渐生长,直到最后能包含进x的kn个相邻点。

    8f2e1dacae87a5be6a03b8a97470f4b5.png

    2.Parzen窗估计法

    • 已知测试样本数据x1,x2,…,xn,在不利用有关数据分布的先验知识,对数据分布不附加任何假定的前提下,假设R是以x为中心的超立方体,h为这个超立方体的边长,对于二维情况,方形中有面积V=h^2,在三维情况中立方体体积V=h^3,如下图所示。

    79450797c6cc5002617901302f1faeb9.png
    • 根据以下公式,表示x是否落入超立方体区域中:

    9b232f4e732b5eb08aab6ad3f13f8db4.png
    • 估计它的概率分布:

    2914d5658f58ada570d2abdebdbc4e37.png
    • 其中n为样本数量,h为选择的窗的长度,φ(.)为核函数,通常采用矩形窗和高斯窗。

    3.k最近邻估计

    • 在Parzen算法中,窗函数的选择往往是个需要权衡的问题,k-最近邻算法提供了一种解决方法,是一种非常经典的非参数估计法。基本思路是:已知训练样本数据x1,x2,…,xn而估计p(x),以点x为中心,不断扩大体积Vn,直到区域内包含k个样本点为止,其中k是关于n的某一个特定函数,这些样本被称为点x的k个最近邻点。
    • 当涉及到邻点时,通常需要计算观测点间的距离或其他的相似性度量,这些度量能够根据自变量得出。这里我们选用最常见的距离度量方法:欧几里德距离。
    • 最简单的情况是当k=1的情况,这时我们发现观测点就是最近的(最近邻)。一个显著的事实是:这是简单的、直观的、有力的分类方法,尤其当我们的训练集中观测点的数目n很大的时候。可以证明,k最近邻估计的误分概率不高于当知道每个类的精确概率密度函数时误分概率的两倍。

    matlab实现Parzen和k最近邻估计

    Parzen窗方法研究

    • 采用3类满足正太分布的样本数据(w1,w2,w3)作为训练样本,编写程序,使用Parzen 窗估计方法对一个任意的测试样本点x 进行分类。对分类器的训练则使用(w1,w2,w3)的三维数据。同时修改窗口h的值,多次实验。用于分类的样本点为x1(0.5,1.0,0.0),x2(0.31,1.51,-0.50),x3(-0.3,0.44,-0.1)。
    • 训练样本数据(w1,w2,w3)分别为: w1 = [ 0.28 1.31 -6.2 0.07 0.58 -0.78 1.54 2.01 -1.63 -0.44 1.18 -4.32 -0.81 0.21 5.73 1.52 3.16 2.77 2.20 2.42 -0.19 0.91 1.94 6.21 0.65 1.93 4.38 -0.26 0.82 -0.96]; W2 = [0.011 1.03 -0.21 1.27 1.28 0.08 0.13 3.12 0.16 -0.21 1.23 -0.11 -2.18 1.39 -0.19 0.34 1.96 -0.16 -1.38 0.94 0.45 -0.12 0.82 0.17 -1.44 2.31 0.14 0.26 1.94 0.08]; W3 = [ 1.36 2.17 0.14 1.41 1.45 -0.38 1.22 0.99 0.69 2.46 2.19 1.31 0.68 0.79 0.87 2.51 3.22 1.35 0.60 2.44 0.92 0.64 0.13 0.97 0.85 0.58 0.99 0.66 0.51 0.88];
    • h=0.1时:

    398c5c308752ced1cbbf9c24c91ddde0.png
    • h=0.5时:

    c7f89650767818e10daa652fc186a152.png
    • h=1时:

    d9bec404806547b887d8bb48fcbe98f7.png

    K最近邻方法研究

    • 采用3类满足正太分布的样本数据(w1,w2,w3)作为训练样本,为了使实验更具有说服力,我们令训练样本数据的个数分别为10、20、30、40个样本,进行4次实验,其中w1的均值为0.2,方差为0.2,w2的均值为0,方差为0.1,w3的均值为0.1,方差为0.1。实验的训练样本都是程序随机生成的,我们将在实验结果分析的最后给出每次实验的训练样本数据。

    源码

    clear;
                    close all;
                    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                    % Parzen窗估计和k最近邻估计
                    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                    %         w1(:,:,1) =  .2+sqrt(0.2)*randn(20,[3,1]);  %均值为0.2,方差为0.2的训练样本
                    %         disp(w1(:,:,1));
                    %         w1(:,:,2) =  0+sqrt(0.2)*randn(20,[3,.1]);  %均值为0,方差为0.1的训练样本
                    %         disp(w1(:,:,2));
                    %         w1(:,:,3) =  .1+sqrt(0.3)*randn(20,[3,0]);  %均值为0.1,方差为0.1的训练样本
                    %         disp(w1(:,:,2));
                      w1(:,:,1) = [ 0.28  1.31  -6.2;...
                                 0.07  0.58  -0.78;...
                                 1.54  2.01  -1.63;...
                                -0.44  1.18  -4.32;...
                                -0.81  0.21   5.73;...
                                 1.52  3.16   2.77;...
                                 2.20  2.42  -0.19;...
                                 0.91  1.94   6.21;...
                                 0.65  1.93   4.38;...
                                -0.26  0.82  -0.96];
                    w1(:,:,2) = [0.011  1.03  -0.21;...
                                 1.27  1.28   0.08;...
                                 0.13  3.12   0.16;...
                                -0.21  1.23  -0.11;...
                                -2.18  1.39  -0.19;...
                                 0.34  1.96  -0.16;...
                                -1.38  0.94   0.45;...
                                -0.12  0.82   0.17;...
                                -1.44  2.31   0.14;...
                                 0.26  1.94   0.08];
                    w1(:,:,3) = [ 1.36  2.17  0.14;...
                                 1.41  1.45 -0.38;...
                                 1.22  0.99  0.69;...
                                 2.46  2.19  1.31;...
                                 0.68  0.79  0.87;...
                                 2.51  3.22  1.35;...
                                 0.60  2.44  0.92;...
                                 0.64  0.13  0.97;...
                                 0.85  0.58  0.99;...
                                 0.66  0.51  0.88];
                    x(1,:) = [0.5 1 0];
                    x(2,:) = [0.31 1.51 -0.5];
                    x(3,:) = [-0.3 0.44 -0.1];
                    h = 1; % 重要参数
                    p1 = Parzen(w1,x(1,:),h);
                    %num1 = find(p1 == max(p1));
                    p2 = Parzen(w1,x(2,:),h);
                    %num2 = find(p2 == max(p2));
                    p3 = Parzen(w1,x(3,:),h);
                    %num3 = find(p3 == max(p3));
                    disp(['点:[',num2str(x(1,:)),']落在三个类别的概率分别为:',num2str(p1)]);
                    disp(['点:[',num2str(x(2,:)),']落在三个类别的概率分别为:',num2str(p2)]);
                    disp(['点:[',num2str(x(3,:)),']落在三个类别的概率分别为:',num2str(p3)]);
                    % 给定三类二维样本,画出二维正态概率密度曲面图验证h的作用
                    num =1; % 第num类的二维正态概率密度曲面图,取值为1,2,3
                    draw(w2,h,num); 
                    str1='当h=';str2=num2str(h);str3='时的二维正态概率密度曲面';
                    SC = [str1,str2,str3];
                    title(SC);
    
                    % k近邻算法设计的分类器
                    % x1和y1为测试样本
                    x1 = [-0.91,0.32,0.48];
                    x2 = [0.14,0.72, 1.1];
                    x3 = [-0.81,0.61,-0.38];
    
                    % x1 = [-0.41,0.82,0.88];
                    % x2 = [0.14,0.72, 4.1];
                    % x3 = [-0.81,0.61,-0.38];
                    w = w1;
                    %w = w1(:,1,3);
                    k = 2;
                    kNearestNeighbor(w,k,x1);
                    kNearestNeighbor(w,k,x2);
                    kNearestNeighbor(w,k,x3);
    
    
    
                    % Parzen窗算法
                    % w:c类训练样本
                    % x:测试样本
                    % h:参数
                    % 输出p:测试样本x落在每个类的概率
                    function p = Parzen(w,x,h)
    
                    [xt,yt,zt] = size(w);
    
                    p = zeros(1,zt);
    
                    for i = 1:zt
                        hn = h;
                        for j = 1:xt
                            hn = hn / sqrt(j);
                            p(i) = p(i) + exp(-(x - w(j,:,i))*(x - w(j,:,i))'/ (2 * power(hn,2))) / (hn * sqrt(2*3.14));
                        end
                        p(i) = p(i) / xt;
                    end
    
    
    
                    % k-最近邻算法
                    % w:c类训练样本
                    % x:测试样本
                    % k:参数
                    function p = kNearestNeighbor(w,k,x)
                    % w = [w(:,:,1);w(:,:,2);w(:,:,3)];
                    [xt,yt,zt] = size(w);
                    wt = [];%zeros(xt*zt, yt);
                    if nargin==2   %判断输入变量的个数
                    p = zeros(1,zt);
                        for i = 1:xt
                            for j = 1:xt
                            dist(j,i) = norm(wt(i,:) - wt(j,:));   % 计算向量范数(dist:欧式距离加权函数)
                            end
                            t(:,i) = sort(dist(:,i));
                            m(:,i) = find(dist(:,i) <= t(k+1,i)); % 找到k个最近邻的编号
                        end
                    end  
                    if nargin==3    %判断输入变量的个数
                        for q = 1:zt
                        wt = [wt; w(:,:,q)];  %  把3个训练样本放到一个矩阵中
                        [xt,yt] = size(wt);
                        end
                            for i = 1:xt
                            dist(i) = norm(x - wt(i,:));
                            end
                            t = sort(dist); % 欧氏距离排序
                            [a,b] = size(t);
                            m = find(dist <= t(k+1)); % 找到k个最近邻样本的编号,存到向量m中
                            num1 = length(find(m>0 & m<11));
                            num2 = length(find(m>10 & m<21));
                            num3 = length(find(m>20 & m<31));
                    if yt == 3
                            plot3(w(:,1,1),w(:,2,1),w(:,3,1), 'r.');
                            hold on;
                            grid on;
                            plot3(w(:,1,2),w(:,2,2),w(:,3,2), 'g.');
                            plot3(w(:,1,3),w(:,2,3),w(:,3,3), 'b.');
                    if (num1 > num2) || (num1 > num3)
                        plot3(x(1,1),x(1,2),x(1,3), 'ro');
                        disp(['点:[',num2str(x),']属于第一类']);
                    elseif (num2 > num1) || (num2 > num3)
                        plot3(x(1,1),x(1,2),x(1,3), 'go');
                        disp(['点:[',num2str(x),']属于第二类']);
                    elseif (num3 > num1) || (num3 > num2)
                        plot3(x(1,1),x(1,2),x(1,3), 'bo');
                        disp(['点:[',num2str(x),']属于第三类']);
                    else
                        disp('无法分类');
                    end
                    end
                    if yt == 2
                            plot(w(:,1,1),w(:,2,1), 'r.');
                            hold on;
                            grid on;
                            plot(w(:,1,2),w(:,2,2), 'g.');
                            plot(w(:,1,3),w(:,2,3), 'b.');
                    if (num1 > num2) || (num1 > num3)
                        plot(x(1,1),x(1,2), 'ro');
                        disp(['点:[',num2str(x),']属于第一类']);
                    elseif (num2 > num1) || (num2 > num3)
                        plot(x(1,1),x(1,2), 'go');
                        disp(['点:[',num2str(x),']属于第二类']);
                    elseif (num3 > num1) || (num3 > num2)
                        plot(x(1,1),x(1,2), 'bo');
                        disp(['点:[',num2str(x),']属于第三类']);
                    else
                        disp('无法分类');
                    end
                    end
                    end
                    title('k-最近邻分类器');
                    legend('第一类数据',...
                           '第二类数据',...
                           '第三类数据',...
                           '测试样本点');
    参考书籍:《模式分类》作者:RichardO.Duda,PeterE.Hart,DavidG.Stork
    展开全文
  • 本实验的目的是学习Parzen窗估计和k最近邻估计方法。在之前的模式识别研究中,我们假设概率密度函数的参数形式已知,即判别函数J(.)的参数是已知的。本节使用非参数化的方法来处理任意形式的概率分布而不必事先考虑...

    本实验的目的是学习Parzen窗估计和k最近邻估计方法。在之前的模式识别研究中,我们假设概率密度函数的参数形式已知,即判别函数J(.)的参数是已知的。本节使用非参数化的方法来处理任意形式的概率分布而不必事先考虑概率密度的参数形式。在模式识别中有躲在令人感兴趣的非参数化方法,Parzen窗估计和k最近邻估计就是两种经典的估计法。

    参考书籍:《模式分类》
    作者:RichardO.Duda,PeterE.Hart,DavidG.Stork

    一、基本原理

    1.非参数化概率密度的估计

    对于未知概率密度函数的估计方法,其核心思想是:一个向量x落在区域R中的概率可表示为:

    这里写图片描述

    其中,P是概率密度函数p(x)的平滑版本,因此可以通过计算P来估计概率密度函数p(x),假设n个样本x1,x2,…,xn,是根据概率密度函数p(x)独立同分布的抽取得到,这样,有k个样本落在区域R中的概率服从以下分布:

    这里写图片描述

    其中k的期望值为:

    这里写图片描述

    k的分布在均值附近有着非常显著的波峰,因此若样本个数n足够大时,使用k/n作为概率P的一个估计将非常准确。假设p(x)是连续的,且区域R足够小,则有:

    这里写图片描述

    如下图所示,以上公式产生一个特定值的相对概率,当n趋近于无穷大时,曲线的形状逼近一个δ函数,该函数即是真实的概率。公式中的V是区域R所包含的体积。综上所述,可以得到关于概率密度函数p(x)的估计为:

    这里写图片描述

    这里写图片描述

    在实际中,为了估计x处的概率密度函数,需要构造包含点x的区域R1,R2,…,Rn。第一个区域使用1个样本,第二个区域使用2个样本,以此类推。记Vn为Rn的体积。kn为落在区间Rn中的样本个数,而pn (x)表示为对p(x)的第n次估计:

    这里写图片描述

    欲满足pn(x)收敛:pn(x)→p(x),需要满足以下三个条件:

    这里写图片描述

    有两种经常采用的获得这种区域序列的途径,如下图所示。其中“Parzen窗方法”就是根据某一个确定的体积函数,比如Vn=1/√n来逐渐收缩一个给定的初始区间。这就要求随机变量kn和kn/n能够保证pn (x)能收敛到p(x)。第二种“k-近邻法”则是先确定kn为n的某个函数,如kn=√n。这样,体积需要逐渐生长,直到最后能包含进x的kn个相邻点。

    这里写图片描述

    2.Parzen窗估计法

    已知测试样本数据x1,x2,…,xn,在不利用有关数据分布的先验知识,对数据分布不附加任何假定的前提下,假设R是以x为中心的超立方体,h为这个超立方体的边长,对于二维情况,方形中有面积V=h^2,在三维情况中立方体体积V=h^3,如下图所示。

    这里写图片描述

    根据以下公式,表示x是否落入超立方体区域中:

    这里写图片描述

    估计它的概率分布:

    这里写图片描述

    其中n为样本数量,h为选择的窗的长度,φ(.)为核函数,通常采用矩形窗和高斯窗。

    3.k最近邻估计

    在Parzen算法中,窗函数的选择往往是个需要权衡的问题,k-最近邻算法提供了一种解决方法,是一种非常经典的非参数估计法。基本思路是:已知训练样本数据x1,x2,…,xn而估计p(x),以点x为中心,不断扩大体积Vn,直到区域内包含k个样本点为止,其中k是关于n的某一个特定函数,这些样本被称为点x的k个最近邻点。

    当涉及到邻点时,通常需要计算观测点间的距离或其他的相似性度量,这些度量能够根据自变量得出。这里我们选用最常见的距离度量方法:欧几里德距离。

    最简单的情况是当k=1的情况,这时我们发现观测点就是最近的(最近邻)。一个显著的事实是:这是简单的、直观的、有力的分类方法,尤其当我们的训练集中观测点的数目n很大的时候。可以证明,k最近邻估计的误分概率不高于当知道每个类的精确概率密度函数时误分概率的两倍。

    二、实验基本步骤

    这里写图片描述

    第一部分,对表格中的数据,进行Parzen 窗估计和设计分类器,本实验的窗函数为一个球形的高斯函数,如下:

    这里写图片描述

    1) 编写程序,使用Parzen 窗估计方法对一个任意的测试样本点x 进行分类。对分类器的训练则使用表格 3中的三维数据。同时,令h =1,分类样本点为(0.5,1.0,0.0),(0.31,1.51,-0.50),(-0.3,0.44,-0.1)进行实验。

    2) 可以改变h的值,不同的h将导致不同的概率密度曲线,如下图所示。

    h=0.1时:

    这里写图片描述

    h=0.5时:

    这里写图片描述

    h=1时:

    这里写图片描述

    第二部分的实验目的是学习和掌握非参数估计:k-近邻概率密度估计方法。对前面表格中的数据进行k-近邻概率密度估计方法和设计分类器。

    编写程序,对表格中的3个类别的三维特征,使用k-近邻概率密度估计方法。并且对下列点处的概率密度进行估计:(-0.41,0.82,0.88),(0.14,0.72, 4.1) ,(-0.81,0.61,-0.38)。

    这里写图片描述

    实验代码如下:

    % Parzen窗算法
    % w:c类训练样本
    % x:测试样本
    % h:参数
    % 输出p:测试样本x落在每个类的概率
    function p = Parzen(w,x,h)
    
    [xt,yt,zt] = size(w);
    
    p = zeros(1,zt);
    
    for i = 1:zt
        hn = h;
        for j = 1:xt
            hn = hn / sqrt(j);
            p(i) = p(i) + exp(-(x - w(j,:,i))*(x - w(j,:,i))'/ (2 * power(hn,2))) / (hn * sqrt(2*3.14));
        end
        p(i) = p(i) / xt;
    end
    
    % k-最近邻算法
    % w:c类训练样本
    % x:测试样本
    % k:参数
    function p = kNearestNeighbor(w,k,x)
    
    % w = [w(:,:,1);w(:,:,2);w(:,:,3)];
    
    [xt,yt,zt] = size(w);
    
    wt = [];%zeros(xt*zt, yt);
    
    if nargin==2
    p = zeros(1,zt);
        for i = 1:xt
            for j = 1:xt
            dist(j,i) = norm(wt(i,:) - wt(j,:));
            end
            t(:,i) = sort(dist(:,i));
            m(:,i) = find(dist(:,i) <= t(k+1,i)); % 找到k个最近邻的编号
        end
    end  
    
    if nargin==3
        for q = 1:zt
        wt = [wt; w(:,:,q)];
        [xt,yt] = size(wt);
        end
            for i = 1:xt
            dist(i) = norm(x - wt(i,:));
            end
            t = sort(dist); % 欧氏距离排序
            [a,b] = size(t);
    
            m = find(dist <= t(k+1)); % 找到k个最近邻的编号
    
            num1 = length(find(m>0 & m<11));
            num2 = length(find(m>10 & m<21));
            num3 = length(find(m>20 & m<31));
    if yt == 3
            plot3(w(:,1,1),w(:,2,1),w(:,3,1), 'r.');
            hold on;
            grid on;
            plot3(w(:,1,2),w(:,2,2),w(:,3,2), 'g.');
            plot3(w(:,1,3),w(:,2,3),w(:,3,3), 'b.');
    
    if (num1 > num2) || (num1 > num3)
        plot3(x(1,1),x(1,2),x(1,3), 'ro');
        disp(['点:[',num2str(x),']属于第一类']);
    elseif (num2 > num1) || (num2 > num3)
        plot3(x(1,1),x(1,2),x(1,3), 'go');
        disp(['点:[',num2str(x),']属于第二类']);
    elseif (num3 > num1) || (num3 > num2)
        plot3(x(1,1),x(1,2),x(1,3), 'bo');
        disp(['点:[',num2str(x),']属于第三类']);
    else
        disp('无法分类');
    end
    end
    
    if yt == 2
            plot(w(:,1,1),w(:,2,1), 'r.');
            hold on;
            grid on;
            plot(w(:,1,2),w(:,2,2), 'g.');
            plot(w(:,1,3),w(:,2,3), 'b.');
    
    if (num1 > num2) || (num1 > num3)
        plot(x(1,1),x(1,2), 'ro');
        disp(['点:[',num2str(x),']属于第一类']);
    elseif (num2 > num1) || (num2 > num3)
        plot(x(1,1),x(1,2), 'go');
        disp(['点:[',num2str(x),']属于第二类']);
    elseif (num3 > num1) || (num3 > num2)
        plot(x(1,1),x(1,2), 'bo');
        disp(['点:[',num2str(x),']属于第三类']);
    else
        disp('无法分类');
    end
    end
    
    end
    title('k-最近邻分类器');
    legend('第一类数据',...
           '第二类数据',...
           '第三类数据',...
           '测试样本点');
    
    clear;
    close all;
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    % Parzen窗估计和k最近邻估计
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    w1(:,:,1) = [ 0.28  1.31  -6.2;...
                 0.07  0.58  -0.78;...
                 1.54  2.01  -1.63;...
                -0.44  1.18  -4.32;...
                -0.81  0.21   5.73;...
                 1.52  3.16   2.77;...
                 2.20  2.42  -0.19;...
                 0.91  1.94   6.21;...
                 0.65  1.93   4.38;...
                -0.26  0.82  -0.96];
    
    w1(:,:,2) = [0.011  1.03  -0.21;...
                 1.27  1.28   0.08;...
                 0.13  3.12   0.16;...
                -0.21  1.23  -0.11;...
                -2.18  1.39  -0.19;...
                 0.34  1.96  -0.16;...
                -1.38  0.94   0.45;...
                -0.12  0.82   0.17;...
                -1.44  2.31   0.14;...
                 0.26  1.94   0.08];
    
    w1(:,:,3) = [ 1.36  2.17  0.14;...
                 1.41  1.45 -0.38;...
                 1.22  0.99  0.69;...
                 2.46  2.19  1.31;...
                 0.68  0.79  0.87;...
                 2.51  3.22  1.35;...
                 0.60  2.44  0.92;...
                 0.64  0.13  0.97;...
                 0.85  0.58  0.99;...
                 0.66  0.51  0.88];
    
    x(1,:) = [0.5 1 0];
    x(2,:) = [0.31 1.51 -0.5];
    x(3,:) = [-0.3 0.44 -0.1];
    
    % 验证h的二维数据
    w2(:,:,1) = [ 0.28  1.31  ;...
                 0.07  0.58  ;...
                 1.54  2.01  ;...
                -0.44  1.18  ;...
                -0.81  0.21  ;...
                 1.52  3.16  ;...
                 2.20  2.42  ;...
                 0.91  1.94  ;...
                 0.65  1.93  ;...
                -0.26  0.82  ];
    
    w2(:,:,2) = [0.011  1.03 ;...
                 1.27  1.28  ;...
                 0.13  3.12  ;...
                -0.21  1.23  ;...
                -2.18  1.39  ;...
                 0.34  1.96  ;...
                -1.38  0.94  ;...
                -0.12  0.82  ;...
                -1.44  2.31  ;...
                 0.26  1.94  ];
    
    w2(:,:,3) = [1.36  2.17 ;...
                 1.41  1.45 ;...
                 1.22  0.99 ;...
                 2.46  2.19 ;...
                 0.68  0.79 ;...
                 2.51  3.22 ;...
                 0.60  2.44 ;...
                 0.64  0.13 ;...
                 0.85  0.58 ;...
                 0.66  0.51 ];
    
    y(1,:) = [0.5 1];
    y(2,:) = [0.31 1.51];
    y(3,:) = [-0.3 0.44];
    
    h = .1; % 重要参数
    
    p = Parzen(w1,x(1,:),h);
    num = find(p == max(p));
    disp(['点:[',num2str(x(1,:)),']落在三个类别的概率分别为:',num2str(p)]);
    disp(['点:[',num2str(x(1,:)),']落在第',num2str(num),'类']);
    
    % 给定三类二维样本,画出二维正态概率密度曲面图验证h的作用
    num =1; % 第num类的二维正态概率密度曲面图,取值为123
    draw(w2,h,num); 
    str1='当h=';str2=num2str(h);str3='时的二维正态概率密度曲面';
    SC = [str1,str2,str3];
    title(SC);
    
    % k近邻算法设计的分类器
    % x1和y1为测试样本
    x1 = [-0.41,0.82,0.88];
    x2 = [0.14,0.72, 4.1];
    x3 = [-0.81,0.61,-0.38];
    y(1,:) = [0.5 1];
    y(2,:) = [0.31 1.51];
    y(3,:) = [-0.3 0.44];
    w = w1;
    %w = w1(:,1,3);
    k = 5;
    kNearestNeighbor(w,k,x1);
    kNearestNeighbor(w,k,x2);
    kNearestNeighbor(w,k,x3);
    展开全文
  • 下面我们将看到即使我们只依赖某个x的单一的最近邻来作估计也能够达到足够好的性能,即最近邻规则和k近邻规则。 5、最近邻规则 对于测试样本点x,在样本集合Dn中距离它最近的样本点记为x’,那么最近邻规则的分类...

    前序文章:

    机器学习笔记—模式分类(一)绪论&贝叶斯决策论

    机器学习笔记—模式分类(二)参数判别估计法(最大似然估计和贝叶斯参数估计)1

    机器学习笔记—模式分类(三)参数判别估计法2(最大似然估计)

    机器学习笔记—模式分类(四)参数判别估计法3(贝叶斯参数估计)

    机器学习笔记—模式分类(五)参数判别估计法4(充分统计量、维数、特征线性组合、特征缺失)

    机器学习笔记—模式分类(六)参数判别估计法5(序列判决之隐马尔可夫模型HMM)

    机器学习笔记—模式分类(七)非参数技术1(序言、非参数的概率密度估计)

    同类文章:

    暂无

     

           下面我们将看到即使我们只依赖某个x的单一的最近邻来作估计也能够达到足够好的性能,即最近邻规则和k近邻规则。

    5、最近邻规则

           对于测试样本点x,在样本集合Dn中距离它最近的样本点记为x’,那么最近邻规则的分类方法就是把点x分为x’所属的类别,最近邻规则是次优的方法,通常误差率比最小可能误差率(即贝叶斯误差率)要大,然而在无限训练样本情况下这个误差率不会超过贝叶斯误差率的两倍。

           感性地理解,注意赋予最近邻点的标记θ是一个随机变量,θ=wi的概率无非就是后验概率P(wi|x’),当样本个数非常大的时候,有理由认为x’距离x足够近,使得P(wi|x’)~=P(wi|x),因为这恰好是状态位于wi的概率,因此最近邻规则自然是真是概率的一个有效近似。应用时可以根据样本点x将特征空间分成一个个小的Voronoi网格。

           k近邻规则:这个规则时最近邻规则的推广,即将一个测试数据点x分类为与它最接近的k个近邻中出现最多的那个类别。

           为了降低最近邻规则搜索的复杂度,通常有3种方法:

    (1)计算部分距离,只使用全体d个维数的一个子集r,相当于预先假设了从子集r中计算得到的部分距离足以有效地代表全部空间的情况;

    (2)预建立结构,首先建立某种形式的搜索树,在这个搜索树上各个原型样本点都被有选择的互相连接,分类时限对搜索树的几个根节点进行计算选择最有可能的那个,然后对属于这个根节点的其他样本点进行计算,依次递归的执行类似操作直到找到最近的那个近邻,该方法不能保证找到的结果就是真正的最近邻,但为了降低计算复杂度不得不在准确率上付出一定的代价;

    (3)对训练样本加以剪辑,在训练过程中有选择的消去那些对于问题来说无用的训练样本,称为剪辑、修剪、剪枝或浓缩,一个简单方法时把周围都是同一类别的样本点删除,该方法不改变判决边界因此也不增加误差率同时又减少了访问次数。

     

    6、距离度量和最近邻分类

    (1)欧几里得距离

    (2)Minkowski距离/Lk范数

           欧几里得距离是L2范数,L1范数也称为Manhattan距离或街区距离,L∞范数表示投影距离中的最大值

    (3)Tanimoto距离

                                                            D(S1,S2)=(n1+n2-2n12)/(n1+n2-n12)

          其中n1和n2分别是集合S1和S2的元素个数,n12是这两个集合的交集中的元素个数。

    (4)切空间距离

          在最近邻规则中,如果不加考虑的任意选择距离度量会有很多问题,解决的一个办法是使用更加一般化的度量,其中一个重要问题是不变量问题,需要找到对一些已知的变换如平移、旋转和尺度变换等不敏感的距离度量。

          切空间距离分类器使用一个全新的距离度量和一个可以近似任意变换的线性逼近;假设已经知道所需处理的问题会涉及r种变换,如水平平移、垂直平移、剪切、旋转、尺度变换和线条细化等;

          对每个原型样本点x’都进行每一种变换操作Fi(x’,ai),表示图像x’经过参数ai的某种变换得到新的图像,如经过角度为ai的旋转变换得到新的图像;

          对每一种变换操作,都构造一个切向量TVi=Fi(x’,ai)-x’;

          在对测试点x进行分类时,通过寻找使得测试点x到样本点x’的切空间距离Dtan(x’,x)最优化的那个a来得到测试点x到x’的切空间距离。

    展开全文
  • 将基于树冠高度模型(CHM)的ITD应用于林下树木,而将基于最近邻(NN)归因的ABA应用于林下树木。 我们的方法旨在弥补LiDAR数据和ITD在估算林木中的弱点,同时保持ITD在估算树级上的林木中的优势。 我们调查了三个...
  • 该文档详细介绍了非参数估计的方法,即直接用已知类别样本去估计总体密度分布的方法,包括概率密度估计,Parzen窗估计,Kn-近邻估计,最近邻规则,并介绍了一些改进的近邻估计法,是十分有启发性的讲义。
  • 本实验的目的是学习Parzen窗估计和k最近邻估计方法。在之前的模式识别研究中,我们假设概率密度函数的参数形式已知,即判别函数J(.)的参数是已知的。本节使用非参数化的方法来处理任意形式的概率分布而不必事先考虑...

    本实验的目的是学习Parzen窗估计和k最近邻估计方法。在之前的模式识别研究中,我们假设概率密度函数的参数形式已知,即判别函数J(.)的参数是已知的。本节使用非参数化的方法来处理任意形式的概率分布而不必事先考虑概率密度的参数形式。在模式识别中有躲在令人感兴趣的非参数化方法,Parzen窗估计和k最近邻估计就是两种经典的估计法。

    参考书籍:《模式分类》 
    作者:RichardO.Duda,PeterE.Hart,DavidG.Stork

    一、基本原理

    1.非参数化概率密度的估计

    对于未知概率密度函数的估计方法,其核心思想是:一个向量x落在区域R中的概率可表示为:

    这里写图片描述

    其中,P是概率密度函数p(x)的平滑版本,因此可以通过计算P来估计概率密度函数p(x),假设n个样本x1,x2,…,xn,是根据概率密度函数p(x)独立同分布的抽取得到,这样,有k个样本落在区域R中的概率服从以下分布:

    这里写图片描述

    其中k的期望值为:

    这里写图片描述

    k的分布在均值附近有着非常显著的波峰,因此若样本个数n足够大时,使用k/n作为概率P的一个估计将非常准确。假设p(x)是连续的,且区域R足够小,则有:

    这里写图片描述

    如下图所示,以上公式产生一个特定值的相对概率,当n趋近于无穷大时,曲线的形状逼近一个δ函数,该函数即是真实的概率。公式中的V是区域R所包含的体积。综上所述,可以得到关于概率密度函数p(x)的估计为:

    这里写图片描述

    这里写图片描述

    在实际中,为了估计x处的概率密度函数,需要构造包含点x的区域R1,R2,…,Rn。第一个区域使用1个样本,第二个区域使用2个样本,以此类推。记Vn为Rn的体积。kn为落在区间Rn中的样本个数,而pn (x)表示为对p(x)的第n次估计:

    这里写图片描述

    欲满足pn(x)收敛:pn(x)→p(x),需要满足以下三个条件:

    这里写图片描述

    有两种经常采用的获得这种区域序列的途径,如下图所示。其中“Parzen窗方法”就是根据某一个确定的体积函数,比如Vn=1/√n来逐渐收缩一个给定的初始区间。这就要求随机变量kn和kn/n能够保证pn (x)能收敛到p(x)。第二种“k-近邻法”则是先确定kn为n的某个函数,如kn=√n。这样,体积需要逐渐生长,直到最后能包含进x的kn个相邻点。

    这里写图片描述

    2.Parzen窗估计法

    已知测试样本数据x1,x2,…,xn,在不利用有关数据分布的先验知识,对数据分布不附加任何假定的前提下,假设R是以x为中心的超立方体,h为这个超立方体的边长,对于二维情况,方形中有面积V=h^2,在三维情况中立方体体积V=h^3,如下图所示。

    这里写图片描述

    根据以下公式,表示x是否落入超立方体区域中:

    这里写图片描述

    估计它的概率分布:

    这里写图片描述

    其中n为样本数量,h为选择的窗的长度,φ(.)为核函数,通常采用矩形窗和高斯窗。

    3.k最近邻估计

    在Parzen算法中,窗函数的选择往往是个需要权衡的问题,k-最近邻算法提供了一种解决方法,是一种非常经典的非参数估计法。基本思路是:已知训练样本数据x1,x2,…,xn而估计p(x),以点x为中心,不断扩大体积Vn,直到区域内包含k个样本点为止,其中k是关于n的某一个特定函数,这些样本被称为点x的k个最近邻点。

    当涉及到邻点时,通常需要计算观测点间的距离或其他的相似性度量,这些度量能够根据自变量得出。这里我们选用最常见的距离度量方法:欧几里德距离。

    最简单的情况是当k=1的情况,这时我们发现观测点就是最近的(最近邻)。一个显著的事实是:这是简单的、直观的、有力的分类方法,尤其当我们的训练集中观测点的数目n很大的时候。可以证明,k最近邻估计的误分概率不高于当知道每个类的精确概率密度函数时误分概率的两倍。

    二、实验基本步骤

    这里写图片描述

    第一部分,对表格中的数据,进行Parzen 窗估计和设计分类器,本实验的窗函数为一个球形的高斯函数,如下:

    这里写图片描述

    1) 编写程序,使用Parzen 窗估计方法对一个任意的测试样本点x 进行分类。对分类器的训练则使用表格 3中的三维数据。同时,令h =1,分类样本点为(0.5,1.0,0.0),(0.31,1.51,-0.50),(-0.3,0.44,-0.1)进行实验。

    2) 可以改变h的值,不同的h将导致不同的概率密度曲线,如下图所示。

    h=0.1时:

    这里写图片描述

    h=0.5时:

    这里写图片描述

    h=1时:

    这里写图片描述

    第二部分的实验目的是学习和掌握非参数估计:k-近邻概率密度估计方法。对前面表格中的数据进行k-近邻概率密度估计方法和设计分类器。

    编写程序,对表格中的3个类别的三维特征,使用k-近邻概率密度估计方法。并且对下列点处的概率密度进行估计:(-0.41,0.82,0.88),(0.14,0.72, 4.1) ,(-0.81,0.61,-0.38)。

    这里写图片描述

    实验代码如下:

    % Parzen窗算法
    % w:c类训练样本
    % x:测试样本
    % h:参数
    % 输出p:测试样本x落在每个类的概率
    function p = Parzen(w,x,h)
    
    [xt,yt,zt] = size(w);
    
    p = zeros(1,zt);
    
    for i = 1:zt
        hn = h;
        for j = 1:xt
            hn = hn / sqrt(j);
            p(i) = p(i) + exp(-(x - w(j,:,i))*(x - w(j,:,i))'/ (2 * power(hn,2))) / (hn * sqrt(2*3.14));
        end
        p(i) = p(i) / xt;
    end
    
    % k-最近邻算法
    % w:c类训练样本
    % x:测试样本
    % k:参数
    function p = kNearestNeighbor(w,k,x)
    
    % w = [w(:,:,1);w(:,:,2);w(:,:,3)];
    
    [xt,yt,zt] = size(w);
    
    wt = [];%zeros(xt*zt, yt);
    
    if nargin==2
    p = zeros(1,zt);
        for i = 1:xt
            for j = 1:xt
            dist(j,i) = norm(wt(i,:) - wt(j,:));
            end
            t(:,i) = sort(dist(:,i));
            m(:,i) = find(dist(:,i) <= t(k+1,i)); % 找到k个最近邻的编号
        end
    end  
    
    if nargin==3
        for q = 1:zt
        wt = [wt; w(:,:,q)];
        [xt,yt] = size(wt);
        end
            for i = 1:xt
            dist(i) = norm(x - wt(i,:));
            end
            t = sort(dist); % 欧氏距离排序
            [a,b] = size(t);
    
            m = find(dist <= t(k+1)); % 找到k个最近邻的编号
    
            num1 = length(find(m>0 & m<11));
            num2 = length(find(m>10 & m<21));
            num3 = length(find(m>20 & m<31));
    if yt == 3
            plot3(w(:,1,1),w(:,2,1),w(:,3,1), 'r.');
            hold on;
            grid on;
            plot3(w(:,1,2),w(:,2,2),w(:,3,2), 'g.');
            plot3(w(:,1,3),w(:,2,3),w(:,3,3), 'b.');
    
    if (num1 > num2) || (num1 > num3)
        plot3(x(1,1),x(1,2),x(1,3), 'ro');
        disp(['点:[',num2str(x),']属于第一类']);
    elseif (num2 > num1) || (num2 > num3)
        plot3(x(1,1),x(1,2),x(1,3), 'go');
        disp(['点:[',num2str(x),']属于第二类']);
    elseif (num3 > num1) || (num3 > num2)
        plot3(x(1,1),x(1,2),x(1,3), 'bo');
        disp(['点:[',num2str(x),']属于第三类']);
    else
        disp('无法分类');
    end
    end
    
    if yt == 2
            plot(w(:,1,1),w(:,2,1), 'r.');
            hold on;
            grid on;
            plot(w(:,1,2),w(:,2,2), 'g.');
            plot(w(:,1,3),w(:,2,3), 'b.');
    
    if (num1 > num2) || (num1 > num3)
        plot(x(1,1),x(1,2), 'ro');
        disp(['点:[',num2str(x),']属于第一类']);
    elseif (num2 > num1) || (num2 > num3)
        plot(x(1,1),x(1,2), 'go');
        disp(['点:[',num2str(x),']属于第二类']);
    elseif (num3 > num1) || (num3 > num2)
        plot(x(1,1),x(1,2), 'bo');
        disp(['点:[',num2str(x),']属于第三类']);
    else
        disp('无法分类');
    end
    end
    
    end
    title('k-最近邻分类器');
    legend('第一类数据',...
           '第二类数据',...
           '第三类数据',...
           '测试样本点');
    
    clear;
    close all;
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    % Parzen窗估计和k最近邻估计
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    w1(:,:,1) = [ 0.28  1.31  -6.2;...
                 0.07  0.58  -0.78;...
                 1.54  2.01  -1.63;...
                -0.44  1.18  -4.32;...
                -0.81  0.21   5.73;...
                 1.52  3.16   2.77;...
                 2.20  2.42  -0.19;...
                 0.91  1.94   6.21;...
                 0.65  1.93   4.38;...
                -0.26  0.82  -0.96];
    
    w1(:,:,2) = [0.011  1.03  -0.21;...
                 1.27  1.28   0.08;...
                 0.13  3.12   0.16;...
                -0.21  1.23  -0.11;...
                -2.18  1.39  -0.19;...
                 0.34  1.96  -0.16;...
                -1.38  0.94   0.45;...
                -0.12  0.82   0.17;...
                -1.44  2.31   0.14;...
                 0.26  1.94   0.08];
    
    w1(:,:,3) = [ 1.36  2.17  0.14;...
                 1.41  1.45 -0.38;...
                 1.22  0.99  0.69;...
                 2.46  2.19  1.31;...
                 0.68  0.79  0.87;...
                 2.51  3.22  1.35;...
                 0.60  2.44  0.92;...
                 0.64  0.13  0.97;...
                 0.85  0.58  0.99;...
                 0.66  0.51  0.88];
    
    x(1,:) = [0.5 1 0];
    x(2,:) = [0.31 1.51 -0.5];
    x(3,:) = [-0.3 0.44 -0.1];
    
    % 验证h的二维数据
    w2(:,:,1) = [ 0.28  1.31  ;...
                 0.07  0.58  ;...
                 1.54  2.01  ;...
                -0.44  1.18  ;...
                -0.81  0.21  ;...
                 1.52  3.16  ;...
                 2.20  2.42  ;...
                 0.91  1.94  ;...
                 0.65  1.93  ;...
                -0.26  0.82  ];
    
    w2(:,:,2) = [0.011  1.03 ;...
                 1.27  1.28  ;...
                 0.13  3.12  ;...
                -0.21  1.23  ;...
                -2.18  1.39  ;...
                 0.34  1.96  ;...
                -1.38  0.94  ;...
                -0.12  0.82  ;...
                -1.44  2.31  ;...
                 0.26  1.94  ];
    
    w2(:,:,3) = [1.36  2.17 ;...
                 1.41  1.45 ;...
                 1.22  0.99 ;...
                 2.46  2.19 ;...
                 0.68  0.79 ;...
                 2.51  3.22 ;...
                 0.60  2.44 ;...
                 0.64  0.13 ;...
                 0.85  0.58 ;...
                 0.66  0.51 ];
    
    y(1,:) = [0.5 1];
    y(2,:) = [0.31 1.51];
    y(3,:) = [-0.3 0.44];
    
    h = .1; % 重要参数
    
    p = Parzen(w1,x(1,:),h);
    num = find(p == max(p));
    disp(['点:[',num2str(x(1,:)),']落在三个类别的概率分别为:',num2str(p)]);
    disp(['点:[',num2str(x(1,:)),']落在第',num2str(num),'类']);
    
    % 给定三类二维样本,画出二维正态概率密度曲面图验证h的作用
    num =1; % 第num类的二维正态概率密度曲面图,取值为123
    draw(w2,h,num); 
    str1='当h=';str2=num2str(h);str3='时的二维正态概率密度曲面';
    SC = [str1,str2,str3];
    title(SC);
    
    % k近邻算法设计的分类器
    % x1和y1为测试样本
    x1 = [-0.41,0.82,0.88];
    x2 = [0.14,0.72, 4.1];
    x3 = [-0.81,0.61,-0.38];
    y(1,:) = [0.5 1];
    y(2,:) = [0.31 1.51];
    y(3,:) = [-0.3 0.44];
    w = w1;
    %w = w1(:,1,3);
    k = 5;
    kNearestNeighbor(w,k,x1);
    kNearestNeighbor(w,k,x2);
    kNearestNeighbor(w,k,x3);
    展开全文
  •  本实验的目的是学习Parzen窗估计和k最近邻估计方法。在之前的模式识别研究中,我们假设概率密度函数的参数形式已知,即判别函数J(.)的参数是已知的。本节使用非参数化的方法来处理任意形式的概率分布而不必事先...
  • 【目标跟踪】基于Meanshift的目标...而无参密度估计对先验知识要求少,完全依靠训练数据进行估计,并且可以用于任意形状的密度估计,常用的无参密度估计方法有:直方图法、最近邻法和核密度估计法。 算法流程 实验...
  • 聚类——MeanShift算法以及Python实现

    千次阅读 2018-05-05 21:36:08
    均值漂移算法(MeanShift)是一种旨在发现团...估计某点的密度时,核密度估计方法会考虑该点邻近区域的样本点的影响,邻近区域大小由带宽h决定,该参数对最终密度估计的影响非常大。通常采用高斯核:N(x)=12π−−√h...
  • KNN算法

    2015-11-30 15:09:08
    K最近邻密度估计是一种分类方法,不是聚类方法 规则: 1、计算待分类数据和不同类中每一个数据的距离(欧式或马氏) (1)欧式距离为在m维空间中两点的真实距离: distance=(∑ni=1x2i1−x2i2)−−−−−−−−...
  • 用K- 最近邻密度估计方法获得数据对象的局部信息, 并在图中迭代地传播, 以产生数据对象的优先级; 最后以该 优先级为导向从图中搜索聚类结果. 实验结果表明, 该算法适合处理高维、密度分布不均匀的数据.</p>
  • 2 最大似然估计与贝叶斯估计的不同(作业) 3 对于c类问题,假定各类条件概率密度函数均为多元正态分布。在最小错误率贝叶斯决策框架下,在什么情况下可以得到线性判别函数...(2) 最近邻的一道计算题,类似这道(作业)
  • sklearn系列——目录

    2020-03-12 20:44:32
    最近邻 高斯过程 交叉分解 朴素贝叶斯 决策树 集成方法 多类和多标签算法 特征选择 半监督学习 等式回归 概率校准 神经网络模型(有监督) 无监督学习 高斯混合模型 流形学习 聚类 双聚类 分解成分中的信号(矩阵...
  • 机器学习

    2020-09-19 17:20:32
    密度估计 在此使用监督学习和分类方法, 利用算法: Opencv的StatModel类中实现了这八种算法 支持向量机(SVM) 人工神经网路 期望最大化 逻辑回归 k - 最近邻 决策树 随机梯度下降SVM 朴素贝叶斯分类器 深度学习 ...
  • sklearn0.19中文文档

    2018-10-30 15:03:21
    1.4.3. 密度估计, 异常(novelty)检测 1.4.4. 复杂度 1.4.5. 使用诀窍 1.4.6. 核函数 1.4.6.1. 自定义核 1.4.6.1.1. 使用 python 函数作为内核 1.4.6.1.2. 使用 Gram 矩阵 1.4.6.1.3. RBF 内核参数 1.4.7. 数学公式...
  • 4.6距离度量和最近邻分类 4.7模糊分类 4.8RCE网络 本章小结 文献和历史评述 习题 上机练习 参考文献 -------------------------- 第五章线性判别函数 5.1引言 5.2线性判别函数和判定画 5.3广义线性判...
  • 4.6距离度量和最近邻分类 4.7模糊分类 4.8RCE网络 本章小结 文献和历史评述 习题 上机练习 参考文献 -------------------------- 第五章线性判别函数 5.1引言 5.2线性判别函数和判定画 5.3广义线性判...
  • 5.2.2 最近邻分类器的特征 138 5.3 贝叶斯分类器 139 5.3.1 贝叶斯定理 139 5.3.2 贝叶斯定理在分类中的应用 140 5.3.3 朴素贝叶斯分类器 141 5.3.4 贝叶斯误差率 145 5.3.5 贝叶斯信念网络 147 5.4 人工...
  • 基于贝叶斯决策理论的分类器 2.1 引言 2.2 贝叶斯决策理论 2.3 判别函数和决策面 2.4 正态分布的贝叶斯分类 2.5 未知概率密度函数的估计 2.6 最近邻规则 2.7 贝叶斯网络 习题 MATLAB编程和练习 参考文献 第3章 线性...
  • 1.6. 最近邻 1.7. 高斯过程 1.8. 交叉分解 1.9. 朴素贝叶斯 1.10. 决策树 1.11. 集成方法 1.12. 多类和多标签算法 1.13. 特征选择 1.14. 半监督学习 1.15. 等式回归 1.16. 概率校准 1.17. 神经网络模型(有监督) ...
  • 1.6. 最近邻 1.7. 高斯过程 1.8. 交叉分解 1.9. 朴素贝叶斯 1.10. 决策树 1.11. 集成方法 1.12. 多类和多标签算法 1.13. 特征选择 1.14. 半监督学习 1.15. 等式回归 1.16. 概率校准 1.17. 神经网络模型(有监督) ...
  • Classification DataMining_KNN KNN-k最近邻算法工具类 Classification DataMining_NaiveBayes NaiveBayes-朴素贝叶斯算法 Clustering DataMining_BIRCH BIRCH-层次聚类算法 Clustering DataMining_KMeans KMeans-K...

空空如也

空空如也

1 2
收藏数 23
精华内容 9
关键字:

最近邻密度估计方法