判别分析-基于matlab

原理介绍

  • 在生产、科学研究和日常生活中,经常会遇到对某一研究对象属于哪种情况作出判断。
  • 实际案例:
    (1)要根据这两天天气情况判断明天是否会下雨;
    (2)医生要根据病人的体温、白血球数目及其它症状判断此病人是否会患某种疾病;
    (3)根据之前关于破产企业与财务良好的企业的数据,来判断新的企业是否破产;
    从概率论的角度看,可把判别问题归结为如下模型。设共有 n个总体:
    × 1 × 2 , … × n \times 1 \times 2, \ldots \times n ×1×2,×n
    其中 Xi 是m 维随机变量,其分布函数为
    F i ( x 1 , … , x m ) , i = 1 , 2 , … , n F_{i}\left(x_{1}, \ldots, x_{m}\right), i=1,2, \ldots, n Fi(x1,,xm),i=1,2,,n
    (x1,…,xm) 是表征总体特性的m 个随机变量的取值。在判别分析中称这m 个变量
    为判别因子。现有一个新的样本点X=(x1,…,xm)’,要判断此样本点属于哪一个总体。

Matlab 判别函数classify。

  • 函数的调用格式为:
    [CLASS,ERR] = CLASSIFY(SAMPLE,TRAINING,GROUP, TYPE)
name 说明
SAMPLE 未知待分类的样本矩阵
TRAINING 已知分类的样本矩阵,
GROUP t维列向量
TYPE 分类方法

SAMPLE 为未知待分类的样本矩阵;TRAINING 为已知分类的样本矩阵,它们有相同的列数m ,设待分类的样本点的个数,即SAMPLE 的行数为s ,已知样本点的个数,即TRAINING 的行数为t ,则GROUP 为t 维列向量,若TRAINING 的第i 行属于总体Xi,则GROUP 对应位置的元素可以记为i,TYPE 为分类方法,缺省值为’linear’,即线性分类,TYPE 还可取值’quadratic’,‘mahalanobis’(mahalanobis 距离)。返回值CLASS 为s 维列向量,给出了SAMPLE 中样本的分类,ERR 给出了分类误判率的估计值。

matlab实例

  • 例1 已知 8 个乳房肿瘤病灶组织的样本,其中前3 个为良性肿瘤,后5 个为恶性
    肿瘤。数据为细胞核显微图像的10 个量化特征:细胞核直径,质地,周长,面积,光滑度。根据已知样本对未知的三个样本进行分类。已知样本的数据为:

    细胞核直径 质地 周长 面积 光滑度
    13.54 14.36 87.46 566.3 0.09779
    3.08 15.71 85.63 520 0.1075
    .504 12.44 60.34 273.9 0.1024
    7.99 10.38 122.8 1001 0.1184
    0.57 17.77 132.9 1326 0.08474
    9.69 21.25 130 1203 0.1096
    1.42 20.38 77.58 386.1 0.1425
    0.29 14.34 135.1 1297 0.1003

    待分类的数据为:

    细胞核直径 质地 周长 面积 光滑度
    6.6 28.08 108.3 858.1 0.08455
    0.6 29.33 140.1 1265 0.1178
    .76 24.54 47.92 11 0.05263
  • matlab代码:

    A=[13.54,14.36,87.46,566.3,0.09779;
    13.08,15.71,85.63,520,0.1075
    9.504,12.44,60.34,273.9,0.1024;
    17.99,10.38,122.8,1001,0.1184;
    20.57,17.77,132.9,1326,0.08474;
    19.69,21.25,130,1203,0.1096;
    11.42,20.38,77.58,386.1,0.1425;
    20.29,14.34,135.1,1297,0.1003]  %原始数据,不包含分类指标g
    
    x=[16.6,28.08,108.3,858.1,0.08455;
    20.6,29.33,140.1,1265,0.1178;
    7.76,24.54,47.92,181,0.05263]  %需要分类的数据集,A和X的列数保持一致
    
    g=[ones(3,1);2*ones(5,1)]; %原始数据分类的情况,1为良性肿瘤标准,2个为恶性肿瘤标准
    %调用函数
    [class,err]=classify(x,a,g)  %可以选择TYPE类型,缺省值为'linear',即线性分类,TYPE 还可取值'quadratic'(二次判别)'mahalanobis'(mahalanobis 距离)
    

你可能感兴趣的:(MATLAB数据分析,matlab)