数学之路(3)-机器学习(3)-机器学习算法-神经网络[19]
钢包使用次数与容积实测数据 | ||
使用次数x | 容积y | |
2 | 106.42 | |
3 | 108.2 | |
4 | 109.58 | |
5 | 109.5 | |
7 | 110 | |
8 | 109.93 | |
10 | 110.49 | |
11 | 110.59 | |
14 | 110.6 | |
15 | 110.9 | |
16 | 110.7 | |
18 | 111 | |
19 | 111.2 |
本博客所有内容是原创,如果转载请注明来源
http://blog.csdn.net/u010255642
#!/usr/bin/env python
#-*- coding: utf-8 -*-
#bp ann
import numpy as np
import matplotlib.pyplot as plt
import random
import copyisdebug=False#x和d样本初始化
#x和d样本初始化
train_x =[]
d=[]
f = open("cubage.csv")
try: f_text = f.read( )
finally: f.close( )
x_text=f_text.split('\n')
for line_i in xrange(0,len(x_text)):line=x_text[line_i]if line_i>1 and len(line)>0:train_x.append([])hdata=line.split(',')train_x[line_i-2].append(float(hdata[0]))d.append([float(hdata[1])])myinput=np.array(train_x)
mytarget=np.array(d)
mymax=np.max(d)
tz=(0.1**(len(str(int(mymax)))))*5
myinput=tz*myinput
mytarget=tz*mytarget
train_x=myinput
d=mytarget
......................
def simulate(myx,sigmoid_func,delta_sigfun):'''一个样本的仿真计算'''print u"仿真计算中" global ann_yiglobal ann_wglobal ann_wj0global ann_y0global hidelevel_countglobal alllevel_countglobal dglobal mylnwwmyd=d[0]myx=np.array(myx)n=len(myx)#清空yi输出信号数组 hidelevel=hidelevel_countalllevel=alllevel_countfor i in xrange(0,alllevel):#第一维是层数,从0开始for j in xrange(0,n):#第二维是神经元ann_yi[i][j]=0.0ann_yi=np.array(ann_yi)yi=ann_yi#前向计算myy=np.array([])for nowlevel in xrange(0,alllevel):#一层层向前计算#计算诱导局部域my_y=[]myy=yi[nowlevel-1]myw=ann_w[nowlevel-1] if nowlevel==0:#第一层隐藏层my_y=myxyi[nowlevel]=my_y elif nowlevel==(alllevel-1):#线性输出层my_y=o_func(yi[nowlevel-1,:len(myd)])yi[nowlevel,:len(myd)]=my_y elif nowlevel==(hidelevel-1):#最后一层隐藏输出层for i in xrange(0,len(myd)):temp_y=sigmoid_func(np.dot(myw[:,i],myy))my_y.append(temp_y) yi[nowlevel,:len(myd)]=my_y else:#中间隐藏层#中间隐藏层需要加上偏置for i in xrange(0,len(myy)):temp_y=sigmoid_func(np.dot(myw[:,i],myy))my_y.append(temp_y)yi[nowlevel]=my_yif isdebug:print "============="print u"***权值矩阵***" print ann_wprint u"***输出矩阵***" print yiprint "============="return yi[alllevel-1,:len(myd)]train()delta_sigfun=ann_delta_atanh
sigmoid_func=ann_atanhsimd=[]
for xn in xrange(0,len(x)):mysimout=simulate(x[xn],sigmoid_func,delta_sigfun)simd.append(mysimout[0])temp_x=[]
temp_d=[]
i=0
for mysamp in train_x:temp_x.append(mysamp[0])temp_d.append(d[i][0])i+=1simd=np.array(simd)
simd/=tz
temp_x=np.array(temp_x)
temp_x/=tz
temp_d=np.array(temp_d)
temp_d/=tz
temp_y=simdx_max=max(temp_x)
x_min=min(temp_x)
y_max=max(temp_y)
y_min=min(temp_y)plt.subplot(211)
plt.xlabel(u"x")
plt.xlim(x_min, x_max)
plt.ylabel(u"y")
plt.ylim(y_min, y_max)
plt.title(u"http://blog.csdn.net/myhaspl" )
lp_x1 = temp_x
lp_x2 = temp_y
lp_d = temp_d
plt.plot(lp_x1, lp_x2, 'r-')
plt.plot(lp_x1,lp_d,'b*')errx_max=len(err)
errx_min=1
erry_max=max(err)+0.1
erry_min=0.
plt.subplot(212)
plt.xlabel(u"traincount")
plt.xlim(errx_min, errx_max)
plt.ylabel(u"mse")
plt.ylim(erry_min, erry_max)lp_x1 = xrange(1,len(err)+1)
lp_x2 = err
plt.plot(lp_x1,lp_x2,'g-')
plt.show()
拟合的效果如下:
数学之路(3)-机器学习(3)-机器学习算法-神经网络[19]相关推荐
- 我爱机器学习网机器学习类别文章汇总
机器学习领域的几种主要学习方式 From Stumps to Trees to Forests KDD-2014 – The Biggest, Best, and Booming Data Scien ...
- [Python从零到壹] 十四.机器学习之分类算法五万字总结全网首发(决策树、KNN、SVM、分类对比实验)
欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...
- 如何学习机器学习、看待算法竞赛?粉丝精选留言
在前几日的赠书活动中,看到大家的积极留言,非常用心,可以看出对机器学习的热爱.经授权,CV君特意将一些52CV粉丝对学习机器学习.参与算法竞赛的看法.理解与经验放出来,与大家分享,值得收藏细品,希望他 ...
- 机器学习九大算法---支持向量机
机器学习九大算法---支持向量机 出处:结构之法算法之道blog. 前言 动笔写这个支持向量机(support vector machine)是费了不少劲和困难的,原因很简单,一者这个东西本身就并不好 ...
- 信号与系统中的机器学习相关的算法的进展和理解(期末作业)
机器学习是一门多学科交叉专业,涵盖概率论知识,统计学知识,近似理论知识和复杂算法知识,使用计算机作为工具并致力于真实实时的模拟人类学习方式, 并将现有内容进行知识结构划分来有效提高学习效率. 机器学习 ...
- python机器学习手写算法系列——线性回归
本系列另一篇文章<决策树> https://blog.csdn.net/juwikuang/article/details/89333344 本文源代码: https://github.c ...
- 收藏 | 机器学习模型与算法最全分类汇总!
题图 | AltumCode 机器学习模型与算法包括线性回归.对数几率回归.LASSO回归.Ridge回归.LDA.k近邻.决策树.感知机.神经网络.支持向量机.AdaBoost.GBDT.XGBoo ...
- 一文图解机器学习的基本算法!
来源:软件定义世界 本文长度为2877字,建议阅读6分钟 本文为你分析如何选择机器学习的各种方法. 每当提到机器学习,大家总是被其中的各种各样的算法和方法搞晕,觉得无从下手.确实,机器学习的各种套路确 ...
- 【机器学习】机器学习的经典算法
[机器学习]机器学习的经典算法 https://www.cnblogs.com/DicksonJYL/p/9517025.html 本文为整篇文章第二部分,整篇文章主要目录如下: 1:一个故事说明什么 ...
最新文章
- 为什么很多网站的验证码都设置得肉眼都很难识别?
- BestCoder 1st Anniversary ($) 1002.Hidden String
- RedHat使用163源
- R语言使用pROC包绘制ROC曲线并使用smooth函数绘制平滑的ROC曲线(方法包括:binormal、density、fitdistr、logcondens、logcondens.smooth)
- 闲得蛋疼在linux下装鸟个svn
- springboot配置国际化资源文件 使用themself模板进行解析
- Windows下Mex程序的调试
- 数字图像的加载、显示和输出
- [算法 笔记]堆排序(续)
- 笔记 | 《机器学习》中特征选择与稀疏学习
- SLAM GMapping(6)扫描匹配器
- 在Python中使用MongoDB
- 最全HTML与CSS基础总结,不进来看看吗?
- shell_study
- 怎么把程序内部坐标转为屏幕坐标,如何将工作空间坐标转换为屏幕坐标?
- ubuntu 12.04 修改 grub 启动参数
- 非线性控制1.0——自适应控制和鲁棒控制
- 解决xftp6 要继续使用此程序,您必须应用最新的更新或使用新版本
- autojs获取手机背景图片,抓取壁纸
- [恒指赵鑫] 为什么恒指是2019年最火最受欢迎的交易品种?