python机器学习之神经网络(一)


Posted in Python onDecember 20, 2017

python有专门的神经网络库,但为了加深印象,我自己在numpy库的基础上,自己编写了一个简单的神经网络程序,是基于Rosenblatt感知器的,这个感知器建立在一个线性神经元之上,神经元模型的求和节点计算作用于突触输入的线性组合,同时结合外部作用的偏置,对若干个突触的输入求和后进行调节。为了便于观察,这里的数据采用二维数据。

目标函数是训练结果的误差的平方和,由于目标函数是一个二次函数,只存在一个全局极小值,所以采用梯度下降法的策略寻找目标函数的最小值。

代码如下:

import numpy as np 
import pylab as pl 
b=1    #偏置 
a=0.3   #学习率 
x=np.array([[b,1,3],[b,2,3],[b,1,8],[b,2,15],[b,3,7],[b,4,29],[b,4,8],[b,4,20]]) #训练数据 
d=np.array([1,1,-1,-1,1,-1,1,-1])          #训练数据类别 
w=np.array([b,0,0])            #初始w 
def sgn(v):         
 if v>=0: 
  return 1 
 else: 
  return -1 
def comy(myw,myx): 
 return sgn(np.dot(myw.T,myx)) 
def neww(oldw,myd,myx,a): 
 return oldw+a*(myd-comy(oldw,myx))*myx 
 
for ii in range(5):        #迭代次数 
 i=0 
 for xn in x: 
  w=neww(w,d[i],xn,a) 
  i+=1 
 print w 
 
myx=x[:,1]         #绘制训练数据 
myy=x[:,2] 
pl.subplot(111) 
x_max=np.max(myx)+15 
x_min=np.min(myx)-5 
y_max=np.max(myy)+50 
y_min=np.min(myy)-5 
pl.xlabel(u"x") 
pl.xlim(x_min,x_max) 
pl.ylabel(u"y") 
pl.ylim(y_min,y_max) 
for i in range(0,len(d)): 
 if d[i]==1: 
  pl.plot(myx[i],myy[i],'r*') 
 else: 
  pl.plot(myx[i],myy[i],'ro') 
#绘制测试点 
test=np.array([b,9,19]) 
if comy(w,test)>0: 
 pl.plot(test[1],test[2],'b*') 
else: 
 pl.plot(test[1],test[2],'bo') 
test=np.array([b,9,64]) 
if comy(w,test)>0: 
 pl.plot(test[1],test[2],'b*') 
else: 
 pl.plot(test[1],test[2],'bo') 
test=np.array([b,9,16]) 
if comy(w,test)>0: 
 pl.plot(test[1],test[2],'b*') 
else: 
 pl.plot(test[1],test[2],'bo') 
test=np.array([b,9,60]) 
if comy(w,test)>0: 
 pl.plot(test[1],test[2],'b*') 
else: 
 pl.plot(test[1],test[2],'bo') 
#绘制分类线 
testx=np.array(range(0,20)) 
testy=testx*2+1.68 
pl.plot(testx,testy,'g--') 
pl.show()  
for xn in x: 
 print "%d %d => %d" %(xn[1],xn[2],comy(w,xn))

python机器学习之神经网络(一)

图中红色是训练数据,蓝色是测试数据,圆点代表类别-1.星点代表类别1。由图可知,对于线性可分的数据集,Rosenblatt感知器的分类效果还是不错的。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中条件判断语句的简单使用方法
Aug 21 Python
使用Python的Flask框架构建大型Web应用程序的结构示例
Jun 04 Python
Python开发微信公众平台的方法详解【基于weixin-knife】
Jul 08 Python
Python2.7编程中SQLite3基本操作方法示例
Aug 09 Python
使用Turtle画正螺旋线的方法
Sep 22 Python
Diango + uwsgi + nginx项目部署的全过程(可外网访问)
Apr 22 Python
Python常见排序操作示例【字典、列表、指定元素等】
Aug 15 Python
深入理解python中sort()与sorted()的区别
Aug 29 Python
python数组循环处理方法
Aug 26 Python
Python之——生成动态路由轨迹图的实例
Nov 22 Python
Pycharm 设置默认解释器路径和编码格式的操作
Feb 05 Python
Selenium浏览器自动化如何上传文件
Apr 06 Python
使用python实现ANN
Dec 20 #Python
python 计算数组中每个数字出现多少次--“Bucket”桶的思想
Dec 19 #Python
浅谈Python实现贪心算法与活动安排问题
Dec 19 #Python
Python实现感知器模型、两层神经网络
Dec 19 #Python
python实现感知器
Dec 19 #Python
python绘制简单折线图代码示例
Dec 19 #Python
matplotlib设置legend图例代码示例
Dec 19 #Python
You might like
php正则
2006/07/07 PHP
PHP将整个网站生成HTML纯静态网页的方法总结
2012/02/05 PHP
PHP ? EasyUI DataGrid 资料存的方式介绍
2012/11/07 PHP
ThinkPHP添加更新标签的方法
2014/12/05 PHP
php使用自定义函数实现汉字分割替换功能示例
2017/01/30 PHP
浅谈PHP接入(第三方登录)QQ登录 OAuth2.0 过程中遇到的坑
2017/10/13 PHP
php+iframe 实现上传文件功能示例
2020/03/04 PHP
YII2框架中日志的配置与使用方法实例分析
2020/03/18 PHP
[全兼容哦]--实用、简洁、炫酷的页面转入效果loing
2007/05/07 Javascript
js 浮动层菜单收藏
2009/01/16 Javascript
从零开始学习jQuery (二) 万能的选择器
2010/10/01 Javascript
Jquery的hide及toggle方法让超链接慢慢消失
2013/09/06 Javascript
js特殊字符过滤的示例代码
2014/03/05 Javascript
jQuery实现图片与文字描述左右滑动自动切换的方法
2015/07/27 Javascript
js实现的二级横向菜单条实例
2015/08/22 Javascript
深入学习jQuery Validate表单验证
2016/01/18 Javascript
理解javascript中的MVC模式
2016/01/28 Javascript
js简单实现图片延迟加载的方法
2016/07/19 Javascript
JS回调函数简单用法示例
2017/02/09 Javascript
JavaScript实现三级联动效果
2017/07/15 Javascript
JS中正则表达式要注意lastIndex属性
2017/08/08 Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
2017/09/03 Javascript
JS严格模式知识点总结
2018/02/27 Javascript
angularjs http与后台交互的实现示例
2018/12/21 Javascript
Vue实现渲染数据后控制滚动条位置(推荐)
2019/12/09 Javascript
Python中字典映射类型的学习教程
2015/08/20 Python
python使用matplotlib绘制折线图教程
2017/02/08 Python
Python从文件中读取数据的方法讲解
2019/02/14 Python
python中可以声明变量类型吗
2020/06/18 Python
numba提升python运行速度的实例方法
2021/01/25 Python
CSS3实现swap交换动画
2016/01/19 HTML / CSS
电子商务应届生求职信
2013/11/16 职场文书
2014年党员自我评议总结
2014/09/23 职场文书
2014市府办领导班子“四风问题”对照检查材料思想汇报
2014/09/24 职场文书
2015年小学生新年寄语
2014/12/08 职场文书
考察邀请函范文
2015/01/31 职场文书