神经网络课程设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
分类器检验
out = sim(net, tstS.P);
表现分析
[y_out,I_out] = max(out); [y_t,I_t] = max(tstS.T); diff = [I_t - 2*I_out]; f_f = length(find(diff==-2)); % Female crabs classified as Female f_m = length(find(diff==-3)); % Female crabs classified as Male m_m = length(find(diff==-1)); % Male crabs classified as Male m_f = length(find(diff==0)); % Male crabs classified as Female N = size(tstS.P,2); % Number of testing samples fprintf('Total testing samples: %d\n', N); cm = [f_f f_m; m_f m_m] % classification matrix
以蟹分类为例
导入数据 fid = fopen('private/crabdata.csv'); C= textscan(fid,'%f%f%f%f%f%f%s','delimiter', ','); fclose(fid);
数据转换
physchars = [C{1} C{2} C{3} C{4} C{5} C{6}]; % inputs to neural network female = strncmpi(C{7}, 'Female', 1); male = strncmpi(C{7}, 'Male', 1); sex = double([female male]);
实验数据
运行main.m,输出一个300行7列的矩阵 data。 矩阵的每行对应一个学生六门课的成绩及 相应的等级。 矩阵的前6列是6门课的成绩,第7列为学生 等级。 1—优;2—良;3—中;4—差
一个实例:蟹的性别识别
此例说明如何根据蟹的物理量测数据,来 建立神经网络分类器,使得神经网络能识 别蟹的性别。 共考虑了6个物理特征: species, frontallip, rearwidth, length, width and depth。 根据观察到的这6个生理特征辨别蟹的性别。
数据预处理
physchars = physchars'; sex = sex'; [physchars,ps] = mapminmax(physchars); % Normalize inputs
建立神经网络分类器
rand('seed', 491218382) nout = size(sex,1); % Number of outputs = 2 net = newff(minmax(physchars),[20 nout]); % 创建一个新的前馈反向传播网络,包括 一个隐层20个神经元,一个输出层2个神经 元。
神经网络课程设计
俞 辉 三峡大学理学院 Email:yuhui@ctgu.edu.cn
构建基于神经网络的学生成绩 评价系统
问题:构建基于神经网络的学生成绩评价 系统。通过对神经网络进行训练,使其能 对学生的成绩进行综合评价。 目的:通过本课程设计,巩固课堂理论知 识,了解神经网络的实际应用。 实验数据:运行老师提供的main.m程序自 动产生学生成绩及等级数据。
结果矩阵
Total testing samples: 20 cБайду номын сангаас = 10 0 1 9
百分比表示
cm_p = (cm ./ N) .* 100 % classification matrix in percentages fprintf('Percentage Correct classification : %f%%\n', 100*(cm(1,1)+cm(2,2))/N); fprintf('Percentage Incorrect classification : %f%%\n', 100*(cm(1,2)+cm(2,1))/N);
数据集被分成3个部分
[trS, cvS, tstS] = dividevec(physchars, sex, 0.1, 0.1); trS 表示训练样本 cvS 表示交叉验证样本 tstS 表示检验样本
神经网络训练
net = train(net, trS.P, trS.T, [], [], cvS, tstS);
为什么要使用神经网络?
理论及实践说明神经网络可以充当一个好 非线性问题。 的分类器,特别是对非线性问题 非线性问题 在蟹的分类问题中,6个生理特征将作为神 经网络的输入,蟹的性别作为输出。 要使神经网络成为一个分类器,必须对神 经网络进行训练。
准备数据
在分类问题中,经常遇到一些文本及非数 值的信息,然而神经网络不能处理这些非 数值的信息。例如本例中蟹的性别信息 (male/female,)。 在对神经网络进行训练前,必须进行转换。
百分比结果
cm_p = 50 5 0 45 Percentage Correct classification : 95.000000% Percentage Incorrect classification : 5.000000%