c语言iso校验算法,模式识别c语言ISODATA算法.doc

44cb7578e1df5412b94317daaa3307ba.gif模式识别c语言ISODATA算法.doc

下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。

2.下载的文档,不会出现我们的网址水印。

3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。

文档包含非法信息?点此举报后获取现金奖励!

下载文档到电脑,查找使用更方便

18

积分

还剩页未读,继续阅读

关 键 词:模式识别

语言

ISODATA

算法

资源描述:

c语言编写的ISODATA程序

#include#include#include#include#include#include#define MAXNUM 100 //最大模式个数

#define MAXDIM 10 //最大模式维数

#define K 0.5 //分裂时使用的比值

#define MAXDOUBLE 1.0e20 //最大双精度值

#define N 10 //实际模式个数

#define DIM 2 //实际模式维数

struct Pattern //模式结构体

{

int n; //模式序号

float s[MAXDIM]; //模式数据

};

struct Cluster //类结构体

{

struct Pattern z; //类中心

int n; //类中包含的模式数目

float avg_d; //模式到类心的平均距离

struct Pattern y[MAXNUM]; //模式

float sigma[MAXDIM]; //分量的标准差

int max; //用于记录类内距离标准差矢量最大的分量下标

float sigma_max; //类内分量距离标准差最大值

};

struct Pattern InitPattern(int i,float a,float b) //对样本模式进行初始化

{

struct Pattern temp;

temp.n=i;

temp.s[0]=a;

temp.s[1]=b;

return temp;

}

//以下为各参数声明

int c=3; //预期的类数

int Nc=1; //初始聚类中心个数

int ON=1; //每一类中允许的最少模式数(小于此数不可单独成类)

float OS=1; //类内分量分布的标准差上限(大于此数就分裂)

float OC=4; //两类中心间的最小距离下限(小于此数两类合并)

int L=1; //在每次迭代中可以合并的类的最大对数

int I=8; //最多迭代次数

struct Pattern x[N]; //全部模式

struct Cluster w[N]; //全部类

float D[MAXNUM][MAXNUM]; //各类对中心间的距离

float dis; //总体平均距离

int iter=1; //记录迭代次数

int i,j; //循环变量

//以下为程序用到的调用函数

void Init();

void ISODATA();

void InitCenter();

void Clustering();

float Distance(struct Pattern x1,struct Pattern x2);

struct Cluster Insert(struct Pattern a,struct Cluster b);

int CheckAndUnion();

void CalParameter();

struct Pattern CalCenter(struct Cluster a);

float Cal_D(int i);

void CalSigma();

int divide();

void CalCenterDis();

int UnionByOC();

void Union(int a,int b);

void PrintCluster();

void main()

{

Init();

printf("\n****************** ISODATA 算法程序 **************************\n");

printf("本实验使用样本集如下:\n");

x[0]=InitPattern(0,0,0);

x[1]=InitPattern(1,3,8);

x[2]=InitPattern(2,2,2);

x[3]=InitPattern(3,1,1);

x[4]=InitPattern(4,5,3);

x[5]=InitPattern(5,4,8);

x[6]=InitPattern(6,6,3);

x[7]=InitPattern(7,5,4);

x[8]=InitPattern(8,6,4);

x[9]=InitPattern(9,7,5);

for(i=0;itemp)

{

min=temp;

l=j;

}

}

w[l]=Insert(x[i],w[l]);

}

}

float Distance(struct Pattern x1,struct Pattern x2) //计算两个模式距离的函数

{

int i;

float temp=0.0;

for(i=0;idis)&&(w[j].n>2*(ON+1))||(Nc<=c/2))

{

i=w[j].max;

for(l=Nc;l>j;l--)

w[l].z=w[l-1].z;

w[j+1].z.s[i]-=K*sigma_temp;

w[j].z.s[i]+=K*sigma_temp;

Nc++;

return 1;

}

}

return 0;

}

void CalCenterDis() //计算各类对中心间的距离

{

int i,j;

for(i=0;ik;l--)

Dmin[l]=Dmin[l-1];

Dmin[k].d=D[i][j];

Dmin[k].i=i;

Dmin[k].j=j;

break;

}

for(i=0;i-1&&Dmin[i].j>-1)

{

Union(Dmin[i].i,Dmin[i].j);

flag=1;

}

for(j=0;j=2*c)||iter%2==0)

goto step8;

step6:

CalSigma();

step7:

if(divide())

{

iter++;

goto step2;

}

step8:

CalCenterDis();

step9:

if(UnionByOC())

changed=1;

step10:

if(iter>=I) //判断循环还是退出

{

printf("---------------经过 %d 次迭代,达到迭代次数--------------\n",iter);

return;

}

else

{

if(changed==1)

{

char ch;

iter++;

printf("本次迭代完成,是否需要改变参数(Y/N)??:");

while(!isspace(ch=getchar()));

if(ch==y||ch==Y)

goto start;

else goto step2;

}

else

{

iter++;

goto step2;

}

}

}

展开阅读全文

温馨提示:

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。

2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。

3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。

4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。

5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。

6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。

7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

bb6249c6567dd4384e6ab3556cfc22ed.gif 

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

关于本文

本文标题:模式识别c语言ISODATA算法.doc

链接地址:https://www.renrendoc.com/p-40259822.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/408815.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2018 总结 2019 展望

今天是 2018 年的最后一天了&#xff0c;照例还是需要对今年做个总结的&#xff01;2018 总结1. 工作今年其实是分两个阶段&#xff0c;上半年还是研究生的最后半年&#xff0c;努力的赶完毕业论文&#xff0c;顺利通过了盲审和毕业答辩&#xff0c;也算是给自己的学业生涯画上…

程序员的数学笔记1--进制转换

最近在学习极客时间的课程–程序员的数学基础课。 课程地址&#xff1a;https://time.geekbang.org/column/intro/143 这是第一节课程的学习笔记–有关进制的转换。 二进制 什么是二进制 十进制计数是使用 10 作为基数&#xff0c;例如一个数字&#xff1a;2871&#xff0c…

android层级关系图,画出 View 的层级 3D 图和树形图来分析层级关系

HierarchyLayout 介绍HierarchyLayout是一个自定义的ViewGroup工具&#xff0c;用于分析视图的层级关系&#xff0c;并画出层级树的结构图和可交互的3D 层级View:HiearchyLayout的静态图&#xff0c;实际是可随手势改变 3D 形态的。hierarchyView.jpeghierarchyViewNode.jpeghi…

换个角度看GAN:另一种损失函数

转载自&#xff1a;机器之心选自Medium作者&#xff1a;Phc L机器之心编译参与&#xff1a;张玺「本质上&#xff0c;GAN 就是另一种。」Jeremy Howardf 老师曾在&#xff08;GAN&#xff09;课程中说过&#xff1a;「……本质上&#xff0c;GAN 就是另一种损失函数。」本文将在…

程序员的数学笔记2--余数

上一节程序员的数学笔记1–进制转换是介绍了进制&#xff0c;特别是十进制和二进制之间的转换&#xff0c;移位操作和逻辑操作。 今天介绍的是余数&#xff0c;看完本节笔记&#xff0c;你会发现生活中有很多东西都有余数的影子。 余数 余数的特性 整数是没有边界的&#xf…

机器学习入门系列(1)--机器学习概览

本文比较长&#xff0c;八千字&#xff0c;建议收藏起来慢慢看&#xff01;此外&#xff0c;这其实是合并公众号最开始写的两篇文章&#xff0c;整合在一起了。机器学习入门系列(1)--机器学习概览(上)机器学习入门系列(2)--机器学习概览(下)主要参考《hands-on-ml-with-sklearn…

[bbk5307]第76集 第9章 -数据库性能维护 03

/* Oracle optimizer 执行选择方式原理分析 */ select * from emp where empno7369; oracle在执行查询计划的时候&#xff0c;并不是说要执行一次全表扫描和一次索引扫描之后&#xff0c;来决定到底是走哪一条路?而是通过数据字典里的统计数据信息&#xff0c;来分析判断到底是…

[资源]推荐一些Python书籍和教程,入门和进阶的都有!

前几天后台有读者留言说希望推荐一些入门的书籍&#xff0c;所以这几天都在整理一些我入门时候学习过的书籍教程&#xff0c;或者是口碑还不错的书籍&#xff01;入门和进阶书籍教程入门和进阶方面的书籍教程&#xff0c;这里推荐两本书和一个教程。1. 廖雪峰老师的 Python 教程…

html 状态栏不显示文字,电脑打字的时候输入法不显示状态栏怎么办?

有时我们在打字的时候&#xff0c;输入法不显示&#xff0c;能打出汉字&#xff0c;但无法选字&#xff0c;这就给输入字体造成了很大的麻烦。怎么解决呢&#xff1f;下面以搜狗输入法为例&#xff0c;描述详细解决过程。解决方法一1、我在某个网页输入字体的时候&#xff0c;没…

系统在iis6上部署

1. 安装Framework 4.0 服务器安装Framework4.0版本。 2. 安装IIS 2.1 安装IIS6.0步骤 1) 在添加或删除程序,单击“添加/删除Windows组件”。 2) 勾选“应用程序服务器”&#xff0c;并单击“详细信息”。 3) 勾选“ASP.NET/IIS/启用网络COM访问/启用网络DTC访问”信…

[Github 项目推荐] 一个更好阅读和查找论文的网站

第 28 篇原创文章机器学习发展到现在&#xff0c;已经积累了非常多的文章&#xff0c;特别是深度学习火起来后&#xff0c;每年新增加的论文非常多&#xff0c;如果需要研究某个领域&#xff0c;不仅需要阅读这个领域经典的论文&#xff0c;也必须时刻关注最新的学术进展&#…

html下拉选择框箭头改为年,CSS自定义select下拉选择框的样式(不用其他标签模拟)...

今天群里有人问到怎么自定义select下拉选择框的样式&#xff0c;于是群里就展开了激烈的讨论&#xff0c;刚开始一直就是考虑怎样使用纯CSS实现&#xff0c;把浏览器默认的样式覆盖掉&#xff0c;但最后均因兼容问题处理不好而失败告终&#xff0c;最后的解决方案就是用其他的元…