螃蟹的分类

这个例子的目的是根据螃蟹的品种、背壳的长宽等等属性来判断螃蟹的性别,雄性还是雌性。

训练数据一共有六个属性:

  species, frontallip, rearwidth, length, width and depth.

这里每个属性所对应的是螃蟹哪一部分的真实性状并不是关键。我们关心的只是已知样本是6维的向量,输出是0/1值,

求分类效果最好的网络模型。

首先载入样本数据

[x,t] = crab_dataset;
% size(x) = [6, 200];
% size(t) = [2, 200];

然后初始化神经网络

例子里使用含有一层隐含层的模型,隐含层有10个神经元。调用Matlab的patternnet()函数。

net = patternnet(10);
view(net)
----------------------------

patternnet()函数的参数有(hiddenSizes,trainFcn,performFcn)三个。hiddenSizes默认值是10,可以用数组表示多个隐含层。trainFcn默认值是'trainscg',Performance function默认值是'crossentropy'。如果想要有两个隐含层,每层的神经元都是10个,则可以写成

net = patternnet([10,10]);

接下去是训练网络。把网络模型、训练样本和测试样本作为参数传入train()函数。系统自动将数据分为training和validation.

[net,tr] = train(net,x,t);
nntraintool
--------------------------

可以在窗口点击Performance或者调用PLOTPERFORM查看训练的过程。

plotperform(tr)
------------------------

测试分类器

testX = x(:,tr.testInd);
testT = t(:,tr.testInd); testY = net(testX);
testIndices = vec2ind(testY);
plotconfusion(testT,testY);

下图表示的是分类器的效果。绿色表示分类器的分类结果和测试数据的label一致,红色表示两者结果不一致。红色区域内的百分数越小,说明分类器结果的误差越小,分类结果越好。如果误差过大,则需要增加样本进再行训练或者增加隐含层的神经元个数。

Matlab神经网络工具箱学习之二的更多相关文章

  1. Matlab神经网络工具箱学习之一

    1.神经网络设计的流程 2.神经网络设计四个层次 3.神经网络模型 4.神经网络结构 5.创建神经网络对象 6.配置神经网络的输入输出 7.理解神经网络工具箱的数据结构 8.神经网络训练 1.神经网络 ...

  2. MATLAB地图工具箱学习总结(二)大圆和恒向线

    MATLAB地图工具箱学习总结(二)大圆和恒向线 今天要和大家谈一谈大圆.恒向线航道的画法.还是先从案例开始说起,再分别介绍相关的函数. 1                    作业案例:地图投影作 ...

  3. MATLAB地图工具箱学习心得(二)设计可变参数和位置拾取的“放大镜”式投影程序

    最近刚好因为一些原因整理这方面的内容,所以还是把这篇鸽了一年多的博客顺手写出来了∠( ᐛ 」∠)_.因为是当时课程设计的一部分,程序上难免会有一些不足和bug,在这里将设计的思路分享给大家. 本篇博客 ...

  4. MATLAB地图工具箱学习总结(一)从地图投影说起

    MATLAB地图工具箱学习总结(一)从地图投影说起 前言 本学期地图投影课上,李连营老师建议我们使用MATLAB完成每周的作业.从大二上学期开始接触MATLAB学习数学运算和地理数据处理的我,自然不会 ...

  5. 12.Matlab神经网络工具箱

    概述: 1 人工神经网络介绍 2 人工神经元 3 MATLAB神经网络工具箱 4 感知器神经网络 5 感知器神经网络 5.1 设计实例分析 clear all; close all; P=[ ; ]; ...

  6. MATLAB地图工具箱学习心得(一)关于地图分带投影的拼接

    关于matlab地图投影系列: MATLAB地图工具箱学习心得(二)设计可变参数和位置拾取的"放大镜"式投影程序 --- 本学期的地图投影课程已经结束了,这篇博客用于记录自己在学习 ...

  7. MATLAB地图工具箱学习总结(四)自定义投影

    MATLAB地图工具箱学习总结(四)自定义投影 这是本系列的最后一篇文章,准备给大家讲讲自定义投影怎么做.在做这项作业的时候,自己也是花了不少时间,将所有地图投影源文件都看了一遍,简单分析了一下源代码 ...

  8. MATLAB地图工具箱学习总结(三)地图工具箱的基本知识

    MATLAB地图工具箱学习总结(三)地图工具箱的基本知识 今天想要介绍的是一些比较基础的函数.了解了这些函数,地图投影的基本概念才能真正明白.而要想继续研究MATLAB中有关地图投影的函数,尤其是未来 ...

  9. matlab神经网络工具箱创建神经网络

    为了看懂师兄的文章中使用的方法,研究了一下神经网络 昨天花了一天的时间查怎么写程序,但是费了半天劲,不能运行,百度知道里倒是有一个,可以运行的,先贴着做标本 % 生成训练样本集 clear all; ...

随机推荐

  1. 完美实现自己的GetProcAddress函数(转载)

    我们知道kernel32.dll里有一个GetProcAddress函数,可以找到模块中的函数地址,函数原型是这样的: WINBASEAPI FARPROC WINAPI GetProcAddress ...

  2. mysql的binlog

    mysql> show global variables like '%bin%'; +---------------------------------+------------------- ...

  3. Win7 Print Spooler服務自动关闭

    对于Win7系统而言,该问题通常是安装了错误的打印驱动引起的,Win7系统为了保护其它进程不受干扰,自动关闭了打印服务. 解决方法就是: a> 把不用的打印机删掉. b> 确保你安装了正确 ...

  4. 增加JVM虚拟机内存,防止内存溢出

    JAVA_OPTS=-Xms512m -Xmx1024m -XX:PermSize=256M -XX:MaxPermSize=512M -XX:MaxNewSize=256m

  5. .NET快速开发平台(DevExpress)免费下载

    Express开发的eXpressApp Framework为简单快速实现商业应用的提供了有效的手段.强大的模块化结构支持跨平台的特定域扩展.典型应用实例包括:商业/销售/客户关系管理系统,项目,文档 ...

  6. 过期邮件替换SQL

  7. Emacs+highlight-parentheses高亮括号

    EmacsWiki上关于它的介绍HighlightParentheses,下载最新版请通过作者的GitHub:https://github.com/nschum/highlight-parenthes ...

  8. BZOJ 3997 组合数学

    好厉害. 注意到到了(i,j)就一定到不了(i-1,j+1),那么可以dp啦.dp[i][j]表示(i,j)右上角都清了的方案数. #include<iostream> #include& ...

  9. Piggy-Bank_完全背包

    Description Before ACM can do anything, a budget must be prepared and the necessary financial suppor ...

  10. Inno如何在安装完成时删除指定的文件夹(下的所有文件及子目录)??

    删除安装目录下的任意文件夹及下的所有文件及子目录,或者删除指定目录的文件夹,要如何做到呢?谢谢!! //删除文件    用 DeleteFile 只能删除一个文件,不能使用通配符来删除多个文件Dele ...