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中字典和JSON互转操作实例
Jan 19 Python
从Python程序中访问Java类的简单示例
Apr 20 Python
浅析Python装饰器以及装饰器模式
May 28 Python
Python使用numpy模块创建数组操作示例
Jun 20 Python
python实现维吉尼亚加密法
Mar 20 Python
linux环境下Django的安装配置详解
Jul 22 Python
Pandas时间序列重采样(resample)方法中closed、label的作用详解
Dec 10 Python
Python 实现平台类游戏添加跳跃功能
Mar 27 Python
pip install 使用国内镜像的方法示例
Apr 03 Python
解决pyPdf和pyPdf2在合并pdf时出现异常的问题
Apr 03 Python
Python中使用subprocess库创建附加进程
May 11 Python
Python排序算法之插入排序及其优化方案详解
Jun 11 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
CI框架在CLI下执行占用内存过大问题的解决方法
2014/06/17 PHP
微信支付PHP SDK ―― 公众号支付代码详解
2016/09/13 PHP
PHP使用微信开发模式实现搜索已发送图文及匹配关键字回复的方法
2017/09/13 PHP
PHP生成推广海报的方法分享
2018/04/22 PHP
Laravel核心解读之异常处理的实践过程
2019/02/24 PHP
PHP简单实现图片格式转换(jpg转png,gif转png等)
2019/10/30 PHP
javascript 学习之旅 (3)
2009/02/05 Javascript
extJs 下拉框联动实现代码
2010/04/09 Javascript
用JavaScript玩转游戏物理(一)运动学模拟与粒子系统
2010/06/19 Javascript
当鼠标移动到图片上时跟随鼠标显示放大的图片效果
2013/06/06 Javascript
js字符串转成JSON
2013/11/07 Javascript
实用框架(iframe)操作代码
2014/10/23 Javascript
js实现页面a向页面b传参的方法
2016/05/29 Javascript
JS在onclientclick里如何控制onclick的执行
2016/05/30 Javascript
AngularJs ng-route路由详解及实例代码
2016/09/14 Javascript
对Angular.js Controller如何进行单元测试
2016/10/25 Javascript
Node层模拟实现multipart表单的文件上传示例
2018/01/02 Javascript
vue.js中npm安装教程图解
2018/04/10 Javascript
nuxt.js 缓存实践
2018/06/25 Javascript
D3.js(v3)+react 实现带坐标与比例尺的柱形图 (V3版本)
2019/05/09 Javascript
基于vue写一个全局Message组件的实现
2019/08/15 Javascript
微信小程序之侧边栏滑动实现过程解析(附完整源码)
2019/08/23 Javascript
在react中使用vue的状态管理的方法示例
2020/05/02 Javascript
Python对列表中的各项进行关联详解
2017/08/15 Python
Python爬虫使用脚本登录Github并查看信息
2018/07/16 Python
python如何爬取网站数据并进行数据可视化
2019/07/08 Python
tensorflow如何批量读取图片
2019/08/29 Python
jupyter notebook 增加kernel教程
2020/04/10 Python
python解包概念及实例
2021/02/17 Python
基于HTML5 Canvas 实现商场监控实例详解
2017/11/20 HTML / CSS
阿迪达斯英国官方网站:adidas英国
2019/08/13 全球购物
食品安全宣传标语
2014/06/07 职场文书
酒店管理求职信
2014/06/09 职场文书
2014年信息中心工作总结
2014/12/17 职场文书
525心理健康活动总结
2015/05/08 职场文书
主持人大赛开场白
2015/05/29 职场文书