python据说功能强大,触角伸到各个领域,网上搜了一下其科学计算和工程计算能力也相当强,具备各种第三方包,除了性能软肋外,其他无可指摘,甚至可以同matlab等专业工具一较高下。
从网上找了一个使用遗传算法实现数据拟合的例子学习了一下,确实Python相当贴合自然语言,终于编程语言也能说人话了,代码整体简洁、优雅。。
代码功能:给出一个隐藏函数 例如 z=x^2+y^2,生成200个数据,利用这200个数据,使用遗传算法猜测这些数据是什么公式生成的。 (说的太直白,一点都不高大上)
代码如下:
result = deepcopy(t)
result.children = [self.mutate(c, pc, probchange)
rows = []
x = randint(0, 10)
x=uniform(-1,1)
y = randint(0, 10)
y=uniform(-1,1)
rows.append([x, y, self.hiddenfunction(x, y)])
dif = 0
scores = [(self.scorefunction(t, dataset), t) scores.sort()
scores = rankfunction(population)
newpop.append(
self.mutate(self.crossover(scores[selectindex()][1], scores[selectindex()][1], probswap=breedingrate), pc,
probchange=mutationrate))
newpop.append(self.makerandomtree(pc))
population = newpop
e=opera()
a=opera()
row2=a.buildhiddenset()
fig = plt.figure()
ax = fig.add_subplot(111, projection= X = [1, 1, 2, 2]
Y = [3, 4, 4, 3]
Z = [1, 2, 1, 1]
rx=[]
ry=[]
rz=[]
rx.append(i[0])
ry.append(i[1])
rz.append(i[2])
ax.plot_trisurf(rx, ry, rz)
rz2=[]
rf = a.getrankfunction(row2)
final = a.evolve(2, 100, rf, mutationrate=0.2, breedingrate=0.1, pexp=0.7, pnew=0.1,maxgen=500)
final.display()
rz2.append(final.evaluate([rx[j],ry[j]]))
fig2 = plt.figure()
ax2 = fig2.add_subplot(111, projection= ax2.plot_trisurf(rx, ry, rz2)
plt.show()
main(0)
看懂不一定写的出来,这是这次写这个程序最大的体会, 得定时拿出来复习复习。
python遗传算法实现数据拟合的更多相关文章
-
python遗传算法实现数据拟合(转)
python据说功能强大,触角伸到各个领域,网上搜了一下其科学计算和工程计算能力也相当强,具备各种第三方包,除了性能软肋外,其他无可指摘,甚至可以同matlab等专业工具一较高下. 从网上找了一个使用 ...
-
用Python开始机器学习(3:数据拟合与广义线性回归)
机器学习中的预测问题通常分为2类:回归与分类. 简单的说回归就是预测数值,而分类是给数据打上标签归类. 本文讲述如何用Python进行基本的数据拟合,以及如何对拟合结果的误差进行分析. 本例中使用一个 ...
-
数据拟合:多项式拟合polynomial curve fitting
http://blog.csdn.net/pipisorry/article/details/49804441 常见的曲线拟合方法 1.使偏差绝对值之和最小 2.使偏差绝对值最大的最小 3 ...
-
Python: sklearn库——数据预处理
Python: sklearn库 —— 数据预处理 数据集转换之预处理数据: 将输入的数据转化成机器学习算法可以使用的数据.包含特征提取和标准化. 原因:数据集的标准化(服从均值为 ...
-
Neural Network Toolbox使用笔记1:数据拟合
http://blog.csdn.net/ljp1919/article/details/42556261 Neural Network Toolbox为各种复杂的非线性系统的建模提供多种函数和应用程 ...
-
使用Python解析JSON数据的基本方法
这篇文章主要介绍了使用Python解析JSON数据的基本方法,是Python入门学习中的基础知识,需要的朋友可以参考下: ----------------------------------- ...
-
非线性数据拟合-nls
code{white-space: pre;} pre:not([class]) { background-color: white; }if (window.hljs && docu ...
-
python matplotlib plot 数据中的中文无法正常显示的解决办法
转发自:http://blog.csdn.net/laoyaotask/article/details/22117745?utm_source=tuicool python matplotlib pl ...
-
Python/Numpy大数据编程经验
Python/Numpy大数据编程经验 1.边处理边保存数据,不要处理完了一次性保存.不然程序跑了几小时甚至几天后挂了,就啥也没有了.即使部分结果不能实用,也可以分析程序流程的问题或者数据的特点. ...
随机推荐
-
cordova 下载更新
function UpdateForAndroid(downloadUrl) { $ionicLoading.show({ template: "已经下载:0%" }); var ...
-
js获取单选框radio的值
遇到一个js获取radio值的问题,原来根据frm.type.value取到的值在ie下是空值 解决办法:type为每个radio的值 var chkObjs=document.getElements ...
-
Windows Server 中开启 SQL Server 2008 的1433端口
在Windows Server2008 服务器上部署了Microsofit SQL Server2008 R2 ,想让远程机器能够访问,于是开放1433端口,进行了如下设置: 1.打开“本地安全策略” ...
-
html 转 js 字符串
看到一个牛人的博客 http://riny.net/lab/#tools_html2js 看了下他的代码 挺棒的 所依赖的两个库在这里 https://github.com/Bubblings/l ...
-
CentOS 7 服务器配置--安装Mysql
#获取mysql的rpm文件(rpm文件地址可以通过官网获取) wget -r -np -nd https://dev.mysql.com/get/mysql57-community-release- ...
-
Playground中格式注释语法
类似于Ruby的ruby document,Xcode的Playground自身也提供一些嵌入文档中的格式注释的语法. 我们先定义一个简单的类: class A{ } 按住opt点击class A,你 ...
-
【60】Spring总结之基础架构(1)
为什么用Spring? Spring一直贯彻并遵守"好的设计优于具体实现,代码应易于测试",这一理念,并最终带给我们一个易于开发.便于测试而又功能齐全的开发框架.概括起来Sprin ...
-
Python图形编程探索系列-09-tkinter与matplotlib结合案例
案例1 案例来自于:https://bbs.csdn.net/topics/390326088 代码示例: import matplotlib matplotlib.use('TkAgg') from ...
-
20172325 2017-2018-2 《Java程序设计》第八周学习总结
20172325 2017-2018-2 <Java程序设计>第八周学习总结 教材学习内容总结 1.关于绑定 绑定:在执行程序时产生一个请求事件,需要执行一段代码来来完成方法调用,即一个方 ...
-
MFC--根据串口采集的数据借助GDI绘制曲线
根据采集到的数据绘制曲线 在串口编程中会涉及到这样一个问题,就是将采集到的数据以曲线的形式展示出来,大家自然而然会想到采用方便快捷的控件进行编程.编程周期短,完成任务快,但是真实情况来看,控件会实现很 ...