高斯过程

代码示例如下:

from data.CsvData import CsvData
from knowledge.KnowledgeSet import KnowledgeSet
from benchmark.sphere import Sphere

ndim = 2
trainNum = 100
testNum = 10

x = np.ones((trainNum, ndim))
x[:, 0] = np.linspace(-10, 10.0, trainNum)
x[:, 1] = 0.0

xt = np.ones((testNum, ndim))
xt[:, 0] = np.linspace(-10, 10.0, testNum)
xt[:, 1] = 0.0

s = Sphere()
trainSet = s(x)
testSet = s(xt)
print(testSet)

# plt.plot(x[:, 0], trainSet["output"][:, 0])

# 获取知识
k = KnowledgeSet("C:\data\sphereShapeKnowledge.xml", "C:\data\sphereMonoKnowledge1.xml",
                 "C:\data\sphereMonoKnowledge2.xml")

    knowList = k.readKnowledge()
k.visualKnowledge()

gpModel = GPK()
# gpModel = GP()

gpModel.setData(trainSet)               #设置数据

gpModel.setKnowledge(knowList=knowList)           #设置知识

gpModel.train()          #训练


yp = gpModel.predict(xt)        #预测

ln1 = plt.plot(x[:, 0], trainSet["output"][:, 0], label ="真实",color = "red")
ln2 = plt.plot(xt[:, 0], yp[:, 0], label ="预测",color = 'green')
print(xt[:, 0])
print(yp[:, 0])
plt.legend()
plt.show()

b = gpModel.score(testSet,index="RSME")  #评价代理模型 ,"RSME", "R2", "MAE", "Confidence"
print(b)

gpModel.save(r"C:\data\代理模型训练\高斯过程代理模型.pkl")    #保存模型文件
../../_images/%E9%AB%98%E6%96%AF%E8%BF%87%E7%A8%8B%E8%BF%90%E8%A1%8C%E7%BB%93%E6%9E%9C.png