您的位置:首页 > 理论基础 > 计算机网络

数学之路(3)-机器学习(3)-机器学习算法-神经网络[9]

2013-07-25 21:53 253 查看
神经网络线性分类器
编写代码并将其线性分类过程封装成PYTHON的一个模块,调用代码如下:

#!/usr/bin/env python
#-*- coding: utf-8 -*-
#email:myhaspl@qq.com
#author:麦好
#2013-07-25
#线性神经网络分类
import mplannliner as nplann
traindata1=[[[9,25],-1],[[5,8],-1],[[15,31],-1],[[35,62],-1],[[19,40],-1],[[28,65],1],[[20,59],1],[[9,41],1],[[12,60],1],[[2,37],1]]
myann=nplann.Mplannliner()
#样本初始化
myann.samples_init(traindata1)
#学习率初始化
myann.a_init(0.1)
#搜索时间常数初始化
myann.r_init(50)
#最大训练次数
myann.maxtry_init(500)
#期望最小误差
myann.e_init(0.05)
#训练
myann.train()
#仿真,测试,对未知样本分类
myc=myann.simulate([35,68])
print "[35,68]"
if myc=="+":
print u"正类"
else:
print u"负类"

#将测试点在最终效果图上显示出来,将它加入drawponint集,测试点表现为"*",并且色彩由其最终的分类结果而决定
myann.drawponint_add([35,68])

myc=myann.simulate([35,82])
print "[35,82]"
if myc=="+":
print u"正类"
else:
print u"负类"
myann.drawponint_add([35,82])
myann.draw2d()

#下面直接使用默认参数进行训练
traindata2=[[[9,25,30],-1],[[5,8,12],-1],[[15,31,49],-1],[[35,62,108],-1],[[19,40,60],-1],[[28,65,98],1],[[20,59,72],1],[[9,41,38],1],[[12,60,46],1],[[2,37,18],1]]
myann2=nplann.Mplannliner()
myann2.samples_init(traindata2)
myann2.train()
myc=myann2.simulate([35,68,110])
print "[35,68,110]"
if myc=="+":
print u"正类"
else:
print u"负类"


训练分类结果为:

...................

第179次调整中。。。误差:3.464102

第180次调整中。。。误差:2.828427

第181次调整中。。。误差:2.828427

第182次调整中。。。误差:3.464102

第183次调整中。。。误差:2.828427

第184次调整中。。。误差:0.000000

麦好   myhaspl@qq.com
http://blog.csdn.net/u010255642
[35,68]

负类

[35,82]

正类

...................

第10次调整中。。。误差:4.000000

第11次调整中。。。误差:4.898979

第12次调整中。。。误差:4.000000

第13次调整中。。。误差:4.000000

第14次调整中。。。误差:4.000000

第15次调整中。。。误差:4.000000

第16次调整中。。。误差:4.472136

第17次调整中。。。误差:2.828427

第18次调整中。。。误差:4.000000

第19次调整中。。。误差:4.000000

第20次调整中。。。误差:4.000000

第21次调整中。。。误差:4.000000

第22次调整中。。。误差:4.000000

第23次调整中。。。误差:4.472136

第24次调整中。。。误差:3.464102

第25次调整中。。。误差:4.000000

第26次调整中。。。误差:4.000000

第27次调整中。。。误差:4.000000

第28次调整中。。。误差:4.000000

第29次调整中。。。误差:4.000000

第30次调整中。。。误差:4.000000

第31次调整中。。。误差:3.464102

第32次调整中。。。误差:0.000000

麦好   myhaspl@qq.com
http://blog.csdn.net/u010255642
[35,68,110]

负类

效果图为:



模块要求安装numpy和matplotlib

windows下的下载地址为:

https://pypi.python.org/pypi/numpy/

http://matplotlib.org/downloads.html

线性模块库在csdn资源中下载:

http://download.csdn.net/detail/u010255642/5816519
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: