《集体智慧编程》第8章
来源:互联网 发布:云南旅游业数据统计 编辑:程序博客网 时间:2024/06/05 05:47
1.P175
在计算高斯函数时,代码中的默认标准差为10.0,如果默认标准差为10是得不到正文中的数据的,这里的默认值应该改为1.0
附上高斯函数的公式和图像
公式中的a代表高斯函数的最大值,b代表平均值(即当高斯函数取最大值时x的值),c代表标准差,c^2表示方差。
上图表示a=1,b=0, c=1
上图表示a=1, b=0, c=10(注意横坐标数值)
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
注意此处标准差为1,但是在后边P181计算按比例缩放后的预测结果时,此处的标准差应该改回10,否则会导致分母为0的错误(error:float division),切记。
2.P182
本页下方为了对缩放结果进行优化时,调用了第五章的代码,但是我们不能直接把第五章的optimization.py文件直接拷贝过来,我们还要对其进行一些修改,或者读者如果下载了本书的配套代码就可以直接把\PCI_Code Folder\chapter8中的optimization.py复制过来,但要注意调用第二个geneticoptimize()函数时,chapter8中的文件把函数名称改为了swarmoptimize(),也就是说原文中的
>>>optimization.geneticoptimize(numpredict.weightdomain, costf, popsize = 5, lrate = 1, maxv = 4, iters = 20)
应改为
>>>optimization.swarmoptimize(numpredict.weightdomain, costf, popsize = 5, lrate = 1, maxv = 4, iters = 20)
没有下载配套代码的,应该把geneticoptimize()函数改为
def geneticoptimize(domain,costf,popsize=20,lrate=0.1,maxv=2.0,iters=50): # Initialize individuals # current solutions x=[] # best solutions p=[] # velocities v=[] for i in range(0,popsize): vec=[float(random.randint(domain[i][0],domain[i][1])) for i in range(len(domain))] x.append(vec) p.append(vec[:]) v.append([0.0 for i in vec]) for ml in range(0,iters): for i in range(0,popsize): # Best solution for this particle if costf(x[i])<costf(p[i]): p[i]=x[i][:] g=i # Best solution for any particle for j in range(0,popsize): if costf(p[j])<costf(p[g]): g=j for d in range(len(x[i])): # Update the velocity of this particle v[i][d]+=lrate*(p[i][d]-x[i][d])+lrate*(p[g][d]-x[i][d]) # constrain velocity to a maximum if v[i][d]>maxv: v[i][d]=maxv elif v[i][d]<-maxv: v[i][d]=-maxv # constrain bounds of solutions x[i][d]+=v[i][d] if x[i][d]<domain[d][0]: x[i][d]=domain[d][0] elif x[i][d]>domain[d][1]: x[i][d]=domain[d][1] #print p[g],costf(p[g]) return p[g]
就可以得到结果了
阅读全文
0 0
- 《集体智慧编程》第8章
- 集体智慧编程第7章-读书笔记
- 文档过滤(集体智慧编程第6章)
- 读书笔记---《集体智慧编程》第3章:发现群组
- 《集体智慧编程》第5章一些问题
- 《集体智慧编程》第2章 提供推荐 个人笔记
- 《集体智慧编程》第5章 优化 个人笔记
- 《集体智慧编程》第6章 文档过滤 个人笔记
- 《集体智慧编程》第7章 决策树建模 个人笔记
- 《集体智慧编程》第12章 算法总结 个人笔记
- 《集体智慧编程》第六章
- 《集体智慧编程》第九章
- 集体智慧编程第二章
- 《集体智慧编程》第8章 构建价格模型 个人笔记
- 集体编程智慧代码摘抄【第二章】
- 《集体智慧编程》代码勘误:第六章
- 集体智慧编程第二章学习笔记
- 《集体智慧编程》笔记2.1---第二章
- ros多机之间通信
- ES6-正则的扩展-字符串的正则方法
- Java并发编程:Callable、Future和FutureTask
- 怎么删除淘宝足迹 淘宝足迹多久才能形成
- Linux下OpenOffice的安装与启动
- 《集体智慧编程》第8章
- xcode9打包报错:xcrun: error: unable to find utility "PackageApplication", not a developer tool or in PAT
- c# WinForm开发 DataGridView控件的各种操作总结(单元格操作,属性设置)
- 赫夫曼树
- 6.预测模型,难点分析
- python闭包—返回函数
- C/C++ 动态内存管理
- eclipse开发中常用快捷键
- 简单用户管理系统--Manage设计