我的思路:(如果不用链表的话,就用一个大点的数组)
获取输入的数据,并记录个数 。
if( 记录个数 %2 != 0 )
说明是奇数,最后一个数值不用参与计算 。
int nCountTag = 记录个数 - 记录个数%2 ;
int icount = 0 ;
while( icount < nCountTag )
{
如果icount < 记录个数 计算 两个值的和。并输出 。
icount = icount + 2 ;
}
if ( 记录个数%2 == 1 )
输入的是奇数个数。输出最后一个数。
在分类问题中,因变量Y可以看做是数据的label,属于分类变量。所谓分类问题,就是能够在数据的自变量X空间内找到一些decision
boundaries,把label不同的数据分开,如果某种方法所找出的这些decision
boundaries在自变量X空间内是线性的,这时就说这种方法是一种线性分类器。
贝叶斯分类器的分类原理是通过某对象的先验概率,利用贝叶斯公式计算出其后验概率,即该对象属于某一类的概率,选择具有最大后验概率的类作为该对象所属的类。也就是说,贝叶斯分类器是最小错误率意义上的优化。目前研究较多的贝叶斯分类器主要有四种,分别是:Naive
Bayes、TAN、BAN和GBN。
数字图像的恢复、增强,乃至复合处理,归根到底只是改善图像的品质,提高图像的可解译性。但处理系统(计算机)并未对图像上地物的类别作出“判决”(解译)。由计算按一定的判别模式来自动完成这一“判决”,便是图像分类处理的过程。
图像分类处理的最终目标是智能化,使遥感图像处理发展成为一种人工智能系统。广义的分类处理,既包括波谱信息的分类,也包括空间信息的分类。后者一般包括图形识别、边缘和线条信息的检测与提取,以及纹理结构分析等,通常也称图像的空间信息分析。关于这一部分对于地质工作者显然感兴趣的内容,可参阅文献[3]等著作。限于篇幅,这里仅介绍按波谱信息分类的基本概念。
(一)图像分类的依据
一般来说,同一类地物有着相似的波谱,在多波段遥感的数字图像中,可以粗略地用它们在各个波段上的像元值的连线(亨利曲线)来表示(图4-29A);由于受光照条件、环境背景等因素的影响,在实际的多维波谱空间中,它们的像元值向量往往不是一个点,而是呈点群分布(集群),不同地物的点群处在不同的位置(图4-29B);不仅如此,在实际图像中,不同地物的波谱集群还存在有交叉过渡,受图像分辨力的限制,一个像元中可能包括有若干个地物类别,即所谓“混合像元”。因此,对不同集群的区分一般要依据它们的统计特征(统计量)。例如,集群位置用均值向量表示、点群的中心及离散度常用标准差或协方差来量度等等;数字图像常用的几种统计量见表4-4。
图4-29 索尔顿湖和因佩里亚谷地陆地卫星MSS数字图像上主要几种地物的光谱反射比曲线和集群分布
表4-4 数字图像常用的统计量
图像分类处理的实质就是按概率统计规律,选择适当的判别函数、建立合理的判别模型把这些离散的“集群”分离开来,并作出判决和归类。通常的做法是,将多维波谱空间划分为若干区域(子空间),位于同一区域内的点归于同一类。子空间划分的标准可以概括为两类:①根据点群的统计特征,确定它所应占据的区域范围。例如,以每一类的均值向量为中心,规定在几个标准差的范围内的点归为一类;②确定类别之间的边界,建立边界函数或判别函数。不论采取哪种标准,关键在于确定同一类别在多维波谱空间中的位置(类的均值向量)、范围(协方差矩陈)及类与类边界(判别函数)的确切数值。按确定这些数据是否有已知训练样本(样区)为准,通常把分类技术分为监督和非监督两类。
(二)非监督分类
非监督分类是在没有已知类别的训练数据及分类数的情况下,依据图像数据本身的结构(统计特征)和自然点群分布,按照待分样本在多维波谱空间中亮度值向量的相似程度,由计算机程序自动总结出分类参数,进而逐一对像元作归类,通常也称聚类(集群)分析。使用的方法有图形识别、系统聚类、分裂法和动态聚类等。
其中,比较实用的是动态聚类。它是首先根据经验和分类数,选定若干个均值向量,作为“种子”,建立一批初始中心,进行初步概略的分类,然后根据规定的参数(阈值)检验分类结果,逐步修改调整分类中心,再重新分类,并根据各类离散性统计量(如均方差等)和不同类别之间可分离性统计量(如类间标准化距离等),进行类的合并或分裂;此后再修改中心,直至分类结果合理为止。动态聚类中,聚类中心和分类数可以按客观的波谱特征自动调整,分类效果一般比较好,但分类结果的确切含义(类别的属性)需另作分析,从实况调查或已有的地面资料中去确定它们的地物类型。
非监督分类由于事先不需训练样本,故处理速度较快,较客观,并能为监督分类的训练样区选择提供参照,一般在有目的的监督分类之前进行。
(三)监督分类
监督分类一般是先在图像中选取已知样本(训练区)的统计数据,从中找出分类的参数、条件,建立判别函数,然后对整个图像或待分类像元作出判别归类。遥感图像处理中常用的监督分类方法有最小距离法、费歇尔线性判别法、贝叶斯线性和非线性判别法(最大似然法)等。
其中,最小距离法在算法上比较简单:首先在图像显示屏上选出训练样区,并且从图像数据中求出训练样区各个波段的均值和标准差;尔后再去计算其它各像元的亮度值向量到训练样区波谱均值向量之间的距离。如果距离小于指定的阈值(一般取标准差的倍数),且与某一类的距离最近,遂将该像元归为某类。该分类法的精度取决于训练样区(地物类别)的多少和样本区的统计精度。由于计算简便,并可按像元顺序逐一扫描归类,一般分类效果也较好,因而是较常用的监督分类方法。
最大似然法也是常用的监督分类方法之一。它是用贝叶斯判别原则进行分析的一种非线性监督分类。简单地说,它可以假定已知的或确定的训练样区典型标准的先验概率,然后把某些特征归纳到某些类型的函数中,根据损失函数的情况,在损失最小时获得最佳判别。该法分类效果较好,但运算量较大。
监督分类的结果明确,分类精度相对较高,但对训练样本的要求较高,因此,使用时须注意应用条件,某一地区建立的判别式对别的地区不一定完全适用。此外,有时训练区并不能完全包括所有的波谱样式,会造成一部分像元找不到归属。故实际工作中,监督分类和非监督分类常常是配合使用,互相补充的。
图像分类处理目前在农林、土地资源遥感调查中应用较广。对于地质体的分类,由于干扰因素较大,不容易取得十分理想的效果,故在地质应用上尚不很普遍。但最近已陆续出现了一批使用分类技术的遥感地质应用成果,较多的是用经变换(比值、K-L等)处理的图像再作分类处理,用于岩性填图或热液蚀变填图等,是值得重视的发展方向。
判别分析又称“分辨法”,是在分类确定的条件下,根据某一研究对象的各种特征值判别其类型归属问题的一种多变量统计分析方法。
y=a1x1+a2x2+……+anxn(a1为系数,Xn为变量)。事先非常明确共有几个类别,目的是从已知样本中训练出判别函数
1各自变量为连续性或有序分类变量
2自变量和因变量符合线性假设
3各组的协方差矩阵相等,类似与方差分析中的方差齐
4变量间独立,无共线性
注:违反条件影响也不大,主要看预测准不准,准的话违反也无所谓
1对客户进行信用预测;2寻找潜在客户等
1最大似然法
适用于 自变量均为分类变量 的情况,算出这些情况的概率组合,基于这些组合大小进行判别
2距离判别
对新样品求出他们离各个类别重心的距离远近,适用于 自变量均为连续变量 的情况, 对变量分布类型无严格要求
3Fisher判别法
与主成份分析有关,对分布、方差等都没有什么限制,按照类别与类别差异最大原则提取公因子然后使用公因子判别
4Bayes判别
强项是进行多类判别,要求总体呈多元正态分布 。利用贝叶斯公式,概率分布逻辑衍生出来一个判别方法,计算这个样本落入这个类别的概率,概率最大就被归为一类
在spss中一般用Fisher判别即可,要考虑概率及误判损失最小的用Bayes判别,但变量较多时,一般先进行逐步判别筛选出有统计意义的变量,但通常在判别分析前我们已经做了相关的预分析,所以不推荐使用逐步判别分析(采用步进法让自变量逐个尝试进入函数式,如果进入到函数式中的自变量符合条件,则保留在函数式中,否则,将从函数式中剔除)。
都是研究分类的。聚类分析,对总体到底有几种类型不知道(研究分几类较为合适需从计算中加以调整)。判别分析则是在总体类型划分已知,对当前新样本判断它们属于哪个总体。如我们对研究的多元数据的特征不熟悉,当然要进行聚类分析,才能考虑判别分析问题。
1自身验证(拿训练数据直接预测验证,但是对预测样本预测好不代表对新样本预测好)
2外部数据验证(收集新的数据来验证,这是最客观最有效的,但是麻烦而且两次收集的数据不一定是同质的)
3样本二分法(一般划分2/3为训练集,1/3为验证集,但是浪费了1/3的样本)
4交互验证(Cross-Validation)----刀切法(10分法,数据划分为10个集合,每次挑选一个出来做验证集,其余9个做训练集,可以做10次,因为验证集可换10种可能)
在spss软件中通过分析—留一分类获得此项结论。
下面采用实例来说明。
如下图-1数据集包含了刚毛、变色、弗吉尼亚这三种鸢尾花的花萼长、宽和花瓣长、宽,分析目的是希望能够使用这4个变量来对花的种类进行区分。spno为事先的分组,度量标准设为名义。
主要是对假设条件的检验,在spss中 分析—描述统计—描述 ,如图-2
如图-3可以看到数据的分布没有特别的离异点,也没有缺失值和不合理的分布,从而可以用该数据做接下来的判别分析。
1)选择分类变量及其范围:如图-4所示
分组变量矩形框中选择表明已知的观测量所属类别的变量(一定是离散变量),在定义范围框最小值中输入该分类变量的最小值,最大框中输入该分类变量的最大值。
2) 指定判别分析的自变量
3) 选择观测量
如果希望使用一部分观测量进行判别函数的推导而且有一个变量的某个值可以作为这些观测量的标识,则用Select 功能进行选择,键入标识参与分析的观测量所具有的该变量值, 一般均使用数据文件中的所有合法观测量此步骤可以省略。
4) 选择分析方法:如图-5所示
一起输入自变量 选项,当认为所有自变量都能对观测量特性提供丰富的信息时,使用该选择项。选择该项将不加选择地使用所有自变量进行判别分析,建立全模型,不需要进一步进行选择。
使用步进式方法 选项,当不认为所有自变量都能对观测量特性提供丰富的信息时,使用该选择项。因此需要判别贡献的大小,再进行选择当鼠标单击该项时方法按钮加亮,可以进一步选择判别分析方法。一般我们做判别分析前已经做了相关的预分析(不推荐)。
如图-6所示方法选项:步进法让自变量逐个尝试进入函数式,如果进入到函数式中的自变量符合条件,则保留在函数式中,否则,将从函数式中剔除。可供选择的判别分析方法有:
1Wilks'lambda 选项,它是组内平方和与总平方和之比,用于描述各组的均值是否存在显著差别,当所有观测组的均值都相等时,Wilks’lambda值为1;当组内变异与总变异相比很小时,表示组件变异较大,表示组间变异较大,系数接近于0。系统默认选项。
2未解释方差。 它指把计算残余最小的自变量优先纳入到判别函数式中。
3Mahalanobis’距离 。它把每步都使靠得最近的两类间的马氏距离最大的变量进入判别函数
4最小 F值。它把方差差异最大的自变量优先纳入到判别函数中。
5Rao’s V 。劳氏增值法:它把劳氏统计量V产生最大增值的自变量优先纳入到判别函数中。可以对一个要加入到模型中的变量的V 值指定一个最小增量。选择此种方法后,应该在该项下面的V-to-enter 后的矩形框中输入这个增量的指定值。当某变量导致的V值增量大于指定值的变量后进入判别函数。
标准:选择逐步判别停止的判据
1使用F值。系统默认的判据。当加人一个变量(或剔除一个变量)后,对在判别函数中的变量进行方差分析。当计算的F值大于指定的进入值时,该变量保留在函数中。默认值是384:当该变量使计算的F值小于指定的删除值时,该变量从函数中剔除。默认值为271。即当被加入的变量F 值为384 时才把该变量加入到模型中,否则变量不能进入模型;或者,当要从模型中移出的变量F值<271时,该变量才被移出模型,否则模型中的变量不会被移出设置这两个值时应该注意进入值>删除值。
2使用F检的概率。决定变量是否加入函数或被剔除的概率而不是用F值。加入变量的F值概率的默认值是005(5%),移出变量的F值概率是010(10%)。删除值(移出变量的F值概率) >进入值(加入变量的F值概率)。
输出:对于逐步选择变量的过程和最后结果的显示可以通过输出栏中的两项进行选择:
1步进摘要。要求在逐步选择变量过程中的每一步之后显示每个变量的统计量。
2两两组间距离的F值。要求显示两两类之间的两两F值矩阵。
这里我们选择建立全模型,所以不用对方法进行设置。
如图-7所示statistics选项:可以选择的输出统计量分为以下3 类:
(1) 描述性
1平均值。可以输出各类中各自变量的均值、标准差和各自变量总样本的均值和标准差。
2单变量ANOVA复选项。对各类中同一自变量均值都相等的假设进行检验,输出单变量的方差分析结果。
3Box’s M 复选项。对各组的协方差矩阵相等的假设进行检验。如果样本足够大,差异不显著的p值表明矩阵差异不明显。
(2)函数系数栏:选择判别函数系数的输出形式
1Fisherh’s。给出Bayes判别函数的系数。对每一类给出一组系数,并给出该组中判别分数最大的观测量。(注意:这个选项不是要给出Fisher判别函数的系数。这个复选框的名字之所以为Fisher’s,是因为按判别函数值最大的一组进行归类这种思想是由Fisher提出来的。这里极易混淆,请注意辨别。)
2未标准化。给出未标准化的判别函数(即典型判别函数)的系数(SPSS默认给出标准化的判别函数信息)。
(3)矩阵
1组内相关。即类内相关矩阵,它是根据在计算相关矩阵之前将各组(类)协方差矩阵平均后计算类内相关矩阵。
2组内协方差。即计算并显示合并类内协方差矩阵,是将各组(类)协方差矩阵平均后计算的。区别于总协方差阵。
3分组协方差。对每类输出显示一个协方差矩阵。
4总体协方差。计算并显示总样本的协方差矩阵。
如图-8所示分类选项:
(1) 先验概率:两者选其一
1所有组相等。各类先验概率相等。若分为m类,则各类先验概率均为1/m。系统默认
2根据组大小计算。由各类的样本量计算决定,即各类的先验概率与其样本量成正比。
(2) 使用协方差矩阵 :选择分类使用的协方差矩阵
1在组内。指定使用合并组内协方差矩阵进行分类。系统默认
2分组。指定使用各组协方差矩阵进行分类。
由于分类是根据判别函数,而不是根据原始变量,因此该选择项不是总等价于二次判别。
(3) 图:选择要求输出的统计图
1合并组。生成一张包括各类的散点图。该散点图是根据前两个判别函数值作的散点图。如果只有一个判别函数就输出直方图。
2分组。根据前两个判别函数值对每一类生成一张激点图,共分为几类就生成几张散点图。如果只有一个判别函数就输出直方图。
3区域图。生成用于根据函数值把观测量分到各组中去的边界图。此种统计图把一张图的平面划分出与类数相同的区域。每一类占据一个区各类的均值在各区中用号标出。如果仅有一个判别函数,则不作此图。
(4) 输出栏:选择生成到输出窗中的分类结果
1个案摘要。要求输出每个观测量包括判别分数、实际类、预测类(根据判别函数求得的分类结果)和后验概率等。选择此项还可以选择其附属选择项:将个案限制在前,并在后面的小矩形框中输入观测量数n选择。此项则仅对前n个观测量输出分类结果。观测数量大时可以选择此项。
2摘要表。要求输出分类的小结,给出正确分类观测量数(原始类和根据判别函数计算的预测类相同)和错分观测量数和错分率。
3不考虑该个案时的分类(留一分类)。输出对每个观测量进行分类的结果,所依据的判别是由除该观测量以外的其他观测量导出的,也称为交互校验结果。建议勾选
(5)使用均值替换缺失值:即用该类变量的均值代替缺失值。缺失值缺失大于10%,不介意勾选
本例中如图-8中勾选。
如图-9所示保存选项:指定生成并保存在数据文件中的新变量
1预测组成员。要求建立一个新变量,预测观测量的分类。是根据判别分数把观测量按后验概率最大指派所属的类。每运行一次Discriminant过程,就建立一个表明使用判别函数预测各观测量属于哪一类的新变量。第1 次运行建立新变量的变量名为dis_l,如果在工作数据文件中不把前一次建立的新变量删除,第n次运行Descriminant 过程建立的新变量默认的变量名为dis_n。
2判别分数。要求建立fisher判别分数的新变量。该分数是由未标准化的判别系数乘自变量的值,将这些乘积求和后加上常数得来。每次运行Discriminant过程都给出一组表明判别分数的新变量,建立几个判别函数就有几个判别分数变量。
3 组成员概率。Bayes后验概率值。有m类,对一个观测量就会给出m个概率值,因此建立m个新变量。
本例不勾选。
下面为最重要的结果,可在撰写结论使用。
spss会自动给出未知分类的预测结果的。
比如有10行已知分类的数据,5行未知分类的数据,那么判别分析的结果将给出15行所有数据的预测分类结果。
通过对比10行已知分类数据与预测分类比较,可以看出预测的效果咋样。
支持向量机有判别函数。预测未知样本时,是将样本信息输入至判别函数中,然后得到分类结果。
判别函数的产生,就是通过训练来得到的。
所以,分类的步骤为:通过对训练样本的训练,得到判别函数。再将未知样本的信息输入至判别函数,就可以得到结果。
具体的支持向量机的模型,可以参照《模式识别》一书中的讲解或者研究者的论文。
见截图
B1输入
=IF(ISNUMBER(FIND("牌",A2)),"吊牌",IF(ISNUMBER(FIND("贴",A2)),"贴纸",IF(ISNUMBER(FIND("腰封",A2)),"其他","织标")))
公式下拉
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)