精华内容
下载资源
问答
  • 数理统计:鸢尾花数据的聚类分析判别分析
    千次阅读
    2021-01-11 11:44:08

    鸢尾花数据的聚类分析和判别分析


    摘要:本文基于鸢尾花数据的公开数据集,根据鸢尾花的萼片长度和宽度,花瓣的长度和宽度,对鸢尾花的类别归属进行聚类分析和判别分析。本文使用 R 语言,对鸢尾花的种类进行了聚类分析,并分别使用三种判别分析方法,距离判别法、Bayes 判别法和 Fisher 判别法对鸢尾花的种类归属进行了判别分析。在讨论中,对三个判别模型的判别效果进行了评价,最后使用三个判别模型根据鸢尾花的属性对其类别归属进行了预测。

    关键字:聚类分析,距离判别,Bayes 判别,Fisher 判别,分类


    引言

    鸢尾花有很多种类,有时肉眼也难以辨别,需要专业的知识才能对其所属的种类进行判断。因此研究鸢尾花的分类,根据鸢尾花的某些属性,建立有效的数学模型,对鸢尾花的种类进行分类就显得十分重要。

    本文使用鸢尾花的公开数据集,其使用了鸢尾花的萼片长度和宽度,花瓣的长度和宽度等属性,作为鸢尾花种类归属的判别依据。在数据集中,共包含三个种类的鸢尾花,其中每个种类的鸢尾花包含50条数据。在本文的研究和分析中,从各个种类的鸢尾花中选取150条数据进行模型的建立和分析,并使用全部的训练数据进行鸢尾花的种类的分类预测,从而对模型的正确性进行分析。

    在现实问题中,对分类问题的分析可以大致分为两类:聚类分析和判别分析。这两者有一个明显的区别,那就是聚类分析是无监督分类,而判别分析是监督分类。判别分析的前提是类别已确定,由已确定的类别及相关数据来拟合模型,从而用模型去预测某一样本点所属的类别。但是聚类分析是对样本进行分类,在聚类分析之前是不知道关于类别的相关信息的,通过模型的拟合去给数据分类,这样我们会对数据有一个整体的印象。当然可以根据聚类的结果来预测新样本点所属的类别,但是判别分析往往可以得到比聚类分析更加精细的分类结果。

    在本文的研究中,首先使用聚类分析对数据的整体分类情况有一个大致的了解,后使用三种判别分析方法对数据的分类进行分析。

    另外,根据判别总体的数目,判别分析可以分为两个总体的判别分析,和多个总体的判别分析。在本文的研究中,共有三个鸢尾花的类别,所以属于多个总体的判别分析。

    聚类分析

    对研究对象进行适当的分类,进而发现其规律性,是人们认识世界的一种基本方法。研究怎样对事物进行合理分类的统计方法称为聚类分析。依据分类对象的不同,可以把聚类分析分为Q型聚类和R型聚类。其中Q型聚类是指对样本进行聚类,R型聚类是指对变量进行聚类。

    聚类分析的基本原理是将某种性质相似的对象归于同一类,而不同的类之间则存在较大的差异。为此,首先需要能刻画各个变量之间或者各个样本之间的相似性,Q型聚类一般使用"距离"度量样本点之间的相似性,R型聚类一般使用"相似系数"作为变量相似性的度量。而定义样本点之间的距离可以采用欧式距离、Minkowski 距离、马氏距离、Lance 距离等测度,定义各变量之间的相似系数则可以采用样本相关系数、夹角余弦等测度。

    系统聚类法是最常用的一种聚类方法。初始时先把要归类的n个对象各自视为一类,然后逐渐把关系最密切的两个类合并成一个新类,直到最后把n个对象都归为一类时停止。

    在本文的聚类分析中,使用系统聚类方法进行聚类分析。

    判别分析

    设样本x可能来自于m个总体,根据样本x的观察值判定其归属,这种统计方法称为判别分析。

    距离判别法

    距离判别的基本原理是:首先对样本到总体之间的距离进行合理规定,然后依据就近的原则判定样本的归属。为此,首先需要定义合理的距离概念。

    最简单的距离定义欧氏距离,其定义如下:

    d ( x , y ) = ∑ i = 1 n ( x i − y y ) 2 (1) d(x, y) = \sqrt{\sum^n_{i=1}(x_i-y_y)^2} \tag{1} d(x,y)=i=1n(xiyy)2 (1)

    但是欧式距离有两个缺点:

    (1)各项指标的量纲不同时,其平方和的意义不明。

    (2)x与y之间的距离会因各项指标标度单位的变化而变化。

    为了克服欧式距离的上述缺陷,可进行无量纲化,由此引入马氏距离,其定义如下:

    d ( x , y ) = ( x − y ) ′ Σ − 1 ( x − y ) (2) d(x, y) = \sqrt{(x-y)^{'}Σ^{-1}(x-y)} \tag{2} d(x,y)=(xy)Σ1(xy) (2)

    马氏距离有以下三个特点:

    (1)当 Σ = I p Σ=I_p Σ=Ip,即总体x的各项指标相互独立且方差相同时,马氏距离即为欧氏距离。

    (2)马氏距离是将x和y经过标准化后的欧式距离。

    (3)马氏距离不受变量的量纲的影响,是一个无量纲的量。

    在实际应用中,总体均值及协方差矩阵一般都是未知的,可以使用样本均值和样本协方差矩阵作为其估计。样本均值和样本协方差矩阵的无偏估计为:

    μ ^ j = 1 n j ∑ i = 1 n x i j , Σ ^ j = 1 n j − 1 ∑ i = 1 n ( x i j − x ‾ ) ( x i j − x ‾ ) ′ (3) \hat μ_j = \frac{1}{n_j} \sum^n_{i=1}x_{ij}, \hat Σ_j = \frac{1}{n_j-1} \sum^n_{i=1}(x_{ij}-\overline x)(x_{ij}-\overline x)^{'} \tag{3} μ^j=nj1i=1nxij,Σ^j=nj11i=1n(xijx)(xijx)(3)

    Bayes 判别法

    距离判别法易于理解,计算简单,且可以不涉及总体的分布类型,因此适用面很广。但是这种方法的不足,在于未考虑各个总体各自出现概率的大小,同时也未涉及错判所造成损失的影响。

    在实际情况中,在判断一个样品的归属时,既要考虑各个总体出现的概率大小,还需考虑错判所造成的损失影响。基于以上考虑,提出了一种使用先验概率和损失函数的判别方法,即 Bayes 判别法。

    设有m个总体 G 1 , G 2 , … … , G m G_1, G_2, ……, G_m G1,G2,,Gm,他们的密度函数 f 1 ( x ) , f 2 ( x ) , … … , f m ( x ) f_1(x), f_2(x), ……, f_m(x) f1(x),f2(x),,fm(x)是互不相同的。并且,假设m个总体各自发生的概率分别为 q 1 , q 2 , … … , q m q_1, q_2, ……, q_m q1,q2,,qm,称其为先验概率。

    用 C(j|i) 表示将本来属于总体 G i G_i Gi的样品x错判为属于总体 G j G_j Gj造成的损失,且由于正确判断时无损失,即 C(i|i)=0。

    对于判别规则,可以看做是对欧式空间的一个划分,即为 R 1 , R 2 , … … , R m R_1, R_2, ……, R_m R1,R2,,Rm,且满足任意两个划分的交集为空集,所有划分的并集为全集,将判别规则简记为 R = ( R 1 , R 2 , … … , R m ) R=(R_1, R_2, ……, R_m) R=(R1,R2,,Rm)

    错判概率可表示为:

    P ( j ∣ i , R ) = ∫ R j f i ( x ) d x , i ≠ j , i , j = 1 , 2 , … … , m (4) P(j|i, R) = \int_{R_j}f_i(x)dx, i ≠ j, i,j = 1,2,……,m \tag{4} P(ji,R)=Rjfi(x)dx,i=j,i,j=1,2,,m(4)

    由m个总体的先验概率,通过判别规则R进行判别可能造成的总平均错判损失为:

    E C M ( R ) = ∑ i = 1 m q i ∑ j = 1 m C ( j ∣ i ) P ( j ∣ i , R ) (5) ECM(R) = \sum^m_{i=1}q_i \sum^m_{j=1} C(j|i) P(j|i, R) \tag{5} ECM(R)=i=1mqij=1mC(ji)P(ji,R)(5)

    其中 ECM 为 Expected Cost of Misclassification,平均判别代价的缩写。

    使 ECM 损失最小的判别规则,即为 Bayes 判别规则。

    Fisher 判别法

    在距离判别分析和 Bayes 判别分析中,若两个总体服从协方差阵相同的正态分布,则可以导出线性判别函数。对一般的总体,也可以导出类似的线性判别函数,Fisher 判别分析就是这样一种利用投影,借助方差分析思想来导出判别函数的方法。Fisher 判别实际上也是一种降维处理方法。

    设有m个总体 G 1 , G 2 , … … , G m G_1, G_2, ……, G_m G1,G2,,Gm,其相应的总体均值和协方差阵分别为 μ 1 , μ 2 , … … , μ m μ_1, μ_2, ……, μ_m μ1,μ2,,μm Σ 1 , Σ 2 , … … , Σ m Σ_1, Σ_2, ……, Σ_m Σ1,Σ2,,Σm。考虑x的线性函数 y = a ′ x y=a^{'}x y=ax,其中a是待定向量。在几何上,可以将y看成是x在向量a方向上的投影,通过对y的判别,即可实现对x的分类。

    在方差分析中,其基本思想是将所有数据的总离差平方和分解成组内平方和和组间平方和,使用两者的比值大小来衡量总体间的差异大小。令:

    B 0 = a ′ [ ∑ i = 1 m ( μ i − μ ‾ ) ( μ i − μ ‾ ) ′ ] a = a ′ B a (6) B_0 = a^{'}[\sum^m_{i=1} (μ_i-\overline μ) (μ_i-\overline μ)^{'}]a = a^{'}Ba \tag{6} B0=a[i=1m(μiμ)(μiμ)]a=aBa(6)

    E 0 = a ′ ( ∑ i = 1 m Σ i ) a = a ′ E a (7) E_0 = a^{'}(\sum^m_{i=1} Σ_i)a = a^{'}Ea \tag{7} E0=a(i=1mΣi)a=aEa(7)

    其中 B 0 B_0 B0为组间平方和, E 0 E_0 E0为组内平方和。为了使判别函数 y = a ′ x y=a^{'}x y=ax能较好地判别样品x归属,应选择a尽可能地将各个总体区分开来,使组间平方和尽可能地大,组内平方和尽可能地小,即选取a使两者的比值达到极大。

    φ ( a ) = B 0 E 0 = a ′ B a a ′ E a (8) φ(a) = \frac{B_0}{E_0} = \frac{a^{'}Ba}{a^{'}Ea} \tag{8} φ(a)=E0B0=aEaaBa(8)

    由于使式(8)达到极大的a值不唯一,可加约束条件 a ′ E a = 1 a^{'}Ea=1 aEa=1,即转化为在约束条件 a ′ E a = 1 a^{'}Ea=1 aEa=1下,求a使 φ ( a ) = a ′ B a φ(a) = a^{'}Ba φ(a)=aBa,达到极大,求解带约束条件极值问题常用的是 Lagrange 乘数法。

    求得,λ是 E − 1 B E^{-1}B E1B的最大特征值,所对应的特征向量为α,则 α ′ E α = 1 α^{'}Eα = 1 αEα=1,且 m a x α ′ E α = 1 a ′ B a = α ′ B α = λ max_{α^{'}Eα = 1} a^{'}Ba = α^{'}Bα = λ maxαEα=1aBa=αBα=λ,则判别函数为 y = α ′ x y = α^{'}x y=αx.

    其中最大特征值的判别函数为第一判别函数,如果只使用第一判别函数还不能很好地区分各个总体,还可以使用第二大特征值建立第二判别函数,依次类推。

    此时,使用r个非零特征值,将原始数据x映射到互不相关的变量 y 1 , y 2 , … … , y r y_1, y_2, ……,y_r y1,y2,,yr来进行判别分析,即相当于把原始数据x的指标压缩成r维指标来进行判别。

    逐步判别法

    在实际问题中,很难确定哪些指标对于判别分析是主要的,哪些是次要的。考虑的指标过多,会引起计算量过大,而且很多对判别作用较小的指标会干扰视线、模糊认识。而考虑的指标过少,会使判别效果不好。因此,对有关指标变量进行适当筛选是一种很好的处理方法。

    具有筛选变量能力的判别法统称为逐步判别法,在本文的实验和分析中未曾实验,故不再赘述。

    判别效果的评价

    一旦建立了判别法,就要对判别效果进行合理评价。一个好的判别方法,其错判概率应当很小,因此可以用错判概率作为衡量判别法优劣性的标准。以下介绍三种基于错判概率的判别方法,这些方法既不依赖于总体分布,又适合于任何判别法。

    方法一:回报法。首先根据两个训练样本建立判别规则,然后对两个训练样本集中的样本逐个进行回报判别。回报法直观且容易计算,但是它往往低估错判概率,除非样本量很大。其根本原因是建立判别法和评价判别法使用的是同一样本。

    方法二:交叉验证法。为了克服建立和评价判别法使用同一样本的缺陷,可将样本分成训练样本和验证样本。训练样本用于建立判别法,验证样本用于评价判别法。交叉验证法优于回报法,但是仍存在三个缺陷:(1)要求样本容量很大;(2)训练样本和验证样本的选择有很大的不确定性;(3)因为建立判别规则只使用了部分样本信息,所以有可能漏掉重要信息。

    方法三:刀切法。每次剔除一个训练样本进行判别模型的建立,之后使用建立的判别规则对剔除的样本进行判别,重复上述过程直到对每个样本都进行了判别。这个方法优于回报法和交叉验证法,但是运算量较大。

    在本文的研究和分析中,使用刀切法,最每个样本的正确性都进行了分类判别和预测。

    判别法的优劣除了用错判概率来衡量外,在相当程度上还依赖于所考虑的两个总体之间的分离程度。直观上,两个总体离得越远,就越有可能建立有效的判别法。其中 Fisher 判别法就是基于最大分离原则的一种判别分析方法。


    解决问题的方法和计算结果

    聚类分析

    在对鸢尾花数据集进行判别分析之前,先对数据集的整体进行聚类分析,对数据有一个整体的印象,首先加载 iris 数据集,观察数据集的结构,代码如下:

    > # 导入数据
    > attach(iris)
    > # 查看数据结构
    > str(iris)
    'data.frame':	150 obs. of  5 variables:
     $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
     $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
     $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
     $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
     $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
    > 
    

    可以看到,鸢尾花数据集中共包含150个样本数据,每条样本包含5个数据,分别为鸢尾花的萼片长度和宽度,花瓣的长度和宽度,和鸢尾花的种类。

    首先对数据进行简单的分析,计算均值和标准差,而聚类分析为无监督分类,所以需要事先剔除分类属性,其代码如下:

    > # 首先剔除标签数据
    > data <- iris[, -5]
    > # 然后计算均值和标准差
    > mean <- sapply(data, mean)
    > sd <- sapply(data, sd)
    > mean
    Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
        5.843333     3.057333     3.758000     1.199333 
    > sd
    Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
       0.8280661    0.4358663    1.7652982    0.7622377 
    > 
    

    之后使用层次聚类方法,对鸢尾花数据集进行聚类分析,由于欧式距离的量纲影响,需要先使用均值和方差对数据进行标准化,其代码如下:

    # 将数据进行标准化
    scaledata <- scale(data, center=mean, scale=sd)
    # 计算欧式距离
    dist <- dist(scaledata, method="euclidean")
    # 使用 Ward 方法层次聚类
    clustemodel <- hclust(dist, method='ward.D')
    # 绘制层次聚类图
    plot(clustemodel)
    

    绘制出的层次聚类图如下:

    在这里插入图片描述

    在上图的层次聚类图中可以看出,鸢尾花的种类可以大致分为三部分。

    判别分析和预测验证

    下面使用三种判别分析方法,分别对鸢尾花的种类进行判别分析。

    距离判别法

    距离判别法需要使用 R 语言的 wmd() 函数,首先需要加载 WMDB 库,其代码如下:

    > install.packages("WMDB")
    试开URL’https://cran.rstudio.com/bin/macosx/contrib/4.0/WMDB_1.0.tgz'
    Content type 'application/x-gzip' length 25581 bytes (24 KB)
    ==================================================
    downloaded 24 KB
    
    
    The downloaded binary packages are in
    	/var/folders/hh/4qjnrh952nxd77kzd0b4dv2m0000gn/T//RtmpmztD7B/downloaded_packages
    > 
    > library(WMDB)
    > 
    

    将 iris 数据集分为数据和标签两部分,调用 wmd() 函数进行距离判别分析,其代码如下:

    > data = iris[, 1:4]
    > data_label = gl(3, 50)
    > wmd(data, data_label)
          1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
    blong 1 1 1 1 1 1 1 1 1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1
          35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
    blong  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2
          66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
    blong  2  2  2  3  2  2  2  3  2  2  2  2  3  2  2  2  2  2  3  2  2  2  2  2  2  2  2  2  2  2  2
          97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
    blong  2  2  2   2   3   3   3   3   3   3   2   3   3   3   3   3   3   3   3   3   3   3   3   3
          121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
    blong   3   3   3   3   3   3   3   3   3   2   3   3   3   2   2   3   3   3   3   3   3   3   3
          144 145 146 147 148 149 150
    blong   3   3   3   3   3   3   3
    [1] "num of wrong judgement"
    [1]  69  73  78  84 107 130 134 135
    [1] "samples divided to"
    [1] 3 3 3 3 2 2 2 2
    [1] "samples actually belongs to"
    [1] 2 2 2 2 3 3 3 3
    Levels: 1 2 3
    [1] "percent of right judgement"
    [1] 0.9466667
    > 
    

    Bayes 判别法

    Bayes 判别法需要使用 R 语言的 NaiveBayes() 函数,首先需要加载 klaR 库,其代码如下:

    > install.packages("klaR")
    also installing the dependencies ‘clipr’, ‘Rcpp’, ‘BH’, ‘assertthat’, ‘fansi’, ‘R.methodsS3’, ‘R.oo’, ‘R.utils’, ‘ellipsis’, ‘pkgconfig’, ‘forcats’, ‘hms’, ‘readr’, ‘tidyselect’, ‘generics’, ‘utf8’, ‘cpp11’, ‘httpuv’, ‘mime’, ‘jsonlite’, ‘xtable’, ‘digest’, ‘R6’, ‘sourcetools’, ‘later’, ‘promises’, ‘crayon’, ‘rlang’, ‘fastmap’, ‘withr’, ‘commonmark’, ‘glue’, ‘backports’, ‘cli’, ‘magrittr’, ‘purrr’, ‘R.cache’, ‘rematch2’, ‘rprojroot’, ‘tibble’, ‘xfun’, ‘e1071’, ‘base64enc’, ‘haven’, ‘dplyr’, ‘lifecycle’, ‘vctrs’, ‘pillar’, ‘tidyr’, ‘shiny’, ‘miniUI’, ‘rstudioapi’, ‘highr’, ‘styler’, ‘classInt’, ‘htmltools’, ‘labelled’, ‘combinat’, ‘questionr’
    
    
      There is a binary version available but the source version is later:
          binary source needs_compilation
    vctrs  0.3.5  0.3.6              TRUE
    
    Do you want to install from sources the package which needs compilation? (Yes/no/cancel) yes
    
    > library("klaR")
    载入需要的程辑包:MASS
    > 
    

    将 iris 数据集分为数据和标签两部分,调用 NaiveBayes() 函数进行距离判别分析,其代码如下:

    > data = iris[, 1:4]
    > data_label = gl(3, 50)
    > bayes <- NaiveBayes(data, data_label)
    > predict(bayes)
    $class
      [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
     [48] 1 1 1 2 2 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 2 2 2 2 2 2 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
     [95] 2 2 2 2 2 2 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3
    [142] 3 3 3 3 3 3 3 3 3
    Levels: 1 2 3
    

    Fisher 判别法

    Fisher 判别法需要使用 R 语言的 lda() 函数,首先需要加载 MASS 库,其代码如下:

    > library(MASS)
    > 
    

    调用 lda() 函数建立统计模型,其代码如下:

    > fisher.mode <- lda(as.formula("Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width"), data=iris)
    > fisher.mode
    Call:
    lda(as.formula("Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width"), 
        data = iris)
    
    Prior probabilities of groups:
        setosa versicolor  virginica 
     0.3333333  0.3333333  0.3333333 
    
    Group means:
               Sepal.Length Sepal.Width Petal.Length Petal.Width
    setosa            5.006       3.428        1.462       0.246
    versicolor        5.936       2.770        4.260       1.326
    virginica         6.588       2.974        5.552       2.026
    
    Coefficients of linear discriminants:
                        LD1         LD2
    Sepal.Length  0.8293776  0.02410215
    Sepal.Width   1.5344731  2.16452123
    Petal.Length -2.2012117 -0.93192121
    Petal.Width  -2.8104603  2.83918785
    
    Proportion of trace:
       LD1    LD2 
    0.9912 0.0088 
    > 
    

    使用 Fisher 模型进行分类标签的预测和验证,其代码如下:

    > pre <- predict(fisher.mode, iris[, -5])
    > 
    > t <- table(pre$class, iris[, 5])
    > sum(diag(t)) / sum(t)
    [1] 0.98
    >
    > pre$class
      [1] setosa     setosa     setosa     setosa     setosa     setosa     setosa     setosa    
      [9] setosa     setosa     setosa     setosa     setosa     setosa     setosa     setosa    
     [17] setosa     setosa     setosa     setosa     setosa     setosa     setosa     setosa    
     [25] setosa     setosa     setosa     setosa     setosa     setosa     setosa     setosa    
     [33] setosa     setosa     setosa     setosa     setosa     setosa     setosa     setosa    
     [41] setosa     setosa     setosa     setosa     setosa     setosa     setosa     setosa    
     [49] setosa     setosa     versicolor versicolor versicolor versicolor versicolor versicolor
     [57] versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor
     [65] versicolor versicolor versicolor versicolor versicolor versicolor virginica  versicolor
     [73] versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor
     [81] versicolor versicolor versicolor virginica  versicolor versicolor versicolor versicolor
     [89] versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor
     [97] versicolor versicolor versicolor versicolor virginica  virginica  virginica  virginica 
    [105] virginica  virginica  virginica  virginica  virginica  virginica  virginica  virginica 
    [113] virginica  virginica  virginica  virginica  virginica  virginica  virginica  virginica 
    [121] virginica  virginica  virginica  virginica  virginica  virginica  virginica  virginica 
    [129] virginica  virginica  virginica  virginica  virginica  versicolor virginica  virginica 
    [137] virginica  virginica  virginica  virginica  virginica  virginica  virginica  virginica 
    [145] virginica  virginica  virginica  virginica  virginica  virginica 
    Levels: setosa versicolor virginica
    > t
                
                 setosa versicolor virginica
      setosa         50          0         0
      versicolor      0         48         1
      virginica       0          2        49
    > 
    

    讨论

    综上所述,使用以上的三种判别分析方法,其对鸢尾花的种类的预测分类结果的正确率均在 95% 以上。其中误判的样本主要分布在 versicolor 和 virginica 这两类,而对 setosa 种类的预测准确率接近 100%。

    由聚类分析的数据也可以得出,将鸢尾花种类的变量剔除掉之后,整体数据聚成两类更好。这主要是因为 versicolor 和 virginica 这两类很难用花瓣和花萼来区分。而在判别分析中,我们在已知三类的情况下拟合模型来预测新样本所属的类别,其反映就是在判别分析中就是这两类的误判率较高,而聚类分析中就是这两个被聚成一个大类。

    在这里插入图片描述


    参考文献

    [1] 鸢尾花数据集官网. https://archive.ics.uci.edu/ml/datasets/Iris
    [2] 鸢尾花数据集. https://gist.github.com/curran/a08a1080b88344b0c8a7
    [3] 孙海燕,周梦,李卫国,冯伟. 数理统计[M]. 北京:北京航空航天大学出版社, 2016.
    [4] 方小敏,齐德胜,张文霖,冯伟. 谁说菜鸟不会数据分析(R 语言篇)[M]. 电子工 业出版社, 2020.

    更多相关内容
  • 统计方法判别分析: 判别分析在已知研究对象分成若干类型并已取得各种类型的一批已知样品的观测数据在此基础上根据某些准则建立判别式然后对未知类型的样品进行判别分类 距离判别法首先根据已知分类的数据分别计算...
  • 1、内容概要:本资源主要包括NLP中文句子类型判别和分类实现源代码(C++实现)、中文句子类型分类工具sentypes_v1.2(句子类型分类工具sentypes说明文档)及数据集。 2、源代码主要包括:(1)依赖的库文件:include...
  • SPSS(十六)SPSS之判别分析(图文+数据集)

    万次阅读 多人点赞 2019-06-08 21:31:07
    SPSS(十六)SPSS之判别分析(图文+数据集) 判别分析又称“分辨法”,是在分类确定的条件下,根据某一研究对象的各种特征值判别类型归属问题的一种多变量统计分析方法。 聚类分析判别分析的区别与联系 都是...

    SPSS(十六)SPSS之判别分析(图文+数据集)

    判别分析又称“分辨法”,是在分类确定的条件下,根据某一研究对象的各种特征值判别其类型归属问题的一种多变量统计分析方法。

    聚类分析与判别分析的区别与联系
    都是研究分类的,在进行聚类分析前,对总体到底有几种类型不知道(研究分几类较为合适需从计算中加以调整)。判别分析则是在总体类型划分已知,对当前新样本判断它们属于哪个总体。如我们对研究的多元数据的特征不熟悉,当然要进行聚类分析,才能考虑判别分析问题。

    判别分析概述
    判别分析的一般形式:y=a1x1+a2x2+……+anxn
    非常明确共有几个类别
    目的是从已知样本中训练出判别函数

    用途
    对客户进行信用预测
    寻找潜在客户

     

    判别分析常用判别方法

    • 最大似然法

    用于自变量均为分类变量的情况

    计算出这些情况的概率组合,基于这些组合大小进行判别

    • 距离判别

    对新样品求出他们离各个类别重心的距离远近
    适用于自变量均为连续变量的情况,对变量分布类型无严格要求

    • Fisher判别法

    与主成份分析有关
    对分布、方差等都没有什么限制

    按照类别与类别差异最大原则提取公因子然后使用公因子判别

    • Bayes判别

    计算该样品落入各个子域的概率
    强项是进行多类判别
    要求总体呈多元正态分布

    利用贝叶斯公式,概率分布逻辑衍生出来一个判别方法,计算这个样本落入这个类别的概率,概率最大就被归为一类

     

    判别分析适用条件(有点类似多重回归分析)

    • 各自变量为连续性或有序分类变量
    • 样本来自一个多元正态总体,该前提几乎做不到
    • 各组的协方差矩阵相等,类似与方差分析中的方差齐
    • 变量间独立,无共线性
    • 违反条件影响也不大,主要看预测准不准,准的话违反也无所谓
       

     

    判别函数效果的验证方法

    利用判别分析得出判别函数,那我们怎么其效果好不好?

    • 自身验证(拿训练数据直接预测验证,但是对预测样本预测好不代表对新样本预测好)
    • 外部数据验证(收集新的数据来验证,这是最客观最有效的,但是麻烦而且两次收集的数据不一定是同质的)
    • 样本二分法(一般划分2/3为训练集,1/3为验证集,但是浪费了1/3的样本)
    • 交互验证(Cross-Validation)----刀切法(10分法,数据划分为10个集合,每次挑选一个出来做验证集,其余9个做训练集,可以做10次,因为验证集可换10种可能)

     

    案例:鸢尾花数据(Fisher判别法)

    Fisher在研究有关判别分析方法的时候所使用的资料,包含了刚毛、变色、弗吉尼亚这三种鸢尾花的花萼长、宽和花瓣长、宽,分析目的是希望能够使用这4个变量来对花的种类进行区分。
    数据集如下

    1	1	50	33	14	2
    2	3	67	31	56	24
    3	3	89	31	51	23
    4	1	46	36	10	2
    5	3	65	30	52	20
    6	3	58	27	51	19
    7	2	57	28	45	13
    8	2	63	33	47	16
    9	3	49	25	45	17
    10	2	70	32	47	14
    11	1	48	31	16	2
    12	3	63	25	50	19
    13	1	49	36	14	1
    14	1	44	32	13	2
    15	2	58	26	40	12
    16	3	63	27	49	18
    17	2	50	23	33	10
    18	1	51	38	16	2
    19	1	50	30	16	2
    20	3	64	28	56	21
    21	1	51	38	19	4
    22	1	49	30	14	2
    23	2	58	27	41	10
    24	2	60	29	45	15
    25	1	50	36	14	2
    26	3	58	37	51	19
    27	3	64	28	56	22
    28	3	63	28	51	15
    29	2	62	22	45	15
    30	2	61	30	46	14
    31	2	56	25	39	11
    32	3	68	32	59	23
    33	3	62	34	54	23
    34	3	67	33	57	25
    35	1	55	35	13	2
    36	2	64	32	45	15
    37	3	59	30	51	18
    38	3	64	32	53	23
    39	2	54	30	45	15
    40	3	67	33	57	21
    41	1	44	30	13	2
    42	1	47	32	16	2
    43	3	72	32	60	18
    44	3	61	30	49	18
    45	1	50	32	12	2
    46	1	43	30	11	1
    47	2	67	31	44	14
    48	1	51	35	14	2
    49	1	50	34	16	4
    50	2	57	26	35	10
    51	3	77	30	61	23
    52	2	57	29	42	13
    53	2	65	26	46	15
    54	1	46	34	14	3
    55	2	59	32	48	18
    56	2	60	27	51	16
    57	3	65	30	55	18
    58	1	51	33	17	5
    59	3	77	36	67	22
    60	3	76	30	66	21
    61	3	67	30	52	23
    62	2	61	28	40	13
    63	2	55	24	38	11
    64	1	52	34	14	2
    65	3	79	36	64	20
    66	1	50	35	16	6
    67	3	77	28	67	20
    68	2	55	26	44	12
    69	1	48	30	14	3
    70	1	48	34	19	2
    71	3	61	26	56	14
    72	1	58	40	12	2
    73	3	62	28	48	18
    74	2	56	30	45	15
    75	1	46	32	14	2
    76	1	57	44	15	4
    77	3	68	34	58	24
    78	3	72	30	58	16
    79	1	54	34	15	4
    80	3	64	31	55	18
    81	2	49	24	33	10
    82	1	55	42	14	2
    83	3	60	22	50	15
    84	2	52	27	39	14
    85	1	44	29	14	2
    86	2	58	27	39	12
    87	3	69	32	57	23
    88	2	59	30	42	15
    89	3	56	26	49	20
    90	3	67	25	58	18
    91	2	63	23	44	13
    92	2	63	25	49	15
    93	2	51	25	30	11
    94	3	69	31	54	21
    95	3	72	36	61	25
    96	2	56	29	36	13
    97	3	68	30	55	21
    98	1	48	30	14	1
    99	1	57	38	17	3
    100	2	66	30	44	14
    101	1	51	37	15	4
    102	2	67	30	50	17
    103	1	52	41	15	1
    104	3	60	30	48	18
    105	2	56	27	42	13
    106	1	49	31	15	2
    107	1	54	39	17	4
    108	2	60	34	45	16
    109	2	50	20	35	10
    110	1	47	32	13	2
    111	2	62	29	43	13
    112	1	51	34	15	2
    113	2	60	22	40	10
    114	1	49	31	15	1
    115	1	54	37	15	2
    116	2	61	28	47	12
    117	2	57	28	41	13
    118	1	54	39	13	4
    119	3	65	32	51	20
    120	2	69	31	49	15
    121	2	55	25	40	13
    122	1	45	23	13	3
    123	1	51	38	15	3
    124	2	68	28	48	14
    125	1	52	35	15	2
    126	3	63	33	60	25
    127	3	71	30	59	21
    128	3	63	29	58	18
    129	2	57	30	42	12
    130	3	77	26	69	23
    131	2	66	29	46	13
    132	1	50	34	15	2
    133	2	55	24	37	10
    134	1	46	31	15	2
    135	3	74	28	61	19
    136	1	50	35	13	3
    137	3	73	29	63	18
    138	2	67	31	47	15
    139	2	56	30	41	13
    140	2	64	29	43	13
    141	3	65	30	58	22
    142	1	51	35	14	3
    143	2	61	29	47	14
    144	3	64	27	53	19
    145	1	48	34	16	2
    146	3	57	25	50	20
    147	2	55	23	40	13
    148	1	54	34	17	2
    149	3	58	28	51	24
    150	1	53	37	15	2

    总共是三类

    典型判别式函数摘要:类似于提取主成分/公因子,方差的%携带了原始信息的多少百分比

    函数1:携带原始信息的99%

    函数1:携带原始信息的1%

     

    Wilks的Lambda:对函数判定有无价值的检验

    我们看到两个函数的Sig.<0.05的,所以都有统计意义

    标准化的典型判别式函数系数:判别函数如何写

    函数1=-0.346*花萼长(标准化的)-0.525*花萼宽(标准化的)+0.846*花瓣长(标准化的)+0.613*花瓣宽(标准化的)

    函数2同理就不书写了

    结构矩阵:类似于因子分析里面的载荷,判断函数与变量之间的关联

    组质心处的函数:各分类对应的中心坐标 

    但是这些结果看起来非常枯燥,有图像可以辅助

    合并图:三个类别放在一组图

    分组图:一个类别一张图

    区域图(领域图):类与类之间如何划分?两个质心的垂直平分线(文本图)

     

    验证判别函数好坏

    输出--不考虑该个案时的分类(交互验证--刀切法)

    由于判别分析师不允许有缺失值的,所以勾选上使用均值替换缺失值,但是缺失值缺失大于10%,不介意这么做

    看到其正确率为98%,是相当好的判别函数了 

     

    多元正态性的检验(BOX‘s M)

    Sig.<0.05证明多元方差齐性是不齐的,证明判别分析适用条件可以违背只要预测效果好就可以 

    单变量ANOVA:各个自变量在各类别之间是否有差异,四个Sig.<0.05,证明是有差异的

     

    非标准化的判别函数

    之前的判别函数都是标准化的,看起来不方便,输出非标准化之前的结果

    这个就可以直接写出两个判别函数了,对比一下标化的函数,多了常数项 

     

    贝叶斯判别

    对每一个类别都会给函数式,扔一个样本进去计算,哪个得分高,算哪一个类,不过这里不改先验概率等参数和典型判别分析结果是一致的 

     

     

    判别分析也可以做变量筛选(不推荐)

    一般我们做判别分析前已经做了相关的预分析

    展开全文
  • 目 录1、空值判断2、其他数据类型判断2.1 判断Serise或DataFrame中某一列的数据类型2.2 利用np.issubdtype()判断Serise或DataFrame中某元素的类型参考文献: 1、空值判断 判断数据是否为空值的常用函数有:pd.isna()...

    1、空值判断

    判断数据是否为空值的常用函数有:pd.isna(),pd.isnull(),np.isnat()和np.isnan(),四种方法用于判断的数据类型如下表所示:
    在这里插入图片描述
    注意:
    1、判断某个值是否空值,将该值传给相应函数即可,如pd.isna(input_data)、np.isnan(np.nan);
    2、pd.isna 是pandas0.21版本引入的,能判别最大范围的空值;
    3、对array、Serise或DataFrame运用相关函数时,结果也是相同形状的array、Serise或者DataFrame,例如:
    在这里插入图片描述

    2、其他数据类型判断

    2.1 判断Serise或DataFrame中某一列的数据类型

    此时,可以借助pd.api.types方法,使用方法例如:

    pd.api.types.is_datetime64_any_dtype(Serise_1)
    

    详细的方法列表如下:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    2.2 利用np.issubdtype()判断Serise或DataFrame中某元素的类型

    使用方法举例:

    np.issubdtype(df['str'][0],np.string_) #True
    np.issubdtype(df['int32'][0],np.int32) #True
    np.issubdtype(df['float64'][0],np.number)#True
    

    参考文献:

    1、49 pandas数据类型判断(汇总)

    2、pandas数据类型判断(三)数据判断

    展开全文
  • SAS判别分析

    2014-12-03 10:18:20
    判别分析又称“分辨法”,是在分类确定的条件下,根据某一研究对象的各种特征值判别类型归属问题的一种多变量统计分析方法...当得到一个新的样品数据,要确定该样品属于已知类型中哪一类,这类问题属于判别分析问题。
  • 针对构造煤与原生结构煤分界处的煤体类型不易识别的问题,运用判别分析法,选取构造煤、原生结构煤的测井数据为样本。首先对测井数据进行标准化,再优选测井曲线。通过数据处理来建立分类标准,对待识别的煤层测井采样段...
  • 为了能够有效地获取各种外观属性中的信息并对种子种类进行有效、精准的判别,我们提出了判别分析、logistic回归模型两种方法进行模型拟合,并分析了其结果的优劣。 关键词:因子分析,主成分分析判别分析,...
  • SPSS(十七)SPSS之判别分析进阶(图文+数据集) 为什么会有这些新模型的出现? 树模型结构 神经网络模型 传统模型的局限 任何统计模型都是对现实世界复杂联系的简化 统计理论假设对任何一个随机现象的估计,都...

    SPSS(十七)SPSS之判别分析进阶(图文+数据集)

    为什么会有这些新模型的出现?

    • 树模型结构
    • 神经网络模型

    传统模型的局限

    • 任何统计模型都是对现实世界复杂联系的简化
    • 统计理论假设对任何一个随机现象的估计,都可以用下列的通式来表达:
    • Y=f(x, θ)+ε
    • f(x, θ)表示自变量对因变量的影响方式(一般规律),其中θ表示相应的函数中的未知参数(共性特征)
    • ε为对每个个体而言的特殊特征,代表随机变异(个性特征)
    • 统计模型的任务就是尽量精确的估计出f(x, θ)中f()的具体形式,以及θ的相应参数值;根据专业知识和样本信息建立模型假设,然后利用假设检验进行验证,并加以相应的修改;原则:简捷为美
    • 当f()比较简单时,这一分析思路效率较高
    • 但是,当自变量和因变量间的联系为非常复杂的非线性函数,甚至于无法给出显式表达时,这上分析思路就变得非常困难;作为模型的推广,如果自/因变量间的关联为曲线联系,则引入自变量的高次项/交互项加以拟和

     

    我们来看一下实例(饮酒量、年龄对早产的影响)

    我么使用传统的Logistic回归模型,得到结果如下

    分析结果显示:年龄和饮酒均对新生儿早产有影响,年龄越大、饮酒量越高,早产的可能性越大

    模型的总预测正确率为90%以上,但是,这个模型对数据的解释充分吗?
    显然是不充分的,没有考虑到交互项的影响

     

    假如我们使用树模型结果会怎么样呢?

    由于分别按照自变量取值依次划分样本,如果采用树形图,则可以表示如右:

    • 树图更加直观、方便
    • 结点划分的原则就是使终末结内因变量的分布尽可能一致
    • 所有终末结的样本量之和等于根结样本量
       

    树模型结构

    • 树模型的实质就是根据分析目的,将总研究人群通过某些特征(自变量取值)分成数个相对同质的亚人群。

    每个亚人群内部的因变量取值高度一致(同质性高)
    而不同亚人群间的因变量取值差异较大(相应的变异尽量落在不同亚人群间)

    • 从方法本质上讲,树模型自然就能处理自/因变量间的复杂联系,适应性更强

     

    树模型常用术语

    • 结(node):一个样本群体在树模型中表示为图中的一个节点,被称为结
    • 根(root):树的起始点(包括所有的观察值)
    • 叶(leaf):树的终止点,也被称为终末节
    • 分杈(split):建立新枝的原则(依据怎样的原则将样本分为不同的亚人群)
    • 种树与剪枝

     

    常见的树模型算法

     

    • CHAID算法:最为基本和简单,易于理解,但只是能用于分类因变量和自变量间关系的分析
    • 穷举CHAID:SPSS对CHAID算法的一些微改进
    • C&RT:分类树与回归树,是最为常用的树模型算法,可用于任意类型的资料,通常所说的树模型就是指的该算法
    • C 5.0:由C4.5发展而来,更倾向于计算机学
    • QUEST:一种较为复杂的统计模型算法,可提供假设检验的结果,但可实现的软件不多
       

    树模型的优劣势

    树模型的优势

    • 树模型会在所有的自变量中按照贡献的大小依次挑出自变量进入分析,因此可以自动处理大量的自变量
    • 许多树模型算法均为非参数方法,因此没有太多的适用条件限制,应用范围更广,也更适合于对对各种复杂的联系进行分析

     树模型的劣势

    • 不能对影响因素的作用大小进行精确的定量描述
    • 对于线性关联、无交互作用时的分析效果不如普通统计模型
    • 需要较大的样本量才能保证逐层细分后单元格内仍能有充分的样本数
    • 对于结果的解释和应用过于灵活,没有严格的标准可循

     

    案例:鸢尾花

    Fisher在研究有关判别分析方法的时候所使用的资料,包含了刚毛、变色、弗吉尼亚这三种鸢尾花的花萼长、宽和花瓣长、宽,分析目的是希望能够使用这4个变量来对花的种类进行区分。

    数据集如下

    1.0	1.0	50.0	33.0	14.0	2.0
    2.0	3.0	67.0	31.0	56.0	24.0
    3.0	3.0	89.0	31.0	51.0	23.0
    4.0	1.0	46.0	36.0	10.0	2.0
    5.0	3.0	65.0	30.0	52.0	20.0
    6.0	3.0	58.0	27.0	51.0	19.0
    7.0	2.0	57.0	28.0	45.0	13.0
    8.0	2.0	63.0	33.0	47.0	16.0
    9.0	3.0	49.0	25.0	45.0	17.0
    10.0	2.0	70.0	32.0	47.0	14.0
    11.0	1.0	48.0	31.0	16.0	2.0
    12.0	3.0	63.0	25.0	50.0	19.0
    13.0	1.0	49.0	36.0	14.0	1.0
    14.0	1.0	44.0	32.0	13.0	2.0
    15.0	2.0	58.0	26.0	40.0	12.0
    16.0	3.0	63.0	27.0	49.0	18.0
    17.0	2.0	50.0	23.0	33.0	10.0
    18.0	1.0	51.0	38.0	16.0	2.0
    19.0	1.0	50.0	30.0	16.0	2.0
    20.0	3.0	64.0	28.0	56.0	21.0
    21.0	1.0	51.0	38.0	19.0	4.0
    22.0	1.0	49.0	30.0	14.0	2.0
    23.0	2.0	58.0	27.0	41.0	10.0
    24.0	2.0	60.0	29.0	45.0	15.0
    25.0	1.0	50.0	36.0	14.0	2.0
    26.0	3.0	58.0	37.0	51.0	19.0
    27.0	3.0	64.0	28.0	56.0	22.0
    28.0	3.0	63.0	28.0	51.0	15.0
    29.0	2.0	62.0	22.0	45.0	15.0
    30.0	2.0	61.0	30.0	46.0	14.0
    31.0	2.0	56.0	25.0	39.0	11.0
    32.0	3.0	68.0	32.0	59.0	23.0
    33.0	3.0	62.0	34.0	54.0	23.0
    34.0	3.0	67.0	33.0	57.0	25.0
    35.0	1.0	55.0	35.0	13.0	2.0
    36.0	2.0	64.0	32.0	45.0	15.0
    37.0	3.0	59.0	30.0	51.0	18.0
    38.0	3.0	64.0	32.0	53.0	23.0
    39.0	2.0	54.0	30.0	45.0	15.0
    40.0	3.0	67.0	33.0	57.0	21.0
    41.0	1.0	44.0	30.0	13.0	2.0
    42.0	1.0	47.0	32.0	16.0	2.0
    43.0	3.0	72.0	32.0	60.0	18.0
    44.0	3.0	61.0	30.0	49.0	18.0
    45.0	1.0	50.0	32.0	12.0	2.0
    46.0	1.0	43.0	30.0	11.0	1.0
    47.0	2.0	67.0	31.0	44.0	14.0
    48.0	1.0	51.0	35.0	14.0	2.0
    49.0	1.0	50.0	34.0	16.0	4.0
    50.0	2.0	57.0	26.0	35.0	10.0
    51.0	3.0	77.0	30.0	61.0	23.0
    52.0	2.0	57.0	29.0	42.0	13.0
    53.0	2.0	65.0	26.0	46.0	15.0
    54.0	1.0	46.0	34.0	14.0	3.0
    55.0	2.0	59.0	32.0	48.0	18.0
    56.0	2.0	60.0	27.0	51.0	16.0
    57.0	3.0	65.0	30.0	55.0	18.0
    58.0	1.0	51.0	33.0	17.0	5.0
    59.0	3.0	77.0	36.0	67.0	22.0
    60.0	3.0	76.0	30.0	66.0	21.0
    61.0	3.0	67.0	30.0	52.0	23.0
    62.0	2.0	61.0	28.0	40.0	13.0
    63.0	2.0	55.0	24.0	38.0	11.0
    64.0	1.0	52.0	34.0	14.0	2.0
    65.0	3.0	79.0	36.0	64.0	20.0
    66.0	1.0	50.0	35.0	16.0	6.0
    67.0	3.0	77.0	28.0	67.0	20.0
    68.0	2.0	55.0	26.0	44.0	12.0
    69.0	1.0	48.0	30.0	14.0	3.0
    70.0	1.0	48.0	34.0	19.0	2.0
    71.0	3.0	61.0	26.0	56.0	14.0
    72.0	1.0	58.0	40.0	12.0	2.0
    73.0	3.0	62.0	28.0	48.0	18.0
    74.0	2.0	56.0	30.0	45.0	15.0
    75.0	1.0	46.0	32.0	14.0	2.0
    76.0	1.0	57.0	44.0	15.0	4.0
    77.0	3.0	68.0	34.0	58.0	24.0
    78.0	3.0	72.0	30.0	58.0	16.0
    79.0	1.0	54.0	34.0	15.0	4.0
    80.0	3.0	64.0	31.0	55.0	18.0
    81.0	2.0	49.0	24.0	33.0	10.0
    82.0	1.0	55.0	42.0	14.0	2.0
    83.0	3.0	60.0	22.0	50.0	15.0
    84.0	2.0	52.0	27.0	39.0	14.0
    85.0	1.0	44.0	29.0	14.0	2.0
    86.0	2.0	58.0	27.0	39.0	12.0
    87.0	3.0	69.0	32.0	57.0	23.0
    88.0	2.0	59.0	30.0	42.0	15.0
    89.0	3.0	56.0	26.0	49.0	20.0
    90.0	3.0	67.0	25.0	58.0	18.0
    91.0	2.0	63.0	23.0	44.0	13.0
    92.0	2.0	63.0	25.0	49.0	15.0
    93.0	2.0	51.0	25.0	30.0	11.0
    94.0	3.0	69.0	31.0	54.0	21.0
    95.0	3.0	72.0	36.0	61.0	25.0
    96.0	2.0	56.0	29.0	36.0	13.0
    97.0	3.0	68.0	30.0	55.0	21.0
    98.0	1.0	48.0	30.0	14.0	1.0
    99.0	1.0	57.0	38.0	17.0	3.0
    100.0	2.0	66.0	30.0	44.0	14.0
    101.0	1.0	51.0	37.0	15.0	4.0
    102.0	2.0	67.0	30.0	50.0	17.0
    103.0	1.0	52.0	41.0	15.0	1.0
    104.0	3.0	60.0	30.0	48.0	18.0
    105.0	2.0	56.0	27.0	42.0	13.0
    106.0	1.0	49.0	31.0	15.0	2.0
    107.0	1.0	54.0	39.0	17.0	4.0
    108.0	2.0	60.0	34.0	45.0	16.0
    109.0	2.0	50.0	20.0	35.0	10.0
    110.0	1.0	47.0	32.0	13.0	2.0
    111.0	2.0	62.0	29.0	43.0	13.0
    112.0	1.0	51.0	34.0	15.0	2.0
    113.0	2.0	60.0	22.0	40.0	10.0
    114.0	1.0	49.0	31.0	15.0	1.0
    115.0	1.0	54.0	37.0	15.0	2.0
    116.0	2.0	61.0	28.0	47.0	12.0
    117.0	2.0	57.0	28.0	41.0	13.0
    118.0	1.0	54.0	39.0	13.0	4.0
    119.0	3.0	65.0	32.0	51.0	20.0
    120.0	2.0	69.0	31.0	49.0	15.0
    121.0	2.0	55.0	25.0	40.0	13.0
    122.0	1.0	45.0	23.0	13.0	3.0
    123.0	1.0	51.0	38.0	15.0	3.0
    124.0	2.0	68.0	28.0	48.0	14.0
    125.0	1.0	52.0	35.0	15.0	2.0
    126.0	3.0	63.0	33.0	60.0	25.0
    127.0	3.0	71.0	30.0	59.0	21.0
    128.0	3.0	63.0	29.0	58.0	18.0
    129.0	2.0	57.0	30.0	42.0	12.0
    130.0	3.0	77.0	26.0	69.0	23.0
    131.0	2.0	66.0	29.0	46.0	13.0
    132.0	1.0	50.0	34.0	15.0	2.0
    133.0	2.0	55.0	24.0	37.0	10.0
    134.0	1.0	46.0	31.0	15.0	2.0
    135.0	3.0	74.0	28.0	61.0	19.0
    136.0	1.0	50.0	35.0	13.0	3.0
    137.0	3.0	73.0	29.0	63.0	18.0
    138.0	2.0	67.0	31.0	47.0	15.0
    139.0	2.0	56.0	30.0	41.0	13.0
    140.0	2.0	64.0	29.0	43.0	13.0
    141.0	3.0	65.0	30.0	58.0	22.0
    142.0	1.0	51.0	35.0	14.0	3.0
    143.0	2.0	61.0	29.0	47.0	14.0
    144.0	3.0	64.0	27.0	53.0	19.0
    145.0	1.0	48.0	34.0	16.0	2.0
    146.0	3.0	57.0	25.0	50.0	20.0
    147.0	2.0	55.0	23.0	40.0	13.0
    148.0	1.0	54.0	34.0	17.0	2.0
    149.0	3.0	58.0	28.0	51.0	24.0
    150.0	1.0	53.0	37.0	15.0	2.0

    我们选择C&RT方法,假如是CHAID方法的话,自/因变量都 需要为分类变量,当然我们扔进连续型的自变量也可以,spss会将其变为有序分类变量进行分析

    我们还可以看一下自变量对模型的重要性 

     还可以验证模型的判别效果(交互验证--刀切法)

    还可以设置节点最少包含多少个样本

    我们也可以根据条件进行剪枝防止过拟合

    选项还可以设置误分类成本、利润等

     

     

    风险:交叉验证模型会存在5.3%的误判可能 ,这个结果没有典型的判别分析好,因为对于线性关联、无交互作用时的分析效果不如普通统计模型

     

    具体分类的情况

    假如我们自变量很多的情况下,可以按照这个选变量入模型

    重要性:绝对重要性,变量对模型的重要程度

    标准化的重要性:相对第一个自变量的重要性,这是相对重要性 

     

    神经网络模型

    神经网络概述

     

    • 为了能快速,高效地对变量间的复杂联系进行分析,人们借鉴了神经元间连接的特性,创造了神经网络技术用于解决此问题
    • 是近年来计算机科学、信息科学和医学交互发展形成的一门边缘学科,其实质就是人工智能研究,即利用计算机强大的计算能力来模拟动物的神经网络的信息传递过程
    • 是由大量处理单元(神经元)互相连接组成的大规模、非线性、自适应动力学系统,具有自组织、自适应、自学习的能力
       

    与传统统计学方法的比较

    • 没有任何对变量的假设要求 
    • 通过模拟人的智能行为处理一些复杂的、不确定的、非线性的问题,处理非线性问题的能力一般高于传统统计分析方法 简而言之,就是自动而又尽量精确的近似给出f(x, θ)的表达式因其可以精确的逼近各种复杂联系,故预测效果必然会优于更为简单化的logistic回归、判别分析等模型
    • 具有一定的容错性 
    • 为处理模糊的、数据不完全的、模拟的、不精确的模式识别提供了一个全新的途径;类似于一个灰箱系统,用户只需给出输入信息,不需要关心内部的具体设置和操作,即可得到相应的输出;
    • 现在应用较多的是BP(BackPropagation network)网络,绝大部分文献也均为BP网络的研究

     

    BP网络的结构和原理

    • 误差反向传播算法( Back Propagation Algorithms ) 为学习方法 
    • 学习过程由正向传播(工作信号)和反向传播(误差信号)组成 

     

     

    隐藏层一层够了吗?是不是越多越好?

    1957年,Kolmogorov提出了连续函数表示定理:任何一个连续函数都可以用有限个单变量函数的有限次复合精确表达。
    大量研究表明,实际工作中的大部分问题,都可以用一个隐含层的BP网络来逼近(只要隐单元数足够)
    而一个三层的BP网络已可以完成任意复杂关联的分析问题
    当然,所需要的训练时间也是惊人的
     

    用一幅图来形容神经网络是如何工作的,找近似分界面(神经网络找到5条很简单的线来模拟判别,而不是去算出一个表达式)

     

    神经网络的几个严重误解

    • 训练过度问题:操作不当会过拟合
    • 样本量问题:验证集、训练集、训练集
    • 网络层数和参数问题:一般隐藏层层数一层就够了,参数默认即可

     

    推广应用的主要困难总结

    • 神经网络只能给出自变量在预测中的重要程度,却难以刻画出自变量/因变量间的直接关系。虽然理论上使用者可以确切推断出所有神经元间的联系如何,但实际上很难做到,而且这些关系也往往难以解释
    • 训练过度(Over training)问题实质上一直没能得到有效解决
    • 由于是人工智能方法,现有神经网络技术对硬件的要求较高,使得复杂大样本的计算受到限制,无法大量推广已变成次要矛盾,现在计算机已经很厉害了

     

    多层感知器(BP神经网络):更精确,不过耗时长

    径向基函数:时效性高,不过准确性没那么高

    可以设置验证集、训练集、测试集比例

    也可以自定义隐藏层

    输出勾选上自变量的重要性(其实和判别分析结果一致) 

    这幅图不能观察多太多的信息,主要是证明确实我们做了神经网络模型,而不是忽悠人的

    后年这些就和判别分析结果一样了 

     

    总结

    对于树模型和神经网络模型,假如不涉及自变筛选只做预测,树模型和神经网络可以一试,但是在科研中尽量少用

     

    补充--最近邻元素

    最近邻元素既可以做判别分析,也可以做聚类方法

    有因变量:判别分析

    无因变量:聚类

    展开全文
  • SPSS判别分析

    千次阅读 2020-12-19 00:47:13
    一、定义判别分析又称“分辨法”,是在分类确定的条件下,根据某一研究对象的各种特征值判别类型归属问题的一种多变量统计分析方法。二、判别分析的一般形式y=a1x1+a2x2+……+anxn(a1为系数,Xn为变量)。事先非常...
  • LDA降维有维数限制,必须降至数据类型数减一维及以下,PCA没有维数限制; LDA降维时以类间距离最大、类内距离最小为目标,PCA以所有样本间距离最大为目标; LDA本身可以用于分类,PCA不行; PCA方法下特征向量可以...
  • 文章目录判别分析判别分析的基本思想距离判别两总体情况多总体情况贝叶斯判别费歇判别逐步判别 判别分析 本章介绍的判别分析适用于被解释变量是非度量变量的情形。在这种情况下,人们对于预测和解释影响一个对象...
  • 机器学习算法系列(十二)-二次判别分析算法(Quadratic Discriminant Analysis Algorithm)
  • 传统的一些判别算法中,往往事先假定数据的分布类型来建立判别规则,但多维数据结构往往存在违背假定的情形,从而导致较高的误判率。针对此类问题,提出采用非参核密度算法建立多维数据判别规则,同时通过Iris数据...
  • 判别分析中,至少有一个已经明确知道类别的“训练样本”,利用这个数据,就可以建立判别准则,并通过预测变量来为未知类别的观测值进行判别了。 所谓Fisher判别法,就是一种先投影的方法。 考虑只有两个(预测)...
  • SPSS分析技术:判别分析

    千次阅读 2020-12-13 10:57:45
    数据处理中,有这样一种情况:现在已经有若干样本被正确地分类了,但不清楚分类的依据是什么。...判别分析是为了解决未来个案归属问题而提出的一种数据分类技术,它基于已有的分类个案寻求有效...
  • 本文介绍线性判别分析概念,并通过示例介绍R的实现过程。 介绍线性判别分析模型 线性判别分析用于基于一组变量把响应变量分为俩类或更多的算法。但线性判别算法对数据有一些要求: 响应变量必须是类别变量。线性...
  • 电力系统低频振荡的类型判别研究与分析.pdf
  • 判别分析(Discriminate Analysis)

    千次阅读 多人点赞 2020-05-08 12:33:57
    判别分析主要是针对有监督学习的分类问题。 这里回顾一下有监督和无监督学习 有监督学习:对具有标记的训练样本进行学习,以尽可能对训练样本集外的数据进行分类预测。( LR,SVM,BP,RF,GBDT) 也就是说:利用一组...
  • R语言 查看与转换数据类型

    万次阅读 2020-04-01 21:04:15
    R语言的对象常见的数据类型有:数值型、字符型、逻辑型、整数型、复数型等。此外,也可能是缺省值(NA) 数据对象类型及其判别和转化函数 类型 中文释义 示例 辨别 转换 numeric 数值型 2、-3、4.5 is....
  • 1.实现代码 from sklearn import discriminant_analysis as da da.LinearDiscriminantAnalysis(solver='svd', shrinkage=None, priors=...➢ Shrinkage:收缩系数,当数据稀疏时配合’lsqr‘, ’eigen‘使用:’
  • 通过判别分析,对数据中的变量的各类特征值判别确定其类型属性。 实验内容: 为研究某地区人口死亡状况,已按某种方法将15个一直样品分为3类,指标及原始数据如下,试建立判别函数并判定另外4个待判样品属于哪类。...
  • 降维与分类是多元统计分析的两个主题,在这里,我浅谈一下的聚类分析判别分析主要用于分类。聚类分析分析对象可分为两种:Q型聚类(对样本的聚类),R型聚类(对变量的聚类)按具体方法可分为两种:一般小样本数据...
  • SAS(二)SAS基本数据类型及SAS基本模块的介绍 SAS基本介绍 SAS 是英文Statistical Analysis System的缩写,翻译成汉语是统计分析系统,最初由美国北卡罗来纳州立大学两名研究生研制,1976 年创立SAS公司, 2006年...
  • R语言--判别分析

    千次阅读 2019-07-05 12:42:00
    即根据已掌握的若干个样本的数据信息,总结出客观的样本分类的规律,建立判别公式和判别准则。再遇到新的样本的时候,根据已总结出来的判别公式,来判断样本所属的类别。 三大主流判别分析算法: 费希尔(Fisher)...
  • 机器学习笔记(五)-高斯判别分析

    千次阅读 2019-04-25 10:26:22
    在机器学习笔记(四)-逻辑回归中已经介绍了,软分类又分为概率判别模型:...还有概率生成模型,为代表的是高斯判别分析(GDA:Guassian Discrimant Analysis)。GDA是本文的主角。本文主要是对GDA算法学习和Python验证
  • 数据分析数据可视化

    千次阅读 2021-08-28 14:43:21
    在实现数据可视化之前,我们首先要了解有哪些图表类型,常见的图表可参考EXCEL自带的图表类型。 如图,点击EXCEL插入---图表选项卡可以查看EXCEL中的图表: 柱状图 适用场合是二维数据集(每个数据点包括两个值x...
  • 浅谈数据分析数据建模

    千次阅读 2019-11-26 15:43:02
    过去企业都是通过线下渠道接触客户,客户数据不全,只能利用财务数据进行业务运营分析,缺少围绕客户的个人数据数据分析应用的领域集中在企业内部经营和财务分析。 数字时代到来之后,企业经营的各个阶段都可以被...
  • R语言 判别分析

    千次阅读 2020-01-03 17:03:19
    (1)判别分析的基本思想 有时会遇到包含属性被解释变量和几个度量解释变量的问题,比如我们希望区分好和差的信用风险,如果有信用风险的度量指标就可以使用多元回归,但若需要判断某人是在好的还是差的一类,就不是...
  • 它不仅结合了用于保存高维数据局部结构的局部保留投影(LPP)的思想,而且还结合了用于获得判别力的Fisher判别分析(FDA)的思想。 但是,LFDA还存在采样不足的问题以及许多降维方法。 同时,投影矩阵不稀疏。 在...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 38,963
精华内容 15,585
关键字:

判别分析数据类型

友情链接: mcuboot-master.zip