python实现louvain算法_Python | Kriging算法实现

前言:最近在研究代理模型,涉及到Kriging模型的实现,通过查阅相关网站找到了一个Kriging算法的实现方式

介绍

- Kriging在理解稀疏数据的方面是非常有价值的工具
- 事实证明,其在工程和数据昂贵、难以收集的领域,具有较强的应用价值

要理解kriging算法背后的数学原理,请参考下列资源:

https://link.springer.com/article/10.1023/A:1012771025575​link.springer.com https://www.amazon.com/Engineering-Design-via-Surrogate-Modelling/dp/0470060689/ref=sr_1_3?ie=UTF8&qid=1421609474&sr=8-3&keywords=Surrogate+Model​www.amazon.com

Pykriging工具箱的目的是使得Kriging法在Python中更易于使用。

安装方式

pip 

使用pyKriging

pyKriging的目的旨在简化代理模型的创建过程。下列例子演示了如何创建抽样计划、在这些位置评估测试函数、创建和训练一个Kriging模型、并且添加点来减少模型的均方根误差。

import pyKriging  
from pyKriging.krige import kriging  
from pyKriging.samplingplan import samplingplan

# The Kriging model starts by defining a sampling plan, we use an optimal Latin Hypercube here
sp = samplingplan(2)  
X = sp.optimallhc(20)

# Next, we define the problem we would like to solve
testfun = pyKriging.testfunctions().branin  
y = testfun(X)

# Now that we have our initial data, we can create an instance of a Kriging model
k = kriging(X, y, testfunction=testfun, name='simple')  
k.train()

# Now, five infill points are added. Note that the model is re-trained after each point is added
numiter = 5  
for i in range(numiter):  
    print 'Infill iteration {0} of {1}....'.format(i + 1, numiter)
    newpoints = k.infill(1)
    for point in newpoints:
        k.addPoint(point, testfun(point)[0])
    k.train()

# And plot the results
k.plot()

该脚本将产生以下输出,由于pyKriging广泛使用随机优化来构建模型,因此您的模型输出可能会略有不同

a82498f74d665577cebba2822aa066f7.png

功能

  • 构建超大容量的Kriging模型
    pyKriging提供n维Kriging。 包括用于2D和3D模型(已安装MayaVI)的绘图工具。
  • 自动化模型填充
    训练完初始模型后,pyKriging可以建议将下一个样品放置在何处以改进模型。
    pyKriging支持基于搜索最大均方误差(MSE)或基于预期改进的填充选择。
    均方误差旨在提高模型的整体准确性。 预期的改进探索了模型的可能最小值,这在许多优化活动中很有用

4bdcedd91262f10123e71d82ae2ecf4c.png

d2d292ce25bdf0fedeea8dc1483d9634.png

训练记录

快照功能允许监控克里格训练过程。这允许用户绘制超参数收敛、预测精度(如果提供了分析函数)和预测收敛。有关使用培训历史记录功能的更多信息,请查看Github示例文件夹。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值