


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Fisher 线性判别准则设计分类器1)编程实现算法#include stdio.h#include math.h#include stdlib.h#define trainingnum 100#define testingnum 100#define feadim 2#define N1 50#define N2 50double s1feadimfeadim,s2feadimfeadim;/两类样本类内离散度矚慫润厲钐瘗睞枥庑赖賃軔朧。double m1feadim1,m2feadim1; /两类样本的均值double inswfeadimfeadim;/存放 sw 的逆矩阵double
2、wfeadim1;/存放解结果double _m1,_m2,yo; / 存放 m1,m2double ytestingnum;/ 一维空间样本int right,wrong;/ 存放识别的结果struct samplechar serial4; / 序号float featurefeadim1;/存储身高与体重int trueclass; / 真实类别int classifiedclass; / 被识别的分类;/打印矩阵void PrintOut(double Mfeadimfeadim)int i,j;for(i = 0; ifeadim; i+) /行for(j=0; jfeadim; j
3、+)printf(%8.2f,Mij);printf(n);/采用部分主元法的高斯消去法求方阵A 的逆矩阵B1 / 9/A 方阵(IN)/n 方阵的阶数(IN)/B 方阵(OUT)/返回 true 说明正确计算出逆矩阵/返回 false 说明矩阵A 不存在逆矩阵bool gaussj(double Afeadimfeadim, double Bfeadimfeadim)聞創沟燴鐺險爱氇谴净祸測樅。int i,j,k;double lMax,temp;/临时矩阵存放Adouble ttfeadimfeadim;for(i=0;ifeadim;i+)for(j=0;jfeadim;j+)ttij
4、= Aij;/初始化 B 为单位阵for(i=0;ifeadim;i+)for(j=0;jfeadim;j+)if(i!=j)Bij = 0;else Bij = 1;for(i=0;ifeadim;i+)/寻找主元lMax = ttii;k = i;for(j=i+1;j fabs(lMax)lMax = ttji;k = j;/如果主元所在行不是第i 行,进行行交换2 / 9if(k!=i)for(j=0;jfeadim;j+)temp = ttij ;ttij = ttkj;ttkj = temp;/B 伴随计算temp = Bij;Bij = Bkj;Bkj = temp;/判断主元是
5、否是 0,如果是,则矩阵 A 不是满秩矩阵,不存在逆矩阵 if(ttii = 0) return false;/消去 A 的第 i 列除去 i 行以外的各行元素temp = ttii;for(j=0;jfeadim;j+)ttij = ttij / temp; /主对角线上元素变成1Bij = Bij / temp; /伴随计算for(j=0;j nif(j!=i) / 不是第 i 行temp = ttji;for(k=0;kCvoid Multi(double Afeadimfeadim, double Bfeadim1, double Cfeadim1)残骛楼諍锩瀨濟溆塹籟婭骒東。int
6、i,j,k;for(i=0;ifeadim;i+)for(j=0;j1;j+)Cij = 0;for(k=0;kfeadim;k+)Cij += Aik * Bkj;/主程序void main() sample xtrainingnum; sample Xtestingnum; int i,j,k;int sflag;double inswfeadimfeadim,swfeadimfeadim;/存放 sw 的逆矩阵及sw 酽锕极額閉镇桧猪訣锥顧荭钯。double pmfeadim1;/ 存放 m1-m2double inw1feadim;/存放 w 的转置char snum4;float s
7、height,sweight;double temp1feadim1,temp2feadim1,temp111feadim,temp221feadim;/在求 s1,s2 时存放临时数据 彈贸摄尔霁毙攬砖卤庑诒尔肤。/读入训练样本FILE *fp;if(fp=fopen(StudentsData1.txt,r)=NULL)printf(Cant open file);exit(0);for(j=0; jtrainingnum; j+)fscanf(fp,%s%d%f%f,&snum,&sflag,&sheight,&sweight);謀荞抟箧飆鐸怼类蒋薔點鉍杂。4 / 9xj.feature0
8、0=sheight;xj.feature10=sweight;xj.trueclass=sflag;for(k=0;k4;k+)xj.serialk=snumk;fclose(fp);/*for(i=0;i10;i+) /测试输出printf(%s%3d%8.2f%8.2fn,xi.serial,xi.trueclass,xi.feature00,xi.feature10);厦礴恳蹒骈時盡继價骚卺癩龔。*/for(i=0;iN1;i+) /计算 m1,m2 for(j=0;jfeadim;j+) m1j0+=xi.featurej0/N1;for(i=N1;i2*N1;i+)for(j=0;j
9、feadim;j+)m2j0+=xi.featurej0/N2;printf(m1,m2 的结果如下: n); printf(- n); for(j=0;jfeadim;j+)printf(%5.2f%8.2fn,m1j0,m2j0); /输出 m1,m2 计算结果 茕桢广鳓鯡选块网羈泪镀齐鈞。for(i=0;iN1;i+) /计算 s1,s2 for(j=0;jfeadim;j+) temp1j0=xi.featurej0-m1j0; for(j=0;jfeadim;j+) / 转置 temp1 temp110j=temp1j0;for(k=0;kfeadim;k+)/求 s1for(j=0
10、;jfeadim;j+)s1kj+=temp1k0*temp110j;for(i=N1;i2*N1;i+)for(j=0;jfeadim;j+)5 / 9temp2j0=xi.featurej0-m2j0;for(j=0;jfeadim;j+) /转置 temp2temp220j=temp2j0;for(k=0;kfeadim;k+)/求 s2for(j=0;jfeadim;j+)s2kj+=temp2k0*temp220j;/* for(j=0;j2;j+)temp110j=temp1j0;temp220j=temp2j0;*/printf(n);printf(s1 的结果如下:n);pri
11、ntf(- n);PrintOut(s1);printf(n);printf(s2 的结果如下:n);printf(- n);PrintOut(s2);/求 swfor(i=0;ifeadim;i+)for(j=0;jfeadim;j+)swij=s1ij+s2ij;printf(n);printf(sw :n);printf(- n);PrintOut(sw);if(!gaussj(sw,insw)/ 求 sw 的逆矩阵printf( 没有逆矩阵!n);elseprintf(n 的逆矩阵是 :n);for(i=0;ifeadim;i+)for(j=0;jfeadim;j+)printf(%1
12、1.7f,inswij);printf(n);6 / 9for(i=0;ifeadim;i+)/计算 m1-m2pmi0=m1i0-m2i0;Multi(insw,pm,w);/计算 w= 逆 sw*(m1-m2)printf(n 解 w 的结果是 :n);for(i=0;ifeadim;i+)printf(%11.7fn,wi0);for(i=0;ifeadim;i+) /转置 winw0i=wi0;for(i=0;ifeadim;i+) /计算一维空间的样本均值m1,m2_m1+=inw0i*m1i0;_m2+=inw0i*m2i0;yo=(_m1+_m2)/2;/ 计算阈值yo/读入测试
13、样本FILE *fr;if(fr=fopen(StudentsData2.txt,r)=NULL)printf(Cant open file);exit(0);for(j=0; jtestingnum; j+) /读入数据fscanf(fr,%s%d%f%f,&snum,&sflag,&sheight,&sweight);鹅娅尽損鹌惨歷茏鴛賴縈诘聾。Xj.feature00=sheight;Xj.feature10=sweight;Xj.trueclass=sflag;for(k=0;k4;k+)Xj.serialk=snumk;Xj.classifiedclass=-1;/ 初始化被识别的类别fclose(fr);/进行判别for(i=0;itestingnum;i+)for(j=0;jfeadim;j+)yi+=inw0j*Xi.featurej0;if(yiyo)Xi.classifiedclass=-1;else7 / 9Xi.classifiedclass=1;for(i=0;itestingnum;i+)if(Xi.trueclass=Xi.classi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智慧分享2025年商务英语考试试题及答案
- 数电考试试题及答案
- 新能源汽车电池技术法规试题及答案
- 家居设计的资源配置考核题及答案
- 替代燃料在汽车中的应用分析试题及答案
- 家具行业品牌差异化策略试题及答案
- 电池成本控制技术的市场应用试题及答案
- 大学物理平衡与协调能力考察试题及答案
- 新能源汽车的用户忠诚度建设试题及答案
- 施工安全风险评估必考试题及答案
- 水利水电工程技术术语全
- 2024-2025教科版科学一年级下册第二单元测试卷及答案
- 中国共产主义青年团纪律处分条例试行解读学习
- 数字孪生技术在智慧能源系统中的挑战与机遇
- 抛石专项施工方案
- 客服代理合同协议
- 2025中国汽车出海潜在市场研究:澳大利亚篇-2025-03-市场解读
- 高中女生预防性侵教育
- 合同归档培训课件
- 《词根词缀记词法》课件
- 感恩父母养育之恩主题班会
评论
0/150
提交评论